当连接到特定网络上的我自己的 VPN 服务器(称为)时public-network
,我的 Mac 会在 2 分 30 秒后断开 VPN 连接。
我进行了多次测试,结果如下:
- 到 2:30 时一切正常
- 无论我使用哪款 Mac,它都会断开连接
- 无论我使用哪个客户端,以下所有客户端都具有相同的功能:OSX 系统客户端、HMA!Pro VPN 和 Shimo
- 我使用哪种协议并不重要,至少所有这些协议的作用都是一样的:PPTP、OpenVPN 和 L2TP over IPSec
- 使用我自己的 VPN 服务器和 HMA! 的 VPN 服务器时也会发生同样的事情。
- 所有其他客户端(Windows/iPhone)都可以使用这些 VPN 服务器和协议中的任何一个,而不会出现问题
public-network
- 在 OSX 上,所有协议、客户端和服务器在任何其他网络上都可以正常工作
因此,看起来这是 OSX、VPN 和的组合public-network
导致了这个问题。
当断开连接时,这是我的 VPN 服务器的系统日志:
Feb 2 12:04:32 raspberrypi pptpd[31400]: CTRL: EOF or bad error reading ctrl packet length.
Feb 2 12:04:32 raspberrypi pptpd[31400]: CTRL: couldn't read packet header (exit)
Feb 2 12:04:32 raspberrypi pptpd[31400]: CTRL: CTRL read failed
Feb 2 12:04:32 raspberrypi pptpd[31400]: CTRL: Reaping child PPP[31401]
Feb 2 12:04:32 raspberrypi pppd[31401]: Hangup (SIGHUP)
Feb 2 12:04:32 raspberrypi pppd[31401]: Modem hangup
Feb 2 12:04:32 raspberrypi pppd[31401]: Connect time 2.5 minutes.
Feb 2 12:04:32 raspberrypi pppd[31401]: Sent 3963649 bytes, received 362775 bytes.
Feb 2 12:04:32 raspberrypi pppd[31401]: MPPE disabled
Feb 2 12:04:32 raspberrypi pppd[31401]: Connection terminated.
Feb 2 12:04:32 raspberrypi pppd[31401]: Exit.
Feb 2 12:04:32 raspberrypi pptpd[31400]: CTRL: Client <ip-adress> control connection finished
答案1
如果您使用 PPTP,请尝试测试 Windows 系统上的 vpn 是否断开连接,那么问题可能出在 macos 的路由和“tcp 缓冲区大小”上。
如果问题仅出在 macOS 系统上,那么这可能会有所帮助:尝试为您的内部网络添加如下路由:
route add -net 192.168.1.0/24 192.168.1.1 (first is mask of our internal network, second is gateway of your network)
我们遇到了类似的问题 - 但 vpn 没有断开连接,只是所有 tpc 流量都中断了。- 这是因为缓冲区大小。
如果通过终端添加该路由有帮助,请执行以下操作:在 /etc/ppp 创建文件 ip-up
粘贴文件:
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/libexec:/System/Library/CoreServices;
export PATH
/sbin/route add -net 192.168.1.0/24 192.168.1.1 - modify to be same as it is on your network
保存并修改权限sudo chmod a+x ip-up (/etc/ppp/ip-up)
在每个连接上都会添加 VPN 路由。