OpenVPN 重启中断连接

OpenVPN 重启中断连接

我使用 VPN(由方法)在 Ubuntu 16.04 上通过默认网络管理器进行连接。经常——在大约 5 分钟的流媒体或大约 1 小时的正常浏览之后——它会切断,我的意思是一切都失败了,包括直接连接到给定的 IP。

经过深入研究后/var/log/syslog,我发现了以下一系列事件,这似乎是罪魁祸首:

Apr  8 17:41:43 ***** nm-openvpn[9107]: [83d27bda14f33782df085b09962c2dfa] Inactivity timeout (--ping-restart), restarting
Apr  8 17:41:43 ***** nm-openvpn[9107]: SIGUSR1[soft,ping-restart] received, process restarting
Apr  8 17:41:45 ***** nm-openvpn[9107]: WARNING: No server certificate verification method has been enabled.  See http://openvpn.net/howto.html#mitm for more info.
Apr  8 17:41:45 ***** nm-openvpn[9107]: NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Apr  8 17:41:45 ***** nm-openvpn[9107]: RESOLVE: Cannot resolve host address: us-east.privateinternetaccess.com: Temporary failure in name resolution
Apr  8 17:42:20 ***** nm-openvpn[9107]: message repeated 8 times: [ RESOLVE: Cannot resolve host address: us-east.privateinternetaccess.com: Temporary failure in name resolution]

有时前面有以下内容:

Apr  8 10:47:28 ***** nm-openvpn[4716]: TLS Error: Unroutable control packet received from [AF_INET]*.*.*.*:**** (si=3 op=P_CONTROL_V1)
Apr  8 10:47:56 ***** nm-openvpn[4716]: message repeated 3 times: [ TLS Error: Unroutable control packet received from [AF_INET]*.*.*.*:**** (si=3 op=P_CONTROL_V1)]

然而,我发现的所有内容都表明存在时间同步问题,而我没有遇到过这个问题。

以下是openvpn网络管理器生成的进程:

/usr/sbin/openvpn --remote us-newyorkcity.privateinternetaccess.com 1194 udp --comp-lzo --nobind --dev tun --auth-nocache --reneg-sec 0 --syslog nm-openvpn --script-security 2 --up /usr/lib/NetworkManager/nm-openvpn-service-openvpn-helper --bus-name org.freedesktop.NetworkManager.openvpn.Connection_8 --tun -- --up-restart --persist-key --persist-tun --management /var/run/NetworkManager/nm-openvpn-b0ce41de-070b-42c7-af39-90961791ebeb unix --management-client-user root --management-client-group root --management-query-passwords --auth-retry interact --route-noexec --ifconfig-noexec --client --auth-user-pass --ca /etc/openvpn/ca.crt --user nm-openvpn --group nm-openvpn --chroot /var/lib/openvpn/chroot

(我找不到 NM 中哪里可以更改这些选项……)

知道问题可能出在哪里吗?

答案1

最近遇到了同样的问题,并在 bugs.launchpad.net 上看到了这篇帖子,它帮我解决了这个问题! 详细帖子在这里,但我会继续列出说明。

简而言之,OpenVPN 由于权限问题无法重新连接。(总是这样,不是吗!?)

您需要为 systemd 创建一个 Drop-in“插件”。

  1. 创建目录来保存插件配置文件:

$ cd /etc/systemd/系统

$ sudo mkdir NetworkManager.service.d

$ cd NetworkManager.service.d

  1. 创建一个新的conf文件:

$ sudo nano disable-openvpn-reduced-privileges.conf

在文件中添加以下内容:

# Disable NetworkManager's OpenVPN plug-in from performing chroot and  dropping privileges by default (null assignment) 
[Service]
Environment="NM_OPENVPN_CHROOT=" 
Environment="NM_OPENVPN_USER="
Environment="NM_OPENVPN_GROUP="

保存文件并退出 nano。为了使更改生效,您可以重新启动 NetworkManager 服务并退出并重新启动 openvpn 连接,或者如果对您来说更简单,只需重新启动计算机即可。

您可以通过多种方式测试它是否正常工作:

Systemd 应该显示插入式配置正在使用中:

$ systemctl 状态网络管理器

NetworkManager.service - Network Manager
  Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/NetworkManager.service.d
     +-disable-openvpn-reduced-privileges.conf
  1. 当 openvpn 运行时,它应该以 root 用户身份运行。可以使用 ps 或任何其他进程列表/监视器来验证这一点。我个人使用 htop。

  2. 强制重新启动正在运行的 openvpn 连接并查看是否成功:

$ sudo killall -SIGUSR1 openvpn

相关内容