我们一直在使用基于PPTPD的VPN来解决某些networking/路由问题,客户端无法通过VPN访问某些互联网域/ IP。 例如,用户可以浏览hxxp://google.com,但不能访问hxxp://microsoft.com。
设置如下:
客户端(Windows和Android的相同问题,没有testing其他人)(IP:XXXX) – >互联网 – >(YYYY)DD-WRT路由器(192.168.1.1) – > Ubuntu服务器10.10运行PPTPD(192.168.1.125)。
eirik @ woserv:〜$ cat /etc/pptpd.conf | grep -v'#'
option /etc/ppp/pptpd-options logwtmp localip 192.168.1.125 remoteip 192.168.1.230-240
eirik @ woserv:〜$ cat / etc / ppp / pptpd-options | grep -v'#'
name pptpd refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128 ms-dns 192.168.1.1 proxyarp nodefaultroute debug lock auth nobsdcomp noipx mtu 1490 mru 1490
iptable规则(在/etc/rc.local中)和validation是使用iptables -L加载的
#!/bin/sh # Flush all rules iptables -F iptables -X iptables -Z # Allow all VPN stuff iptables -A INPUT -p tcp --dport 1723 -j ACCEPT iptables -A INPUT -p 47 -j ACCEPT iptables -A OUTPUT -p tcp --sport 1723 -j ACCEPT iptables -A OUTPUT -p 47 -j ACCEPT iptables -A FORWARD -i ppp+ -o eth0 -s 192.168.1.0/24 -m state --state NEW -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE exit 0
我们在dd-wrt路由器上启用了PPTP,IPSEC和L2TP直通function(在Security – > VPN Passthrough下)。 另外,我们已经把端口1723和47转发到192.168.1.125。
Windows中的VPN连接在IPv4上使用“在远程networking上使用默认网关”进行设置,并使用MS-CHAP v2。 如果客户端访问hxxp://www.whatismyip.com/,则会报告正确的VPN IP(yyyy),而不是正常的Internet IP,xxxx
到目前为止,我们已经确定了以下问题域:
microsoft.com support.microsoft.com no.yahoo.com answers.yahoo.com nrk.no imgur.com
(在描述这个问题时,我发现当我试图通过VPN访问hxxp://pastebin.ca时, 我无法加载http://w.pastebin.ca/pb-g.gz.js )
如果客户端在使用VPN的时候试图打开这些网页,他们会得到一个超时(谷歌浏览器开发工具下的networking说,“待定”的请求,直到他们超时)。 有时Chrome会说错误是“错误101(net :: ERR_CONNECTION_RESET):连接被重置”。 其他服务(除了http / https 80/443也失败)。
大多数其他网站的工作,如hxxp://google.com和hxxp://bing.com。 这些问题在许多不同的窗口和不同地点的Android客户端之间是一致的。 没有涉及的代理。 禁用Windows防火墙和任何防病毒软件什么也不做。
来自客户端的tracert为不同的域提供了不同的结果,但是在没有VPN和VPN的情况下,它们似乎有些一致,下面是一些例子 。
如果我直接在运行PPTPD的Linux服务器上启动lynx http://microsoft.com ,它会加载正常。 与其他网站一样…
有任何想法吗?
(对于带有tracert链接的jsfiddle感到抱歉,无法在这里作为ServerFault上的新用户发布多个链接)
由于您更改了默认的MTU,这可能是原因。 尝试将以下规则添加到防火墙,根据需要进行调整:
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
编辑:改变了规则插入自己作为第一链。
在/ etc / ppp / PPTPD选项
nodefaultroute
但Windows使用“在远程networking上使用默认网关”进行设置。 上述选项应该被删除。
NAT的两侧都有相同的networking
iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
PPTP服务器的局域网IP为192.168.1.125,PPTP客户端分配192.168.1.230-240,在NAT两侧同样为192.168.1.0/24。 不确定它真的有效,部分工作,但看起来有问题。
另外,PPTP服务器已经在局域网内部,DD-WRT路由器已经在进行NAT了。 PPTP服务器上的NAT不是必需的。 删除上述规则。
检查/ proc / sys / net / ipv4 / ip_forward
cat /proc/sys/net/ipv4/ip_forward应该返回1 。 如果不是,则添加以下内容作为rc.local第二行
echo 1 > /proc/sys/net/ipv4/ip_forward
检查PPTP客户端networking
检查PPTP客户端本地/ LAN IP不使用192.168.1.0/24。 它们必须更改或VPN路由可能无法正常工作。