Dns

NetworkManager 應該只詢問“頂級”DNS 伺服器

  • November 13, 2021

我在一個 WLAN 中,它通過他們的 DNS 伺服器審查網站。

因為我不想被審查,所以我使用 VPN(OpenVPN,NetworkManager)來處理我的所有流量。

如果我嘗試解析域,NetworkManager 的 dnsmasq 會詢問他們的 DNS 伺服器和我的 (VPN)。現在審查取決於哪個 DNS 伺服器首先響應。

我該如何擺脫它?(IMO)(在技術上)沒有必要詢問他們的 DNS 伺服器,因為 VPN 位於 WLAN 的“頂部”。

$$ Edit $$按照要求:

  • NetworkManager 使用 dnsmasq。
  • pgrep dnsmasq -a
    • 2766 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var/run/NetworkManager/dnsmasq.pid --listen-address=127.0.1.1 --cache-size=0 --conf-file=/dev/null --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d
  • cat /etc/resolv.conf
    • nameserver 127.0.1.1
  • 我根本不使用 dhclient。

如果您不希望區域網路中的 DNS 伺服器,請在該 WLAN 上配置 ipv4.no-auto-dns。你不需要VPN來避開有限的DNS伺服器,只需配置一個像’ipv4.dns=8.8.8.8’這樣的靜態地址。

最近的版本也有 ipv4.dns-priority。如果您將 VPN 的優先級設置為負數,則不會添加來自其他連接的 DNS 伺服器。然後專門使用 VPN 名稱伺服器。

man nm-settings

正如thalleripv4.dns-priority所說,您可以為 VPN 連接的參數設置一個負數。這樣做,只使用 VPN DNS 設置,包括 DNS 伺服器和搜尋域。

此參數不可從網路設置 UI 配置,但您可以使用NetworkManager命令行工具nmcli 進行設置

$ nmcli connection modify <vpn_connection_name> ipv4.dns-priority -50

更多資訊:

引用自:https://unix.stackexchange.com/questions/351197