我在 CentOS 服务器上运行一个 PPTP 守护进程 V1.3.4。
我的客户端连接来自 Linux 和 Windows 计算机。当 PPTP 连接处于活动状态时,客户端无法从许多网站(例如 stackoverflow、twitter、ip-lookup)下载完整网页。对于其他一些网站,客户端甚至无法 ping 通 IP 地址(例如 imgur.com)。
但是他们可以下载 Facebook、Youtube 等网站的完整网页。
CentOS 服务器本身能够从所有网站下载完整网页。除了 NAT 表中的几条伪装规则外,它没有任何 iptable 规则。
请帮忙,谢谢。
答案1
这听起来非常像 MTU 问题(我遇到过几次)。
/sbin/iptables -I FORWARD -o eth0 -s IP.OF.PPTP.CLIENT -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
可能发生的情况是,您的 CentOS 机器上的外部接口具有 1500 字节的“标准” MTU,但是由于需要封装数据包(我认为它通常会留下 1492 字节或类似的值),所以 mtu 小于 PPTP 链接上的 MTU,而路径中的某些东西不喜欢它。
我认为无法 ping imgur.com 可能有点转移视线 - 我也无法 ping 它(这意味着他们正在阻止 ICMP)。