我有一台运行 OS X Yosemite(甚至 El Capitan)版本 10.10.5 的 MacBook Air,我使用 ADSL 连接来连接到我的大学内部网络,它工作正常,但是当我使用 PPTP VPN 连接到互联网时,我无法再打开任何网页,但 Telegram 可以工作并且我可以 ping 所有服务器。
该问题仅出现在 MacBook/iPhone 上,Windows 用户不会遇到任何问题。
如果我将网络路由到另一台计算机(使用此关联) 共享他的 VPN 连接,互联网没有问题。
询问我了解更多详情
答案1
我终于找到了问题的答案。如所述此链接这个问题是由于 MTU 太高造成的。所以解决方案是:
看来,ping 功能正常,问题出在你的 MTU 太高,因为 VPN 添加了标头,这意味着数据包会被碎片化并丢弃。要调整 Mac 上的 MTU,请打开
系统偏好设置>网络>[您的连接]>先进的>硬件>配置:{手动、自动}
您将看到它是否自动配置,它将是 1500,因为这在普通以太网连接上工作正常。您需要将其调低,有一种相当简单的方法可以了解您的 MTU 需要多大。遵循此指南在这里,您可以使用 ping 来确定最佳 MTU。连接您的 VPN 并打开终端窗口:
类型:
ping -c 2 -D -s 1472 www.youtube.com
本例中数据包大小为 1472。您将收到两个响应之一,ping: sendto: Message too long
或一个正常的 ping 响应。由于 1472 + 28 等于 1500,因此您应该会收到
Message too long
错误。减少 ping 数,直到收到肯定答复。取有效数字,加上 28,并将其用作 MTU。
[更新]
正如此链接您可以使用此命令打开自动发现:
仅限会话:
sudo sysctl -w net.inet.tcp.path_mtu_discovery=0
永久:
回显“net.inet.tcp.path_mtu_discovery = 0”| sudo tee -a /etc/sysctl.conf
[更新2]
看来 sysctl 不起作用。
答案2
在 Windows 上,您可以将 VPN 配置为不使用默认(互联网)路由。不幸的是,在 Mac OS 上,您无法使用 GUI 进行配置。您应该可以使用脚本,我的一些同事告诉我这样做,但我自己还没有这样做过。
因此,如果您的学校使用代理或其他方式上网,您还必须在连接 VPN 时在 Mac 上进行配置。