网络管理器和 DNS 解析

网络管理器和 DNS 解析

我想了解 DNS 解析在我的计算机上是如何工作的。

我正在使用Ubuntu 20.04.2 LTS (Focal Fossa)。我的网络连接是通过 NetworkManager 设置的:

$ cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
dns=dnsmasq

[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no

这应该设置dnsmasq为我的 DNS 服务器。

cat /etc/resolv.conf 
# Generated by NetworkManager
search fritz.box corp.net
nameserver 127.0.1.1

如果我执行 a nslookup,则表明它正在使用 dnsmasq:

nslookup example.org
Server:     127.0.1.1
Address:    127.0.1.1#53

Non-authoritative answer:
Name:   example.org
Address: 93.184.216.34
Name:   example.org
Address: 2606:2800:220:1:248:1893:25c8:1946

但是,如果我使用nmcli查询 DNS 服务器 IP 地址,它会显示我的路由器的 IP 地址:

nmcli dev show enxcc483ab34466 | grep -i dns
IP4.DNS[1]:                             192.168.178.1
IP6.DNS[1]:                             fd00::2e91:abff:fe96:3f60

NetworkManager我假设当我使用 进行配置时,这些设置会被忽略dns=dnsmasq。对吗?

假设这是正确的,我试图了解哪些 DNS 服务器dnsmasq使用:

$ ps aux | grep dnsmasq
libvirt+    2276  0.0  0.0   9252  2024 ?        S    Apr04   0:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
root        2278  0.0  0.0   9224   332 ?        S    Apr04   0:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
nobody      4264  0.0  0.0  15128  4540 ?        S    Apr04   0:08 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/run/NetworkManager/dnsmasq.pid --listen-address=127.0.1.1 --cache-size=0 --clear-on-reload --conf-file=/dev/null --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d
root      401382  0.0  0.0   9380  2824 pts/1    S+   18:54   0:00 grep --color=auto dnsmasq

前两个进程来自libvirt,根据配置文件,/var/lib/libvirt/dnsmasq/default.conf它们仅绑定到虚拟接口。但我不知道为什么会有两个进程。

第三个进程的 IP 地址为 127.0.1.1,它从目录中获取所有配置/etc/NetworkManager/dnsmasq.dcat /etc/NetworkManager/dnsmasq.d/*仅向我公司的 DNS 服务器返回 IP 地址。这些地址只能通过 VPN 连接访问。

如何在没有 VPN 连接的情况下解析 DNS 名称?我遗漏了什么吗?是否以某种方式从我的设备设置dnsmasq中使用 DNS 服务器?NetworkManager

相关内容