升级到 Ubuntu 15.10 后,VPN 开始表现得非常奇怪。我使用私人互联网接入而且效果很好。
如果我连接到我所在国家/地区被屏蔽的网站,然后连接到 VPN,它就可以正常工作。但是,大约 1 分钟后,它就不再工作了:它显示标准的“此网站被屏蔽”页面。有趣的是,IP 地址仍然是 PIA 提供的(已通过 Google 检查),并且http://whatismyipaddress.com显示我连接的国家/地区,而不是我的国家/地区。VPN 连接图标存在,一切似乎都表明 VPN 有效。但我无法访问该网站。
我尝试从我的 Android 设备连接 VPN 并访问网站,它始终正常。所以这显然是一个新引入的 bug。
更新 1:这似乎是 DNS 泄漏问题,正在寻找在 Ubuntu 中解决它的解决方案。
更新 2:最终手动将 PIA 的 DNS 写入 /etc/resolv.conf,解决了我的问题。
答案1
因此我还发现,可能漏洞原因DNS 泄漏当使用网络管理器 openVPN 连接在Ubuntu 15.10
LAN/ISP DNS 不会被删除,并且作为可能的 DNS 和 VPN DNS 保持可用。即使 VPN DNS 存在,它们也会导致泄漏。它们可能会被使用,也可能不会。它是随机的
我的解决方案是使用网络管理器脚本调度程序调用 dbus 来更新 dnsmasq,从而重置 VPN DNS(删除 LAN DNS)
/etc/NetworManager/dispatcher.d/99resetvpndns
创建包含内容的脚本
#!/bin/sh
interface=$1
status=$2
case $status in
vpn-up)
# because dnsmasq keep DNS LAN and leak our DNS, reset DNS servers to PIA ones
dbus-send --system --dest=org.freedesktop.NetworkManager.dnsmasq --type=method_call /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetServers
dbus-send --system --dest=org.freedesktop.NetworkManager.dnsmasq --type=method_call /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetServers uint32:3520991966
dbus-send --system --dest=org.freedesktop.NetworkManager.dnsmasq --type=method_call /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetServers uint32:3520991962
;;
vpn-down)
;;
esac
并使其可执行
chmod +x /etc/NetworkManager/dispatcher.d/99resetvpndns
您需要更改 uint32 值。您的 VPN DNS 是整数形式,而不是四进制形式。转到http://www.aboutmyip.com/AboutMyXApp/IP2Integer.jsp例如将您的 DNS 转换为整数。