我使用以下服务器端配置设置了一个openVPN隧道:
port 1194
proto udp
dev tun
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
push "route 10.8.0.0 255.255.255.0"
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
comp-lzo
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
client-to-client
log-append /var/log/openvpn
group daemon
daemon
verb 3
和客户端配置文件如下:
client
remote ******* 1194
dev tun
comp-lzo
ca ca.crt
cert client1.crt
key client1.key
route-delay 2
route-method exe
redirect-gateway def1
verb 3
然而,在连接时,我可以毫无问题地ping 10.8.0.1,但我甚至无法访问Google。
我在Windows 7旗舰版中使用管理员权限运行Open VPN 2.1.4。服务器是Ubuntu 10.04安装,默认情况下启用了TUN。
我能在日志中找到的唯一可疑部分是这样的:
Mon Feb 21 20:44:33 2011 C:\WINDOWS\system32\route.exe ADD ********* MASK 255.255.255.255 192.168.1.1
OK!
Mon Feb 21 20:44:33 2011 C:\WINDOWS\system32\route.exe ADD 0.0.0.0 MASK 128.0.0.0 10.8.0.5
OK!
Mon Feb 21 20:44:34 2011 C:\WINDOWS\system32\route.exe ADD 128.0.0.0 MASK 128.0.0.0 10.8.0.5
OK!
Mon Feb 21 20:44:34 2011 C:\WINDOWS\system32\route.exe ADD 10.8.0.0 MASK 255.255.255.0 10.8.0.5
OK!
Mon Feb 21 20:44:34 2011 C:\WINDOWS\system32\route.exe ADD 10.8.0.0 MASK 255.255.255.0 10.8.0.5
The route addition failed: The object already exists.
Mon Feb 21 20:44:34 2011 Initialization Sequence Completed
不确定这是否有帮助。
请帮忙!
谢谢!
答案 0 :(得分:21)
您正在使用标记redirect-gateway def1
,因为它会通过VPN重定向您的所有流量。
如果您在服务器上配置了NAT或任何其他地址翻译,我无法从您的帖子中看到,但我的猜测是,数据包只是通过您的VPN路由,然后无法返回到您的客户端。
如果您的VPN客户端是10.8.0.2
且您的服务器是10.8.0.1
且互联网IP为12.12.12.12
:
您对谷歌的通话将从10.8.0.2
通过VPN路由发送,然后从那里发送给Google。问题是,原始地址将保持为10.8.0.2
,因此答案数据包永远不会找回给您。您必须添加一些转换方法,这些转换方式会将数据包转换为10.8.0.2
并将其转换为12.12.12.12
并返回:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
OpenVPN Manual中也对此进行了解释。我希望这能解决你的问题,但从描述中我无法确定你是否启用了任何NAT转换,所以也许这根本没有帮助: - )