LEDE(openwrt)上的 OpenVPN 一小时后停止工作

LEDE(openwrt)上的 OpenVPN 一小时后停止工作

我有一台 Linksys WRT1900ACS,运行的是 LEDE Reboot 17.01.1,我遵循了针对我的 vpntunnel.com 设置 openvpn 的指南。

我还使用了处理 DNS 的指南。

一小时内一切正常,一小时后,我第一次丢失 DNS,然后短暂地失去连接。

这个问题的流程似乎是这样的;首先我在系统日志中看到这个:

Fri Jun  9 14:06:21 2017 daemon.notice netifd: wan (1404): udhcpc: sending renew
Fri Jun  9 14:06:22 2017 daemon.notice netifd: wan (1404): udhcpc: lease of {MY WAN IP} obtained, lease time 3600

然后 openvpn 客户端记录如下内容:

Fri Jun  9 14:06:43 2017 VERIFY OK: depth=1, C=GB, ST=LN, L=London, O=vpnsvc, OU=vpnsvc, CN=vpnsvc.com, name=vpnsvc, [email protected]
Fri Jun  9 14:06:43 2017 VERIFY KU OK
Fri Jun  9 14:06:43 2017 Validating certificate extended key usage
Fri Jun  9 14:06:43 2017 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
Fri Jun  9 14:06:43 2017 VERIFY EKU OK
Fri Jun  9 14:06:43 2017 VERIFY OK: depth=0, C=GB, ST=LN, L=London, O=vpnsvc, OU=vpnsvc, CN=vpnsvc, name=vpnsvc, [email protected]
Fri Jun  9 14:06:44 2017 Data Channel Encrypt: Cipher 'AES-256-GCM' initialized with 256 bit key
Fri Jun  9 14:06:44 2017 Data Channel Decrypt: Cipher 'AES-256-GCM' initialized with 256 bit key
Fri Jun  9 14:06:44 2017 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 ECDHE-RSA-AES256-GCM-SHA384, 2048 bit RSA

然后在 14:09:13 我失去了连接。我无法访问我网络之外的任何主机。然后 openvpn 发现问题并循环出错:

Fri Jun  9 14:10:51 2017 [vpnsvc] Inactivity timeout (--ping-restart), restarting
Fri Jun  9 14:10:51 2017 SIGUSR1[soft,ping-restart] received, process restarting
Fri Jun  9 14:10:56 2017 TCP/UDP: Preserving recently used remote address: [AF_INET]194.242.11.163:443
Fri Jun  9 14:10:56 2017 TCP/UDP: Preserving recently used remote address: [AF_INET]194.242.11.163:443
Fri Jun  9 14:10:56 2017 UDP link local: (not bound)
Fri Jun  9 14:10:56 2017 UDP link remote: [AF_INET]194.242.11.163:443
Fri Jun  9 14:11:56 2017 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Fri Jun  9 14:11:56 2017 TLS Error: TLS handshake failed
Fri Jun  9 14:11:56 2017 SIGUSR1[soft,tls-error] received, process restarting

为了解决这个问题,我需要重新连接 vpn 接口并重新连接 wan 接口。之后一切恢复正常,大约一个小时。

我尝试设置auth-nocache以避免重新协商身份验证,希望我的问题类似于,但这没有帮助。我重置了路由器,并再次按照说明操作,问题依然存在。

此时我不知道下一步该尝试什么。有什么指示可以指导我如何进一步调试吗?

更新:

好的,所以我将 WAN 设置为静态 IP,以排除 WAN 每小时请求新 IP 的潜在问题。一小时后问题仍然存在。

openvpn 尝试重新认证多次均失败:

Sat Jun 10 21:21:33 2017 us=62938 TLS: soft reset sec=0 bytes=2838281/-1 pkts=11352/0
Sat Jun 10 21:21:33 2017 us=153598 VERIFY OK: depth=1, C=GB, ST=LN, L=London, O=vpnsvc, OU=vpnsvc, CN=vpnsvc.com, name=vpnsvc, [email protected]
Sat Jun 10 21:21:33 2017 us=154667 VERIFY KU OK
Sat Jun 10 21:21:33 2017 us=154722 Validating certificate extended key usage
Sat Jun 10 21:21:33 2017 us=154763 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
Sat Jun 10 21:21:33 2017 us=154799 VERIFY EKU OK
Sat Jun 10 21:21:33 2017 us=154833 VERIFY OK: depth=0, C=GB, ST=LN, L=London, O=vpnsvc, OU=vpnsvc, CN=vpnsvc, name=vpnsvc, [email protected]
Sat Jun 10 21:21:35 2017 us=911573 Data Channel Encrypt: Cipher 'AES-256-GCM' initialized with 256 bit key
Sat Jun 10 21:21:35 2017 us=911659 Data Channel Decrypt: Cipher 'AES-256-GCM' initialized with 256 bit key
Sat Jun 10 21:21:35 2017 us=911759 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 ECDHE-RSA-AES256-GCM-SHA384, 2048 bit RSA
Sat Jun 10 21:33:21 2017 us=932911 [vpnsvc] Inactivity timeout (--ping-restart), restarting
Sat Jun 10 21:33:21 2017 us=933375 TCP/UDP: Closing socket

当我重新连接 wan 接口时,重新认证成功,但在初始化序列完成之前,我得到了以下信息:

Sat Jun 10 21:38:56 2017 us=700658 /sbin/route del -net 194.242.11.163 netmask 255.255.255.255 route: SIOCDELRT: No such process
Sat Jun 10 21:38:56 2017 us=702079 ERROR: Linux route delete command failed: external program exited with error status: 1
Sat Jun 10 21:38:56 2017 us=702174 /sbin/route del -net 0.0.0.0 netmask 128.0.0.0 route: SIOCDELRT: No such process
Sat Jun 10 21:38:56 2017 us=703501 ERROR: Linux route delete command failed: external program exited with error status: 1
Sat Jun 10 21:38:56 2017 us=703583 /sbin/route del -net 128.0.0.0 netmask 128.0.0.0 route: SIOCDELRT: No such process
Sat Jun 10 21:38:56 2017 us=704883 ERROR: Linux route delete command failed: external program exited with error status: 1

更新 2 所以我终于似乎取得了一些进展,似乎我的 DNS 设置被重置为我从 DHCP 获得的设置。无法通过 VPN 访问这些 DNS 服务器,因此当重新对 VPN 服务器进行身份验证时,我丢失了 DNS 并且无法访问 VPN 服务器。因此,活动的 VPN 连接超时,并且由于所有流量都通过 VPN 接口路由,我完全失去了连接。重新连接 WAN 接口会以某种方式使流量再次流过 WAN,并且可以建立新的 VPN 连接。

所以现在我只需要弄清楚为什么我的 DNS 设置被重置。并验证我的理论。

答案1

当我连接到 VPN 的机器上的时间和 VPN 服务器上的时间不同步时,我也遇到了类似的问题。我通过使用外部 NTP 解决了这个问题。

答案2

看一下行:

Sat Jun 10 21:33:21 2017 us=932911 [vpnsvc] Inactivity timeout
(--ping-restart), restarting

您需要在客户端中设置一个有效的 Keepalive 设置:

keepalive 10 120

它对我有用。

现在看来,您的客户端中的 ifconfig 设置也不正确。
这就是服务器将其丢弃的原因。

检查这个帖子: https://forums.openvpn.net/viewtopic.php?f=6&t=22439&start=30#p64562

相关内容