我的配置文件中有以下内容:
client
dev tun
proto udp
remote xxxx.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
tls-version-min 1.2
verify-x509-name server_9UxxxVmX7i5 name
cipher AES-256-CBC
auth SHA256
compress lz4
verb 3
在 Ubuntu 17.10 上正确建立了连接,路由表如下所示
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.1 0.0.0.0 UG 50 0 0 tun0
0.0.0.0 10.111.48.1 0.0.0.0 UG 20600 0 0 wlo1
10.8.0.0 0.0.0.0 255.255.255.0 U 50 0 0 tun0
10.111.48.0 0.0.0.0 255.255.240.0 U 600 0 0 wlo1
10.111.48.1 0.0.0.0 255.255.255.255 UH 600 0 0 wlo1
123.123.123.123 10.111.48.1 255.255.255.255 UGH 600 0 0 wlo1
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlo1
问题是我可以 ping 自己,10.8.0.2,但我无法 ping tun1 子网上的任何其他东西(甚至网关)。实际上无法访问互联网的其余部分。你有没有发现我可能遗漏了什么?
答案1
您可能在这里遇到了路由问题。您没有redirect-gateway
在配置文件中发出指令。因此,您要么获得推送指令,要么获得 DHCP 地址。有可能您一连接,DHCP 网关 + 接口就会优先,并且您会丢失 VPN 连接,因为它会尝试通过虚拟接口保持 VPN 连接。尝试不设置网关地址,那么您的连接应该可以正常工作。如果您在 ubuntu 服务器上配置了防火墙,请检查防火墙设置。
另一种方法是使用redirect-gateway
配置选项,然后 openvpn 通常会在本地路由表中为 VPN 端点创建一个主机路由,以便仍然通过(在您的情况下)本地接口传出wlo1
。