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 泄漏。
我建议使用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)
尝试使用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