阻止外部dns,修复dns泄漏Ubuntu 18.04


10

在我的VPN下使用dns泄漏测试时,我发现它正在泄漏。我已经通过NetworkManager设置了我的VPN,除了泄漏之外,它都能正常工作。

首先,我尝试将其添加block-outside-vpn到配置文件中,只是在配置文件中/etc/NetworkManager/system-connections它没有遵循相同的格式。我找不到有关如何为dns泄漏正确编写文档的文档。

同样,使用Ubuntu 18.04 resolv.conf不能像以前那样工作,所有其他答案都基于此。

简要地说,如何使用网络管理器配置文件或GUI阻止外部dns(泄漏)?


block-outside-vpn通常只是Windows OpenVPN连接选项。解决DNS“泄漏”的问题是使用仅在VPN另一端存在的特定DNS服务器。您看到的DNS泄漏测试结果是什么?(它们是相关的)
托马斯·沃德

Answers:


3

我建议使用dnscrypt

首先安装它:

sudo apt install dnscrypt-proxy

默认情况下,它将监听127.0.2.1port 53

127.0.2.1使用CLI 编辑您的VPN或您喜欢的任何其他连接并将其设置为DNS服务器,您可以运行:

nmcli connection modify [CONNECTION-NAME] ipv4.dns 127.0.2.1

并且以防万一阻止传出的DNS请求:

sudo ufw deny out 53

并确保启用了防火墙:

sudo ufw enable

根据DNS泄漏测试,我的DNS仍在泄漏。还必须提及的是,在启用ufw时禁用VPN会导致Internet不可用(端口53阻塞)。
Pobe

运行以下命令:nmcli connection modify [CONNECTION-NAME] ipv4.ignore-auto-dns yes查看是否有帮助。
拉韦西纳

3

要修复Ubuntu 18.04上的DNS泄漏,您可以编辑名为的文件/etc/dhcp/dhclient.conf。根据手册页,此文件“提供了一种通过动态分配地址,使用动态主机配置协议,BOOTP协议或如果这些协议失败的方法来配置一个或多个网络接口的方法。”

至于解决您的DNS泄漏,我们将编辑此文件。使用适当的权限打开它,您将看到一条注释行,如下所示:

#prepend domain-name-servers 127.0.0.53;

取消注释此行,然后将域名服务器更改为其他服务器,例如OpenDNS:208.67.222.222。使用此OpenDNS地址,此行现在将如下所示:

prepend domain-name-servers 208.67.222.222;

保存文件并重新启动系统后,这应该可以修复Ubuntu 18.04上的DNS泄漏。


或者,您可以只在GUI中编辑连接并获得相同的结果:打开连接的编辑窗口=> IPv4 / IPv6设置,将“方法”更改为“自动,仅地址”,然后添加“ DNS服务器”。
GoodGuyNick

通过GUI的@GoodGuyNick的方法对我不起作用。我整天用Google搜索这个问题,只有“ prepend domain-name-servers”把戏起作用了。哈利路亚回答了这个问题。我尝试的所有其他操作(包括DNS服务器的GUI)都被覆盖,无法重新启动。
食虫性,

3

