OpenVPN to my home router

I have an Asus router with OpenVPN Server set up. I can connect to it with my laptop. I have used the OpenVPN app to connect to it with an Amazon Fire Stick and ran Kodi. However, the Fire Stick doesn’t have the power to handle the VPN and play 1080 videos (it plays 720 fine).
But I can’t get this to work with Kodi on a Rpi 3b+ no matter what I try.

The only error I’m getting from the openVPN.log is:

Options error: --keepalive conflicts with --ping, --ping-exit, or --ping-restart.  If you use --keepalive, you don't need any of the other --ping directives.
Use --help for more information.

I have turned off Settings/Advanced->“check connection with ping” with no change.

Previously, it complained about compression, so I turned off compression and built a new .ovpn file from the router config. Even though I did not apply the new .ovpn file to my PC and it still connects just fine. No change on the media player though.

Everything else works just fine, but the VPN is driving me nuts. Manually connecting the VPN, the dependency checks go through without issue, it just stays at “Connecting to…” as the progress bar moves, then ends with “Error connecting to VPN, something unexpected happened. Check log for more information.”

I’ve followed http://brianhornsby.com/blog/how-to-setup-your-vpn-client
I’ve done the Zomboided->VPN manager install as a stand-alone by copying the .zip file and installing it.
I’ve started from a fresh RPi image three times.
I think I’ve read every forum post here with OpenVPN in the title.

