没有通过Ubuntu VPN的外部networking访问

我已经在Ubuntu Server 9.04上将pptpd设置为我的VPN服务器,我可以从客户端连接到VPN,并可以访问服务器的本地networking,但是我无法通过VPN连接到外部networking。

如果我通过SSHlogin到服务器:

$ ping google.com PING google.com (74.125.67.100) 56(84) bytes of data. 64 bytes from gw-in-f100.google.com (74.125.67.100): icmp_seq=1 ttl=49 time=65.9 ms 64 bytes from gw-in-f100.google.com (74.125.67.100): icmp_seq=2 ttl=49 time=63.2 ms 64 bytes from gw-in-f100.google.com (74.125.67.100): icmp_seq=3 ttl=49 time=63.9 ms 64 bytes from gw-in-f100.google.com (74.125.67.100): icmp_seq=4 ttl=49 time=66.0 ms 

如果我连接到VPN并在本地ping:

 $ ping google.com ping: cannot resolve google.com: Unknown host 

我有一种感觉,这是服务器上的一些路由问题,但我不确定。

你能ping通IP地址( 74.125.67.100 )吗?

可能是VPN正在工作,但是您的configuration中没有正确的DNS服务器。

您本地的DNS服务器很可能会拒绝来自VPN另一端的连接(或者,如果您在私有子网上看到这些连接,则根本不可见)。

如果您可以通过VPN ping公网IP地址但不能通过名称访问,请尝试将OpenDNS服务器指定为您的名称服务器。

这是一个iptable /防火墙的问题…你需要让你的服务器转发数据包…只是运行以下命令,你会没事的:iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

如果你喜欢,你可以添加这个/etc/rc.local,这将自动重新启动你的iptable的变化…;)

如果客户端的本地子网和VPN子网(或提供的路由)发生冲突,则可能导致此问题。

你可以请你比较一下/etc/resolv.conf,然后把你的VPN连入你的networking,而你在VPN'd的时候我在想什么,当你在resolvconf应用程序中运行vpn,并清除你的名字服务器列表

如果这仍然不错,接下来要做的就是比较你的路由,然后在vpn中进行

 sudo ip route show