阻止外部 DNS,修复 DNS 泄漏 ubuntu 18.04

阻止外部 DNS,修复 DNS 泄漏 ubuntu 18.04

使用DNS 泄漏测试在我的 VPN 下,我发现它有泄漏。我已通过 NetworkManager 设置了我的 VPN,除了泄漏之外,它运行正常。

首先,我尝试添加block-outside-vpn到配置文件中,但发现/etc/NetworkManager/system-connections它不遵循相同的格式。我找不到有关如何正确编写 DNS 泄漏的文档。

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

简而言之,如何使用网络管理器配置文件或 GUI 阻止外部 DNS(泄漏)?

答案1

要修复 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 泄漏。

答案2

我建议使用dnscrypt

首先安装它:

sudo apt install dnscrypt-proxy

默认情况下它将监听127.0.2.1端口53

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

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

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

sudo ufw deny out 53

并确保防火墙已启用:

sudo ufw enable

答案3

如果您有 DNS 泄漏,请检查 browserleaks.com或者dnsleaktest.com

  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 退出编辑器。按 Enter y保存,然后按Enter覆盖新resolv.conf文件。

  8. 编辑 NetworkManager.conf 文件

    sudo nano /etc/NetworkManager/NetworkManager.conf 
    

    并添加以下内容:

    dns=dnsmasq 
    

    在行下方(使用箭头键导航),[main] 和 plugins=ifupdown,keyfile 与此完全相同,但添加了新行。

    [main]
    plugins=ifupdown, keyfile
    dns=dnsmasq
    

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

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

感谢匿名VPN针对 Ubuntu/Network Manager 上的泄漏问题的解决方案似乎经过了充分研究,并且非常成功。它们很有效,当其他解决方案都对我不起作用时,这些解决方案就起作用了。上面显示的解决方案适用于 Ubuntu17.x 和 18.04 LTS。请参阅他的其他解决方案16.04 LTS

答案4

尝试使用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

相关内容