我在 Digital Ocean 上的 Ubuntu 服务器 (16.04.2) 上运行 OpenVPN 服务器。这个服务器已经运行了一段时间。据我所知,它运行良好,没有任何问题。
1) 我有一个 Ubuntu 客户端。这台计算机始终能够毫无问题地连接到服务器,无论是使用顶部菜单栏上的 Unity OpenVPN 连接器还是直接使用 .ovpn 文件。
2)我有一个使用 Open VPN 客户端的 Android 移动客户端,并且它始终连接到同一台服务器。
3) 我有一个定期使用的 Windows 客户端。它连接服务器时从未出现问题。
问题周期性地出现在上面的 #1 上:Ubuntu 客户端。正如我所说,它始终可以无问题地连接。但有时,在连接时,无论如何连接,都会出现 0 路流量。当它处于这种“状态”时,重新启动或重新连接并不能解决问题。它会这样持续一天左右,然后它会正常工作数周,然后再次出现这个小数字。
所有设备都使用同一个 WiFi,在这些故障期间,只有 Ubuntu 客户端会受到影响。当它受到影响时,网络命令会变得非常慢(例如“route”)。
当它工作中,路线返回:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.10.0.5 128.0.0.0 UG 0 0 0 tun0
default gateway 0.0.0.0 UG 600 0 0 wlp3s0
10.10.0.1 10.10.0.5 255.255.255.255 UGH 0 0 0 tun0
10.10.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
128.0.0.0 10.10.0.5 128.0.0.0 UG 0 0 0 tun0
[servers name] gateway 255.255.255.255 UGH 0 0 0 wlp3s0
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 docker0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp3s0
当它不管用,路线返回(尽管非常缓慢):
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.10.0.5 0.0.0.0 UG 50 0 0 tun0
default 192.168.0.1 0.0.0.0 UG 600 0 0 wlp3s0
10.10.0.1 10.10.0.5 255.255.255.255 UGH 50 0 0 tun0
10.10.0.5 0.0.0.0 255.255.255.255 UH 50 0 0 tun0
[server’s name] 192.168.0.1 255.255.255.255 UGH 600 0 0 wlp3s0
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 docker0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp3s0
为什么会出现这种情况?我不知道,也没有找到任何信息。再次强调:多个客户端使用同一个服务器。Android 客户端始终保持连接,从未出现任何问题。Windows 客户端:它作为 Vbox 客户端在出现问题的同一个 Ubuntu 客户端上运行。如果它出现问题,那么我不会将其连接到 VPN,但同一台机器上的 Winows Vbox 客户端在连接时没有问题,在来回移动字节时也没有问题。
客户端的 .ovpn(所有客户端相同):
client
dev tun
mssfix 1200
proto udp
remote vpn.myserver.com 443
resolv-retry infinite
nobind
persist-key
persist-tun
pkcs12 mykey.p12
remote-cert-tls server
comp-lzo
verb 3
auth-user-pass
再次强调,身份验证和连接从来都不是问题。MTU 大小至关重要:MTU 自动发现在任何地方都不可靠,如果 MTU 大小没有减小,客户端和服务器之间的一些“咖啡店”或云端路由器就会出现问题,因为实际数据包大小有时会超过最大值并导致问题。但是,正如我所说,唯一有问题的客户端是 Ubuntu 客户端。同样的配置在其他地方都有效。
我也尝试了各种其他配置(客户端和服务器):TCP 而不是 UDP;不同的端口号。
感谢您的帮助。