如果您通过在browserleaks.comdnsleaktest.com上进行检查而发现 DNS泄漏 ,

  1. 关闭您的VPN连接

  2. 尝试撤消您已经浪费时间的任何.conf文件编辑。如果您尝试过各种建议,则最好的机会是进行全新安装,并确保还安装了networkmanager-openvpn-gnome,因为默认情况下Ubuntu没有提供VPN配置导入。

  3. 安装dnsmasq

    sudo apt update
    sudo apt install dnsmasq  
    
  4. 停用已解决

    sudo systemctl disable systemd-resolved.service
    sudo systemctl stop systemd-resolved.service 
    
  5. 删除/ etc/resolv.conf并创建一个新的:

    sudo rm /etc/resolv.conf
    sudo nano /etc/resolv.conf  
    
  6. 输入您的空.conf文件:

    nameserver 127.0.0.1`         that's all!
    
  7. Ctrl+ x 退出编辑器。输入 y进行保存,然后按Enter覆盖您的新resolv.conf文件。

  8. 编辑您的NetworkManager.conf文件

    sudo nano /etc/NetworkManager/NetworkManager.conf 
    

    并添加以下内容:

    dns=dnsmasq 
    

    在行下方(使用箭头键进行导航),[main]和plugins = ifupdown,密钥文件完全相同,并添加了新行。

    [main]
    plugins=ifupdown, keyfile
    dns=dnsmasq
    

    Ctrl+ x退出编辑器。输入y 保存,然后按Enter覆盖文件。

  9. 退出终端,然后重新启动系统,并检查dnsleak测试站点是否有结果。

多亏了Anonymous VPN,其针对Ubuntu / Network Manager上的Leaks解决方案的研究似乎很成功。他们的工作,并且当没有其他解决方案对我有用时,这些方法就起作用了。上面显示的解决方案适用于Ubuntu 17.x和18.04 LTS。请参阅他的16.04 LTS其他解决方案。


我已经在VM上测试了此解决方案,并且一切正常。然后,我尝试在一台主机上,发现VPN中的dns和dns泄漏。在nameserver从更改为的VM 127.0.2.1192.168.122.1,当我在其中连接到VPN时,resolv.conf我看到两nameserver行,一条连接到另一条,192.168.122.1而另一条连接到VPN dns,但是在主机上,我总是看到两行search lan nameserver 127.0.1.1
GoodGuyNick

没有网络管理员怎么办?只是将dns放在/ etc / network / interfaces中?
Mehdi

1

我在这个确切的问题上苦苦挣扎了2天,然后才在这里找到对我有用的解决方案:https : //unix.stackexchange.com/a/470940

TL; DR

$ cd /etc/NetworkManager/system-connections

在此存储使用网络管理器创建的连接。

$ sudo nmcli connection modify <vpn-connection-name> ipv4.dns-priority -42

简单的命令来修改连接配置文件。也可以手动完成,但我相信这样更容易。

$ sudo service network-manager restart

使更改适用于您的系统。

基本上是从上面的链接复制粘贴,归功于原始作者。

如果您的系统不知道nmcli,或者使用网络管理器GUI添加连接会引发错误,建议您使用此链接

现在少讲什么,多评论一下(我自己一无所知)。

我尝试了许多解决方案,包括resolv.conf,dnsmasq和dnscrypt,所有这些解决方案都导致我的Internet被完全阻止,或者在VPN连接关闭时被阻止。据dnsleaktest.com称,它们都无法解决dns泄漏。如果尝试了这些方法中的任何一个,则应跟踪此过程中的每个步骤,以便在出现不良结果时能够将其逆转。我花了很短的时间来修复我断断续续的互联网,一次又一次没有互联网。我并不是在声称这些解决方案无法正常工作,我很可能在某个地方犯了一些错误。
但是,我链接的解决方案具有巨大的优势,它不会与常规的网络设置发生冲突,而只会与您要修改的一个连接发生冲突。

接下来,如前所述,block-outside-dns是仅Windows的解决方案,并在我的ubuntu系统上引发了一些无法识别的选项错误。

使用ovpn cli命令也无法解决泄漏问题。

我提供的链接在此处提到了有关ubuntu 18.10中修复的某些版本不一致的解释(此处),也许对此主题有更多专业知识的人都希望进一步解释。如果是这样,那么LTS用户将不得不等到明年4月afaik。

最后,我想指出的是,对于具有互联网审查制度的国家/地区的居民而言,DNS泄漏带来了沉重的问题,因为允许本地isp访问您的流量可能会并且即使与VPN相连也将导致被审查域被阻止。因此,对于以后访问中国等,您需要事先做好准备。

希望这可以帮助。


0

尝试使用update-systemd-resolved不会对进行更改的脚本,resolv.conf而是systemd-resolved使用其DBus API 使用服务

从git中获取并通过以下方式安装:

git clone https://github.com/aghorler/update-systemd-resolved.git
cd update-systemd-resolved
make

现在编辑nsswitch.conf者:

sudo nano /etc/nsswitch.conf

然后换行hosts:

hosts: files resolve dns myhostname

启用服务并确保其自动运行:

sudo systemctl enable systemd-resolved.service
sudo systemctl start systemd-resolved.service

注意:如果您不希望按照上述步骤操作并且可以使用终端,则DNS泄漏仅在使用NetworkManager时发生,到目前为止,以您的经验从终端运行openvpn时不会发生sudo openvpn --config config.ovpn


config.ovpn中的哪一行会阻止泄漏?你有一个例子吗?(以上解决方案不适用于我)。
Pobe

0

我尝试了几乎所有可以在网上找到的解决DNS泄漏问题的解决方案。Openvpn刚好启动,但显示我去测试站点时它正在泄漏。在尝试所有补救措施感到不高兴之后,我进入了wifi和以太网设置,并使用了openvpn的dns服务器而不是ISP的dns服务器,从那以后一切都很好。我敢肯定,您到处都可以看到ip地址,但如果您还没有看到的话,这里是:208.67.222.222和208.67.220.220。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.