PPTP VPN 已连接但无法使用 Mac 打开网页

PPTP VPN 已连接但无法使用 Mac 打开网页

我已经在我的 VPS(Debian)上设置了 PPTPD,我以前在 Android 手机和 Windows 笔记本电脑上使用它非常顺畅。现在我想让我的新 Mac Mini 也使用它。显示 Mac 可以建立 vpn 连接,只有浏览器(或 curl)无法打开任何网页。

有什么问题?

顺便说一句,我通过我的 wifi 路由器访问互联网。我的安卓手机和 Windows 笔记本电脑可以毫无问题地使用 vpn。另一件奇怪的事情是:如果我的 mac mini 不通过路由器直接访问互联网,vpn 可以正常工作,也就是说,我也可以连接 vpn 和浏览器网页。

以下是显示我的Mac已经建立VPN连接后的会话:

JohnsMM:~ john$ nslookup www.youtube.com
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
www.youtube.com canonical name = youtube-ui.l.google.com.
Name:   youtube-ui.l.google.com
Address: 74.125.192.91
Name:   youtube-ui.l.google.com
Address: 74.125.192.190

JohnsMM:~ john$ ping www.youtube.com
PING youtube-ui.l.google.com (74.125.192.91): 56 data bytes
Request timeout for icmp_seq 0
64 bytes from 74.125.192.91: icmp_seq=0 ttl=49 time=1202.066 ms
64 bytes from 74.125.192.91: icmp_seq=1 ttl=49 time=306.454 ms
^C
--- youtube-ui.l.google.com ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 306.454/605.227/1202.066/422.029 ms

JohnsMM:~ john$ curl -v www.youtube.com
* About to connect() to www.youtube.com port 80 (#0)
*   Trying 74.125.192.91...
* connected
* Connected to www.youtube.com (74.125.192.91) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r     zlib/1.2.5
> Host: www.youtube.com
> Accept: */*
>

如上所示,当我使用卷曲访问 youtube,它停在最后一行(行之后> Accept: */*),看起来 curl 正在等待响应。

答案1

看来,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。

相关内容