2023-02-01 17:25:41.407 T:536      INFO <general>: VPN Mgr : (service.py) Starting VPN monitor service, platform is 2, version is 7.0.0
2023-02-01 17:25:41.407 T:536      INFO <general>: VPN Mgr : (service.py) Kodi build is 19.5
2023-02-01 17:25:41.407 T:536      INFO <general>: VPN Mgr : (service.py) Addon path is /home/osmc/.kodi/addons/service.vpn.manager/
2023-02-01 17:25:42.329 T:482      INFO <general>: Loading skin file: DialogConfirm.xml, load type: KEEP_IN_MEMORY
2023-02-01 17:25:42.656 T:545      INFO <general>: CDVDVideoCodecFFmpeg::Open() Using codec: MPEG-4 part 2
2023-02-01 17:27:14.925 T:482      INFO <general>: Samba is idle. Closing the remaining connections
2023-02-01 18:11:46.101 T:482      INFO <general>: Loading skin file: DialogAddonSettings.xml, load type: KEEP_IN_MEMORY
2023-02-01 18:11:49.346 T:664      INFO <general>: initializing python engine.
2023-02-01 18:11:50.529 T:664   WARNING <general>: CPythonInvoker(3): Script invoked without an addon. Adding all addon modules installed to python path as fallback. This behaviour will be removed in future version.
2023-02-01 18:11:52.667 T:482      INFO <general>: Loading skin file: DialogConfirm.xml, load type: KEEP_IN_MEMORY
2023-02-01 18:11:53.537 T:664      INFO <general>: VPN Mgr : (vpnplatform.py) Testing openvpn with : sudo "/usr/sbin/openvpn" > /home/osmc/.kodi/temp/openvpn.log 2>&1 &
2023-02-01 18:11:54.704 T:664      INFO <general>: VPN Mgr : (vpnplatform.py) Testing killall with : sudo killall vpnmanagertest > /home/osmc/.kodi/temp/command_test.txt 2>&1 &
2023-02-01 18:12:05.537 T:664      INFO <general>: VPN Mgr : (common.py) Creating VPN provider directory /home/osmc/.kodi/addons/service.vpn.manager/UserDefined
2023-02-01 18:12:06.758 T:482      INFO <general>: Loading skin file: DialogSelect.xml, load type: KEEP_IN_MEMORY
2023-02-01 18:12:06.816 T:482   WARNING <general>: Trying to add unsupported control type 17
2023-02-01 18:12:12.847 T:482   WARNING <general>: Skipped 1 duplicate messages..
2023-02-01 18:12:12.847 T:482   WARNING <general>: CGUIWindowManager - HandleAction - ignoring action 107, because topmost modal dialog closing animation is running
2023-02-01 18:13:33.125 T:664      INFO <general>: Skipped 17 duplicate messages..
2023-02-01 18:13:33.125 T:664      INFO <general>: VPN Mgr : (vpnplatform.py) VPN configuration /home/osmc/.kodi/addons/service.vpn.manager/UserDefined/myhouse_no-compression (UDP).ovpn start >>>
2023-02-01 18:13:33.125 T:664      INFO <general>: remote ka.redacted.comm.com 3178
2023-02-01 18:13:33.125 T:664      INFO <general>: float
2023-02-01 18:13:33.125 T:664      INFO <general>: nobind
2023-02-01 18:13:33.125 T:664      INFO <general>: proto udp
2023-02-01 18:13:33.125 T:664      INFO <general>: dev tun
2023-02-01 18:13:33.125 T:664      INFO <general>: sndbuf 0
2023-02-01 18:13:33.125 T:664      INFO <general>: rcvbuf 0
2023-02-01 18:13:33.126 T:664      INFO <general>: keepalive 10 30
2023-02-01 18:13:33.126 T:664      INFO <general>: auth-user-pass /home/osmc/.kodi/addons/service.vpn.manager/UserDefined/pass.txt
2023-02-01 18:13:33.126 T:664      INFO <general>: client
2023-02-01 18:13:33.126 T:664      INFO <general>: auth SHA1
2023-02-01 18:13:33.126 T:664      INFO <general>: cipher AES-128-CBC
2023-02-01 18:13:33.126 T:664      INFO <general>: remote-cert-tls server
2023-02-01 18:13:33.126 T:664      INFO <general>: <ca>
2023-02-01 18:13:33.126 T:664      INFO <general>: -----BEGIN CERTIFICATE-----
2023-02-01 18:13:33.126 T:664      INFO <general>: MIIDMTCCApqgAwIBAgIJAKs2FB5adzXLMA0GCSqGSIb3DQEBBQUAMG8xCzAJBgNV
...
2023-02-01 18:13:33.127 T:664      INFO <general>: J6d5Abbf7NEJk0D8DY6jJQ1YDLhELZ4N5+dnai/iEL8D+LRQ/zCCDG6r6i0hNSLK
2023-02-01 18:13:33.127 T:664      INFO <general>: amA9sSE=
2023-02-01 18:13:33.127 T:664      INFO <general>: -----END CERTIFICATE-----
2023-02-01 18:13:33.127 T:664      INFO <general>: 
2023-02-01 18:13:33.127 T:664      INFO <general>: </ca>
2023-02-01 18:13:33.128 T:664      INFO <general>: 
2023-02-01 18:13:33.128 T:664      INFO <general>: script-security 2
2023-02-01 18:13:33.128 T:664      INFO <general>: 
2023-02-01 18:13:33.128 T:664      INFO <general>: Skipped 1 duplicate messages..
2023-02-01 18:13:33.128 T:664      INFO <general>: ping 5
2023-02-01 18:13:33.128 T:664      INFO <general>: ping-exit 30
2023-02-01 18:13:33.128 T:664      INFO <general>: ping-timer-rem
2023-02-01 18:13:33.128 T:664      INFO <general>: remap-usr1 SIGTERM
2023-02-01 18:13:33.128 T:664      INFO <general>: verb 3
2023-02-01 18:13:33.128 T:664      INFO <general>: VPN Mgr : (vpnplatform.py) <<< VPN configuration file end
2023-02-01 18:13:33.178 T:664      INFO <general>: VPN Mgr : (vpnplatform.py) VPN log file start >>>
2023-02-01 18:13:33.179 T:664      INFO <general>: Options error: --keepalive conflicts with --ping, --ping-exit, or --ping-restart.  If you use --keepalive, you don't need any of the other --ping directives.
2023-02-01 18:13:33.179 T:664      INFO <general>: Use --help for more information.
2023-02-01 18:13:33.179 T:664      INFO <general>: VPN Mgr : (vpnplatform.py) <<< VPN log file end
2023-02-01 18:13:33.943 T:664     ERROR <general>: VPN Mgr : (common.py) Error connecting to VPN, something unexpected happened. Check log for more information.
2023-02-01 18:13:41.646 T:482      INFO <general>: Loading skin file: /home/osmc/.kodi/addons/service.vpn.manager/resources/skins/Default/720p/logtextbox.xml, load type: LOAD_ON_GUI_INIT
2023-02-01 18:13:44.528 T:664      INFO <general>: CPythonInvoker(3, special://home/addons/service.vpn.manager/connect.py): script successfully run
2023-02-01 18:13:44.628 T:664      INFO <general>: Python interpreter stopped
2023-02-01 18:14:21.811 T:688      INFO <general>: initializing python engine.
2023-02-01 18:14:22.829 T:688   WARNING <general>: CPythonInvoker(4): Script invoked without an addon. Adding all addon modules installed to python path as fallback. This behaviour will be removed in future version.
2023-02-01 18:14:32.108 T:688      INFO <general>: CPythonInvoker(4, special://home/addons/service.vpn.manager/managefiles.py): script successfully run
2023-02-01 18:14:32.203 T:688      INFO <general>: Python interpreter stopped
2023-02-01 18:14:41.945 T:482      INFO <general>: Loading skin file: DialogNumeric.xml, load type: KEEP_IN_MEMORY
2023-02-01 18:16:06.080 T:536      INFO <general>: VPN Mgr : Requested update to service process via settings monitor
2023-02-01 18:16:06.108 T:536      INFO <general>: VPN Mgr : Update service requested KodiMonitor
2023-02-01 18:16:08.387 T:536      INFO <general>: VPN Mgr : VPN monitor service was requested to run an update
2023-02-01 18:16:08.420 T:536      INFO <general>: VPN Mgr : Update primary VPNs from settings
2023-02-01 18:16:08.585 T:536      INFO <general>: VPN Mgr : Found no VPNs, setup is invalid
2023-02-01 18:16:08.610 T:536      INFO <general>: VPN Mgr : Flag lists have changed
2023-02-01 18:16:10.611 T:482      INFO <general>: Loading skin file: Settings.xml, load type: KEEP_IN_MEMORY
2023-02-01 18:16:13.364 T:482      INFO <general>: Loading skin file: AddonBrowser.xml, load type: KEEP_IN_MEMORY
2023-02-01 18:16:13.882 T:536      INFO <general>: VPN Mgr : Encountered a new window ID 10040
2023-02-01 18:16:13.907 T:536      INFO <general>: VPN Mgr : Previous window ID was 10000
2023-02-01 18:16:13.932 T:536      INFO <general>: VPN Mgr : Encountered a new addon addons:// Add-on browser
2023-02-01 18:16:13.957 T:536      INFO <general>: VPN Mgr : Previous addon was 
2023-02-01 18:16:18.006 T:536      INFO <general>: VPN Mgr : Encountered a new addon addons://user/ My add-ons
2023-02-01 18:16:18.036 T:536      INFO <general>: VPN Mgr : Previous addon was Add-on browser
2023-02-01 18:16:53.993 T:482      INFO <general>: Loading skin file: DialogContextMenu.xml, load type: KEEP_IN_MEMORY
2023-02-01 18:16:58.204 T:536      INFO <general>: VPN Mgr : Encountered a new window ID 10004
2023-02-01 18:16:58.228 T:536      INFO <general>: VPN Mgr : Previous window ID was 10040
2023-02-01 18:17:02.318 T:536      INFO <general>: VPN Mgr : Encountered a new window ID 10040
2023-02-01 18:17:02.348 T:536      INFO <general>: VPN Mgr : Previous window ID was 10004
2023-02-01 18:17:06.408 T:536      INFO <general>: VPN Mgr : Encountered a new window ID 10004
2023-02-01 18:17:06.447 T:536      INFO <general>: VPN Mgr : Previous window ID was 10040
2023-02-01 18:17:14.881 T:536      INFO <general>: VPN Mgr : Encountered a new window ID 10040
2023-02-01 18:17:14.908 T:536      INFO <general>: VPN Mgr : Previous window ID was 10004
2023-02-01 18:17:22.671 T:482      INFO <general>: Loading skin file: DialogAddonInfo.xml, load type: KEEP_IN_MEMORY
2023-02-01 18:17:24.693 T:482   WARNING <general>: CGUIWindowManager - HandleAction - ignoring action 107, because topmost modal dialog closing animation is running
2023-02-01 18:17:34.997 T:536      INFO <general>: Skipped 2 duplicate messages..
2023-02-01 18:17:34.997 T:536      INFO <general>: VPN Mgr : Encountered a new addon addons://user/xbmc.service Services
2023-02-01 18:17:35.040 T:536      INFO <general>: VPN Mgr : Previous addon was My add-ons
2023-02-01 18:17:45.008 T:712      INFO <general>: initializing python engine.
2023-02-01 18:17:45.094 T:536      INFO <general>: VPN Mgr : Requested update to service process via settings monitor
2023-02-01 18:17:45.119 T:536      INFO <general>: VPN Mgr : Update service requested KodiMonitor
2023-02-01 18:17:45.330 T:712   WARNING <general>: CPythonInvoker(5): Script invoked without an addon. Adding all addon modules installed to python path as fallback. This behaviour will be removed in future version.
2023-02-01 18:17:47.179 T:536      INFO <general>: VPN Mgr : VPN monitor service was requested to run an update
2023-02-01 18:17:47.204 T:536      INFO <general>: VPN Mgr : Update primary VPNs from settings
2023-02-01 18:17:47.341 T:712      INFO <general>: VPN Mgr : Entered connect.py with parameter 1
2023-02-01 18:17:47.422 T:536      INFO <general>: VPN Mgr : Found no VPNs, setup is invalid
2023-02-01 18:17:47.472 T:712      INFO <general>: VPN Mgr : Running connectVPN, connection_order is 1, profile is 
2023-02-01 18:17:47.473 T:536      INFO <general>: VPN Mgr : Flag lists have changed
2023-02-01 18:17:47.507 T:712      INFO <general>: VPN Mgr : Connecting to first VPN
2023-02-01 18:17:48.067 T:712      INFO <general>: VPN Mgr : Checking openvpn (and maybe pidof and killall) can be run
2023-02-01 18:17:48.188 T:712      INFO <general>: VPN Mgr : (Linux) Stopping VPN with sudo killall -9 openvpn
2023-02-01 18:17:48.328 T:712      INFO <general>: VPN Mgr : (vpnplatform.py) Testing openvpn with : sudo "/usr/sbin/openvpn" > /home/osmc/.kodi/temp/openvpn.log 2>&1 &
2023-02-01 18:17:49.534 T:712      INFO <general>: VPN Mgr : (vpnplatform.py) Testing killall with : sudo killall vpnmanagertest > /home/osmc/.kodi/temp/command_test.txt 2>&1 &
2023-02-01 18:17:50.767 T:536      INFO <general>: VPN Mgr : Requested update to service process via settings monitor
2023-02-01 18:17:50.793 T:536      INFO <general>: VPN Mgr : Update service requested KodiMonitor
2023-02-01 18:17:51.571 T:712      INFO <general>: VPN Mgr : Requesting service stops
2023-02-01 18:17:52.575 T:536      INFO <general>: VPN Mgr : Service received a stop request
2023-02-01 18:17:53.617 T:712      INFO <general>: VPN Mgr : VPN monitor paused
2023-02-01 18:17:54.155 T:712      INFO <general>: VPN Mgr : Stopping VPN
2023-02-01 18:17:54.266 T:712      INFO <general>: VPN Mgr : (Linux) Stopping VPN with sudo killall -15 openvpn
2023-02-01 18:17:55.595 T:712      INFO <general>: VPN Mgr : Credentials need to be validated
2023-02-01 18:17:56.314 T:712      INFO <general>: VPN Mgr : (common.py) Creating VPN provider directory /home/osmc/.kodi/addons/service.vpn.manager/UserDefined
2023-02-01 18:17:56.391 T:712      INFO <general>: VPN Mgr : Attempting to use the credentials in /home/osmc/.kodi/addons/service.vpn.manager/UserDefined/pass.txt
2023-02-01 18:17:56.417 T:712      INFO <general>: VPN Mgr : Writing VPN credentials file to /home/osmc/.kodi/addons/service.vpn.manager/UserDefined/pass.txt
2023-02-01 18:17:57.462 T:712      INFO <general>: VPN Mgr : Opening translate file for UserDefined
2023-02-01 18:17:57.504 T:712      INFO <general>: VPN Mgr : Opened translate file for UserDefined
2023-02-01 18:17:57.534 T:712      INFO <general>: VPN Mgr : Displaying list of connections with filter UDP
2023-02-01 18:18:41.353 T:712      INFO <general>: VPN Mgr : Opening ovpn file to get server name /home/osmc/.kodi/addons/service.vpn.manager/UserDefined/myhouse_no-compression (UDP).ovpn
2023-02-01 18:18:41.501 T:712      INFO <general>: VPN Mgr : Connecting using profile myhouse_no-compression (UDP)...
2023-02-01 18:18:42.058 T:712      INFO <general>: VPN Mgr : Deleted the VPN log file /home/osmc/.kodi/temp/openvpn.log before starting a new connection
2023-02-01 18:18:42.147 T:712      INFO <general>: VPN Mgr : (Linux) Starting VPN with sudo "/usr/sbin/openvpn" "/home/osmc/.kodi/addons/service.vpn.manager/UserDefined/myhouse_no-compression (UDP).ovpn" > /home/osmc/.kodi/temp/openvpn.log 2>&1 &
2023-02-01 18:18:44.226 T:712      INFO <general>: VPN Mgr : Reading log file
2023-02-01 18:18:54.614 T:712      INFO <general>: Skipped 4 duplicate messages..
2023-02-01 18:18:54.614 T:712      INFO <general>: VPN Mgr : Reading log file
2023-02-01 18:19:05.003 T:712      INFO <general>: Skipped 4 duplicate messages..
2023-02-01 18:19:05.003 T:712      INFO <general>: VPN Mgr : Reading log file
2023-02-01 18:19:15.412 T:712      INFO <general>: Skipped 4 duplicate messages..
2023-02-01 18:19:15.412 T:712      INFO <general>: VPN Mgr : Reading log file
2023-02-01 18:19:25.792 T:712      INFO <general>: Skipped 4 duplicate messages..
2023-02-01 18:19:25.792 T:712      INFO <general>: VPN Mgr : Reading log file
2023-02-01 18:19:36.165 T:712      INFO <general>: Skipped 4 duplicate messages..
2023-02-01 18:19:36.165 T:712      INFO <general>: VPN Mgr : Reading log file
2023-02-01 18:19:46.566 T:712      INFO <general>: Skipped 4 duplicate messages..
2023-02-01 18:19:46.566 T:712      INFO <general>: VPN Mgr : Reading log file
2023-02-01 18:19:56.962 T:712      INFO <general>: Skipped 4 duplicate messages..
2023-02-01 18:19:56.962 T:712      INFO <general>: VPN Mgr : Reading log file
2023-02-01 18:20:01.682 T:712      INFO <general>: Skipped 2 duplicate messages..
2023-02-01 18:20:01.682 T:712      INFO <general>: VPN Mgr : (vpnplatform.py) VPN configuration /home/osmc/.kodi/addons/service.vpn.manager/UserDefined/myhouse_no-compression (UDP).ovpn start >>>
2023-02-01 18:20:01.682 T:712      INFO <general>: remote ka.redacted.comm.com 3178
2023-02-01 18:20:01.682 T:712      INFO <general>: float
2023-02-01 18:20:01.683 T:712      INFO <general>: nobind
2023-02-01 18:20:01.683 T:712      INFO <general>: proto udp
2023-02-01 18:20:01.683 T:712      INFO <general>: dev tun
2023-02-01 18:20:01.683 T:712      INFO <general>: sndbuf 0
2023-02-01 18:20:01.683 T:712      INFO <general>: rcvbuf 0
2023-02-01 18:20:01.683 T:712      INFO <general>: keepalive 10 30
2023-02-01 18:20:01.683 T:712      INFO <general>: auth-user-pass /home/osmc/.kodi/addons/service.vpn.manager/UserDefined/pass.txt
2023-02-01 18:20:01.683 T:712      INFO <general>: client
2023-02-01 18:20:01.683 T:712      INFO <general>: auth SHA1
2023-02-01 18:20:01.683 T:712      INFO <general>: cipher AES-128-CBC
2023-02-01 18:20:01.683 T:712      INFO <general>: remote-cert-tls server
2023-02-01 18:20:01.683 T:712      INFO <general>: <ca>
2023-02-01 18:20:01.683 T:712      INFO <general>: -----BEGIN CERTIFICATE-----
2023-02-01 18:20:01.683 T:712      INFO <general>: MIIDMTCCApqgAwIBAgIJAKs2FB5adzXLMA0GCSqGSIb3DQEBBQUAMG8xCzAJBgNV
...
2023-02-01 18:20:01.684 T:712      INFO <general>: J6d5Abbf7NEJk0D8DY6jJQ1YDLhELZ4N5+dnai/iEL8D+LRQ/zCCDG6r6i0hNSLK
2023-02-01 18:20:01.684 T:712      INFO <general>: amA9sSE=
2023-02-01 18:20:01.685 T:712      INFO <general>: -----END CERTIFICATE-----
2023-02-01 18:20:01.685 T:712      INFO <general>: 
2023-02-01 18:20:01.685 T:712      INFO <general>: </ca>
2023-02-01 18:20:01.685 T:712      INFO <general>: 
2023-02-01 18:20:01.685 T:712      INFO <general>: script-security 2
2023-02-01 18:20:01.685 T:712      INFO <general>: 
2023-02-01 18:20:01.685 T:712      INFO <general>: Skipped 1 duplicate messages..
2023-02-01 18:20:01.685 T:712      INFO <general>: ping 5
2023-02-01 18:20:01.685 T:712      INFO <general>: ping-exit 30
2023-02-01 18:20:01.685 T:712      INFO <general>: ping-timer-rem
2023-02-01 18:20:01.685 T:712      INFO <general>: remap-usr1 SIGTERM
2023-02-01 18:20:01.685 T:712      INFO <general>: verb 3
2023-02-01 18:20:01.685 T:712      INFO <general>: VPN Mgr : (vpnplatform.py) <<< VPN configuration file end
2023-02-01 18:20:01.741 T:712      INFO <general>: VPN Mgr : (vpnplatform.py) VPN log file start >>>
2023-02-01 18:20:01.742 T:712      INFO <general>: Options error: --keepalive conflicts with --ping, --ping-exit, or --ping-restart.  If you use --keepalive, you don't need any of the other --ping directives.
2023-02-01 18:20:01.742 T:712      INFO <general>: Use --help for more information.
2023-02-01 18:20:01.742 T:712      INFO <general>: VPN Mgr : (vpnplatform.py) <<< VPN log file end
2023-02-01 18:20:02.496 T:712     ERROR <general>: VPN Mgr : (common.py) Error connecting to VPN, something unexpected happened. Check log for more information.
2023-02-01 18:20:02.614 T:712      INFO <general>: VPN Mgr : (Linux) Stopping VPN with sudo killall -9 openvpn
2023-02-01 18:20:02.689 T:712      INFO <general>: VPN Mgr : Requesting service restarts
2023-02-01 18:20:02.834 T:536      INFO <general>: VPN Mgr : Service received a start request
2023-02-01 18:20:06.878 T:536      INFO <general>: VPN Mgr : VPN monitor service was requested to run an update
2023-02-01 18:20:06.913 T:536      INFO <general>: VPN Mgr : Update primary VPNs from settings
2023-02-01 18:20:07.076 T:536      INFO <general>: VPN Mgr : Found no VPNs, setup is invalid
2023-02-01 18:20:07.100 T:536      INFO <general>: VPN Mgr : Flag lists have changed
2023-02-01 18:33:50.102 T:482   WARNING <general>: CGUIWindowManager - HandleAction - ignoring action 107, because topmost modal dialog closing animation is running
2023-02-01 18:33:50.418 T:712      INFO <general>: Skipped 1 duplicate messages..
2023-02-01 18:33:50.418 T:712      INFO <general>: VPN Mgr : Exit connect.py
2023-02-01 18:33:50.418 T:712      INFO <general>: CPythonInvoker(5, special://home/addons/service.vpn.manager/connect.py): script successfully run
2023-02-01 18:33:50.509 T:712      INFO <general>: Python interpreter stopped
2023-02-01 18:34:17.177 T:786      INFO <general>: initializing python engine.
2023-02-01 18:34:17.449 T:786   WARNING <general>: CPythonInvoker(6): Script invoked without an addon. Adding all addon modules installed to python path as fallback. This behaviour will be removed in future version.
2023-02-01 18:34:18.096 T:786      INFO <general>: VPN Mgr : -- Entered logpopup.py with parameter kodi --
2023-02-01 18:34:18.118 T:482      INFO <general>: Loading skin file: /home/osmc/.kodi/addons/service.vpn.manager/resources/skins/Default/720p/logtextbox.xml, load type: LOAD_ON_GUI_INIT

I fat-fingered one of the links. This is one of the guides I’ve followed for inspiration. http://brianhornsby.com/blog/how-to-setup-your-vpn-client.php

Update:
I disabled the OpenVPN manager plug in.
I turned on my phone’s hot spot and connected the Pi to it.
I then connected my PC to my phone and SSHed in to the Pi.

When connecting manually via shell (note: this is the compression configuration that the plug-in complained about, but I’ve used without issue elsewhere, it still complains…):

sudo openvpn --config /home/osmc/Downloads/ka.redacted.comm.com.ovpn     2023-02-02 12:03:00 WARNING: Compression for receiving enabled. Compression has been used in the past to break encryption. Sent packets are not compressed unless "allow-compression yes" is also set.
2023-02-02 12:03:00 DEPRECATED OPTION: --cipher set to 'AES-128-CBC' but missing in --data-ciphers (AES-256-GCM:AES-128-GCM). Future OpenVPN version will ignore --cipher for cipher negotiations. Add 'AES-128-CBC' to --data-ciphers or change --cipher 'AES-128-CBC' to --data-ciphers-fallback 'AES-128-CBC' to silence this warning.
2023-02-02 12:03:00 OpenVPN 2.5.1 arm-unknown-linux-gnueabihf [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on May 14 2021
2023-02-02 12:03:00 library versions: OpenSSL 1.1.1n  15 Mar 2022, LZO 2.10
🔐 Enter Auth Username: th1s1smyus3rn@me
🔐 Enter Auth Password: *******************
2023-02-02 12:03:42 TCP/UDP: Preserving recently used remote address: [AF_INET]127.237.17.32:1234
2023-02-02 12:03:42 UDP link local: (not bound)
2023-02-02 12:03:42 UDP link remote: [AF_INET]127.237.17.32:1234
2023-02-02 12:03:43 [RT-AX55] Peer Connection Initiated with [AF_INET]127.237.17.32:1234
2023-02-02 12:03:44 TUN/TAP device tun0 opened
2023-02-02 12:03:44 net_iface_mtu_set: mtu 1500 for tun0
2023-02-02 12:03:44 net_iface_up: set tun0 up
2023-02-02 12:03:44 net_addr_ptp_v4_add: 10.8.0.6 peer 10.8.0.5 dev tun0
2023-02-02 12:03:44 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
2023-02-02 12:03:44 Initialization Sequence Completed

I’m not sure how to exit this without killing the session. I will redirect stdout and stderr to a file in the future. So I opened a new PuTTY window and attempted to Ping the remote server.

osmc@MyPi:~$ ping 192.168.1.254
PING 192.168.1.254 (192.168.1.254): 56 data bytes
64 bytes from 192.168.1.254: seq=0 ttl=63 time=252.533 ms

Then I opened a movie in 1080. It plays perfectly.
It takes a long time to perform disk operations, but it works!

Still looking for a way to configure and execute this via OSMC/Kodi, but making progress.

Further progress, however, I’m exceptionally frustrated now as what I know works on the command line does everything I need when executed from rc.local:

openvpn --config /home/osmc/Downloads/myhouse.ovpn --auth-user-pass /home/osmc/.kodi/addons/service.vpn.manager/UserDefined/pass.txt --daemon --log /home/osmc/Logs/openvpn_$(date +%y%m%d%s).log

And that hiccup is the fact that the network is on the same private IP range as my house.
Again, a line that works on the command line, doesn’t work in rc.local. In fact, it’s worse. The openvpn command doesn’t appear run either.

/sbin/ip route add 192.168.1.254/32 via 10.8.0.5 dev tun0

I also tried:

/usr/sbin/route add -net 192.168.1.254/32 gw 10.8.0.5

And I’ve tried “sleep 10 && …” thinking the VPN is not ready yet.

The final insult is when I execute the above commands manually from SSH. Kodi works. I play a video, it works. After a period of time, the Amazon fire stick remote that worked previously acts disconnected. I plug in a mouse and can once again control Kodi. When I start playing a video I get ghost mouse cursors all over the screen and no video.

I’m at a loss, so I’m going to start from scratch again because clearly I have some artifact left from the many attempts I’ve made to resolve my issues.

Sorry for the late (5 months) reply, I would check my old minecraft-srver thread, I walk through using screen to keep sessions, and how manipulate/inject to detached screen’s, how to create a serveic file and how to start and stop it.

Replace my minescraft-starter shell script with your own openvpn commmmand in a shell script

Thanks @joakim_s. I didn’t post my last post when I wrote it, I thought some sort of divine inspiration would direct me to an answer four months ago, but it never happened. I had already started the work below when you replied.
I wouldn’t have taken the time to document it again, but the forum stores unposted replies - that’s really cool.

Solution below, read carefully as there is some back tracking on my part from other’s guides.

Knowing that the local network is the same class C as my home network and the modified single IP route was causing the most headache, I have completely changed my home IP range to simplify the issue. In fact, I know better, you always want to avoid 192.168.1.0/24 and 10.0.0.1/24 networks since so many devices are configured this way from the factory. Pick a third octet that’s anything besides 1, 2 or zero.

I’ve also started over with a generic LibreELEC Rpi 3 build. This is what I use at home via a RecalBox, so it’s what I’m used to.

Starting over:
Install LibreELEC Pi3 from Rpi imager.

Fire up the Pi, add WiFi network and SSH credentials. I don’t know why the Pi imager didn’t respect my configuration options through SHIFT+CTRL+X.

see note below Follow https://www.vpnranks.com/blog/libreelec/#How-to-Install-VPN-for-LibreELEC-in-us

Notes: Log in via PuTTY/SSH
Password had to be reset via Settings->Addons->LE settings plug in, probably cause I fat-fingered it the first time, but I don’t think I did? Oh, well.

I used FileZilla to transfer files. If you have SMB turned on, you can use that instead. However, accessing hidden directories may be more difficult. If you only have ssh turned on, you can use sFTP through your favorite application.

I altered the router created .ovpn file with this line after “keepalive 10 30”
auth-user-pass /storage/.kodi/addons/service.vpn.manager/custom/pass.txt
pass.txt is a user-password pair in plain text separated by a new line, no special formatting.

I had to turn on "show hidden files Settings->Media Settings (Expert)->“Show Hidden Files” to allow me to access the directory listed below. If you put your configs somewhere else (in a directory without dots), you won’t need this step.

I stored my *.ovpn in /storage/.kodi/addons/service.vpn.manager/custom along with “pass.txt”
If there is no password file the Wizard will ask you to enter it.

I imported the entire folder which also contained the router certificate, but I guess that was unnecessary as it was also in the OVPN file.

Log from import:

Sadly, it doesn’t seem to connect. I don’t know why the GUI addon doesn’t work right.

Restart, the GUI claims it needs to be configured again. sigh
I’ve given up on the GUI VPN configuration. I disabled the addon.
As such, I suggest skipping the part of the tutorial where you install the VPN addon. It has no value.

for reference command line-connect:
openvpn --config /storage/.kodi/addons/service.vpn.manager/custom/new.ovpn --auth-user-pass /storage/.kodi/addons/service.vpn.manager/custom/pass.txt --daemon --log /storage/Logs/openvpn_$(date +%y%m%d%s).log

Success!

Now to add the command above to /storage/.config/autostart.sh (normally, I would use /etc/rc.local or /etc/init.d)

#!/bin/bash
openvpn --config /storage/.kodi/addons/service.vpn.manager/custom/new.ovpn --auth-user-pass /storage/.kodi/addons/service.vpn.manager/custom/pass.txt --daemon --log /storage/Logs/openvpn_$(date +%y%m%d%s).log

Restart.

It works!

DIR/LS operations are still slow. It took several hours to catalog my library. However, video playback works. It doesn’t like some higher quality videos - it’s got to be a bit rate issue, I’m still having significant lag and stuttering on the same videos as I was previously. I might try this on a Rpi4 in the future.

I restarted the Pi, still connected.

And this may or may not be of value to anyone reading this thread, I’ve started storing RBFs (really big files) in a separate location from the rest of my collection. I just don’t want to make a habit of watching 2GB+ files every 30 minutes over the VPN. That’s a lot of bandwidth.
Because I now know 1080 is also going to be problematic with this set up, I’ll probably do the same for those files as well.

I also added the following to the autostart.sh (replace your own credentials and IP, of course) to mount the remote server via SMB. You’ll need to mkdir the “remote_SMB” directory.:
sudo mount -t cifs -o rw,vers=3.0,username=pi,password=raspberry //192.168.1.10/shared /media/remote_SMB
So if there’s some large file I do want to watch, I can simply SSH into the KODI box and copy it from the RBF directory to local storage (512GB USB stick) in the background. I’ve got a 10MB/s connection ATM, so 2GB won’t take that long to transfer.

FYI: I know a Rpi 3B+ media server will support at least three distinct 1080 streams over SMB when reading from a HDD and connected to the network via 10baseT wired ethernet. I ran a test where every TV in my home with a KODI device played a different stream for an hour - while I did not watch all three at the same time, as I checked on them throughout the experiment, I did not see any difference in the video/audio playback than what I expected.
Home Router is running the VPN server, an Asus RT-AX55, cable modem is a “Motorola” Arris Surfboard SB6141 (DOCSIS 3.0) internet connection is a 250Mb with occasional bursts to 300-ish. I’m using 1024 encryption.
Local router is provided by Spectrum Cable, SAX1V1S

Sometimes, if you lose the network, you’ll need to re-enter the WPA key, but it does prompt you, so it’s not terrible. Sometimes it auto-reconnects.