在建立与 VPN 网络的连接后,我无法通过 VPN 建立互联网连接。我没有收到网络命令的响应,例如tracepath ubuntu.com
。
协议是 pptp。我的系统是 lubuntu 17.10,32 位(恢复旧电脑)。
请提供正确安装的指南或调试提示。
答案1
最后,我终于开始使用它了,并想在这个论坛上分享我的发现。我需要的信息似乎分散在不同的网站上。
Configure VPN ...
是VPN Connections灰色的。
很不方便,我不知道如何解决,但有一个解决方法。
浏览并按Edit Connections...。+但是,在连接类型中,没有列出 VPN。- 我(重新)安装了 VPN 连接所需的模块,
sudo apt-get install --reinstall network-manager network-manager-gnome openvpn network-manager-openvpn network-manager-openvpn-gnome network-manager-pptp network-manager-pptp-gnome pptp-linux
- 现在可以添加 pptp 连接,如第一点所述。使用 VPN 提供商提供的凭据和设置对其进行配置。
- 为了避免防火墙问题,请先尝试关闭 UncomplicatedFirewall,
sudo ufw disable
然后重新启动。 - 之后:VPN Connections->
new_vpn
建立 VPN 连接。但是,我的情况是无法访问互联网。感觉就像第一个网站之后连接就断了,或者加载任何网站都需要很长时间。 - 我找到了解决这个问题的方法这里。显然,vpn 端口的 mtu(最大传输单元)太高了。就我而言,我必须通过执行以下代码手动降低它
ifconfig ppp0 mtu 1388
- 可以通过连接到 VPN,然后执行 ping 某个站点(例如 ubuntu.com)来找到合适的最大 mtu
ping -M do -s <number> -c 1 ubuntu.com
。增加<number>
10 直到连接断开(一旦断开,在我的情况下,再次降低也会失败)我不得不通过sudo service network-manager restart
重新连接到 VPN 来恢复连接。找到可用的最高值后<number>
,添加 28,这就是 VPN 端口使用的 mtu。另请参阅这里。 还剩下两个问题,如何在连接到 VPN 时自动设置 mtu 值,以及断开 VPN 连接后 DNS 似乎消失了。后者可以通过 解决
sudo service network-manager restart
。这两项任务都可以按照脚本 中的建议自动完成/etc/NetworkManager/dispatcher.d/01-ifupdown
。文件夹中的脚本dispatcher.d
以端口和事件作为参数调用。因此,我在此文件夹中创建了一个可执行脚本,如下所示
#!/bin/sh
#info : pre-up and pre-down are not implemented in network-manager if [ "$2" = "vpn-up" ]; then /sbin/ifconfig "$1" mtu 1388 fi if [ "$2" = "vpn-down" ]; then /usr/sbin/service network-manager restart fi
最后,我想再次启用 ufw。为此,我需要
-A ufw-before-input -p 47 -j ACCEPT
在文件中添加/etc/ufw/before.rules
,就在# drop invalid packets
执行之前sudo ufw enable
,然后重新启动。现在一切正常,就我而言。后来我发现另一种(可能更好)的恢复 DNS 的方法是存储包 resolvconf。
sudo apt install resolvconf
sudo dpkg-reconfigure resolvconf
然后可以删除脚本的 vpn-down 部分。
后来我发现 pptp vpn 后非超级用户的 DNS 丢失行为如下所述:
https://bugs.launchpad.net/ubuntu/+source/ppp/+bug/1778946