OpenVPN - 在 Linux 上可连接但无法上网,在 Windows 上可完美运行

OpenVPN - 在 Linux 上可连接但无法上网,在 Windows 上可完美运行

我已经设置了一个配置了 OpenVPN 的 Amazon EC2 服务器。我可以使用 Windows 机器进行连接,并且一切正常 - 互联网流量全部通过 VPN 路由。使用 Ubuntu 客户端,我可以成功连接到服务器,但无法在浏览器中查看网页或 ping 外部 IP(例如 8.8.8.8)。有人知道我需要更改什么才能使其正常工作吗?配置发布如下:

Ubuntu 服务器

port 443
proto tcp
dev tun
ca ca.crt
cert singa.crt
key singa.key  # This file should be kept secret
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3

Ubuntu 客户端

client
dev tun
proto tcp
remote (delete) 443
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
resolv-retry infinite
nobind
persist-key
persist-tun
ns-cert-type server
comp-lzo
verb 3
<ca>
(deleted)
</ca>
<cert>
(deleted)
</cert>
<key>
(deleted)
</key>

Windows 配置

client
dev tun
proto tcp
remote (delete) 443
resolv-retry infinite
nobind
persist-key
persist-tun
ns-cert-type server
comp-lzo
verb 3
<ca>
(deleted)
</ca>
<cert>
(deleted)
</cert>
<key>
(deleted)
</key>

连接前的客户端路由表:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     2      0        0 wlan0

连接后的客户端路由表:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.8.0.5        128.0.0.0       UG    0      0        0 tun0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 wlan0
10.8.0.1        10.8.0.5        255.255.255.255 UGH   0      0        0 tun0
10.8.0.5        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
** SERVERIP **  192.168.1.1     255.255.255.255 UGH   0      0        0 wlan0
128.0.0.0       10.8.0.5        128.0.0.0       UG    0      0        0 tun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     2      0        0 wlan0

答案1

我终于弄清楚了这个问题。

事实证明,由于我在中国,访问 facebook.com 和 twitter.com 等网站的 DNS 请求被“防火墙”过滤。因此,也需要通过 OpenVPN 隧道推送 DNS。

可以通过以下方式完成:

将这两行附加到客户端配置(.ovpn)文件:

up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

确保服务器配置文件中包含这两行:

push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

使用以下命令运行客户端(脚本安全标志允许运行 up 和 down 脚本以修改 /etc/resolv.conf、系统 DNS 设置)

sudo openvpn --script-security 2 --config client-settings.ovpn

我现在有一个完全正常工作的连接。

感谢所有试图提供帮助的人!

答案2

插入此行

  redirect-gateway def1

在 Ubuntu 客户端配置文件中。

相关内容