升级到 15.10 后 VPN 无法按预期工作,连接可能中断

升级到 15.10 后 VPN 无法按预期工作,连接可能中断

升级到 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 转换为整数。

相关内容