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

Pob*_*obe 12 network-manager vpn networking dns 18.04

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

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

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

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

小智 5

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

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

#prepend domain-name-servers 127.0.0.53;
Run Code Online (Sandbox Code Playgroud)

取消注释这一行,并将域名服务器更改为不同的,例如 OpenDNS:208.67.222.222。使用这个 OpenDNS 地址,这一行现在看起来像这样:

prepend domain-name-servers 208.67.222.222;
Run Code Online (Sandbox Code Playgroud)

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


Rav*_*ina 4

我建议使用dnscrypt.

首先安装它:

sudo apt install dnscrypt-proxy
Run Code Online (Sandbox Code Playgroud)

默认情况下它会监听127.0.2.1port 53

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

nmcli connection modify [CONNECTION-NAME] ipv4.dns 127.0.2.1
Run Code Online (Sandbox Code Playgroud)

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

sudo ufw deny out 53
Run Code Online (Sandbox Code Playgroud)

并确保防火墙已启用:

sudo ufw enable
Run Code Online (Sandbox Code Playgroud)


Ami*_* KK 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
Run Code Online (Sandbox Code Playgroud)

现在编辑nsswitch.conf者:

sudo nano /etc/nsswitch.conf
Run Code Online (Sandbox Code Playgroud)

然后更改以hosts:开头的行

hosts: files resolve dns myhostname
Run Code Online (Sandbox Code Playgroud)

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

sudo systemctl enable systemd-resolved.service
sudo systemctl start systemd-resolved.service
Run Code Online (Sandbox Code Playgroud)

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