我有一台运行 Ubuntu 18.04 的联想 Thinkpad X220。它有一个以太网端口和一个无线网卡。就网络而言,一切都是在安装过程中使用默认设置自动配置的。在最终设置中,DNS 解析仅在无线接口处于活动状态并连接时才有效。在以前的 Ubuntu 版本下,DNS 可以通过有线或无线链路进行解析,具体取决于哪个处于活动状态。
我花了很多时间试图了解 Linux 网络是如何配置和管理的,查看了大量文件并运行了大量查询,但坦率地说,我不想深入研究只有服务器管理员才感兴趣的这么多细节。我知道网络子系统功能齐全且灵活,但我的用例非常简单,我在这里被细节淹没了。救命!!
我已经到达了可以在输出中看到这一点的地步systemd-resolve --status
:
Link 3 (wlp3s0)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 172.28.16.1
Link 2 (enp0s25)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
我认为这解释了为什么 DNS 解析是通过无线 (wlp3s0) 而不是有线链路 (enp0s25) 进行的。但是我怎样才能改为使用有线链路(或同时使用有线链路)呢?我可以更改一些配置文件或发出一些 systemd-resolve 命令让它考虑使用 enp0s25 进行 DNS 解析吗?
更新:ifconfig 和 arp 的输出:
mark@MESX220:~$ ifconfig -a
enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.28.16.48 netmask 255.255.255.0 broadcast 172.28.16.255
inet6 fe80::f2de:f1ff:fe91:692b prefixlen 64 scopeid 0x20<link>
ether f0:de:f1:91:69:2b txqueuelen 1000 (Ethernet)
RX packets 4444447 bytes 6308844438 (6.3 GB)
RX errors 0 dropped 62 overruns 0 frame 0
TX packets 1932598 bytes 156360177 (156.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 20 memory 0xf2500000-f2520000
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 303309 bytes 15241987 (15.2 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 303309 bytes 15241987 (15.2 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.28.16.168 netmask 255.255.255.0 broadcast 172.28.16.255
inet6 fe80::85c3:619d:5f54:95df prefixlen 64 scopeid 0x20<link>
ether 08:11:96:58:82:bc txqueuelen 1000 (Ethernet)
RX packets 63862 bytes 20011006 (20.0 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2859 bytes 572860 (572.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
mark@MESX220:~$ arp -a
? (172.28.16.70) at dc:3a:5e:fc:e4:15 [ether] on enp0s25
POPLARDS (172.28.16.16) at 00:11:32:0e:f6:02 [ether] on enp0s25
? (172.28.16.32) at 00:15:99:ed:da:64 [ether] on enp0s25
router.asus.com (172.28.16.1) at 38:2c:4a:aa:75:18 [ether] on enp0s25
? (172.28.16.33) at 70:5a:0f:9e:c1:06 [ether] on enp0s25
? (172.28.16.70) at dc:3a:5e:fc:e4:15 [ether] on wlp3s0
? (172.28.16.144) at 34:38:b7:2a:1e:e0 [ether] on enp0s25
router.asus.com (172.28.16.1) at 38:2c:4a:aa:75:18 [ether] on wlp3s0
? (172.28.16.64) at c8:3a:6b:ac:6e:66 [ether] on wlp3s0
? (172.28.16.64) at c8:3a:6b:ac:6e:66 [ether] on enp0s25
答案1
好的,我终于明白问题出在哪里了。我为有线接口设置了一个静态 IP 地址,但我没有提供 DNS 解析地址。我添加了一个 DNS 地址(我的路由器)并重新启动了接口,现在即使无线接口关闭,它也能顺利地解析 DNS。
我猜我以为系统会认为它可以通过网关地址解析 DNS。以前的版本似乎就是这样工作的。