我将笔记本电脑连接到 的 wifi 网络192.168.1.0/24
。然后,我将 wifi 适配器桥接到br0
。然后,我将一个 tap-to-tap 隧道连接tap1
到 的网络10.40.0.0/14
。
我的 wifi 网络在 处有一个 DNS 服务器,192.168.1.254
而远程网络在 处有一个 DNS 服务器10.40.0.2
。当 tap-to-tap 隧道启动时,我会删除其默认路由,这样只有到该网络的流量才会通过隧道,而一般的互联网流量会通过通常的 wifi 链路。但我想使用远程网络的 DNS 服务器,这样我仍然可以查找远程网络上的本地名称。
nmcli device show wlan0
说的是这个(为了简洁,我删除了各种不相关的部分,主要是 ip6 和路由信息):
GENERAL.DEVICE: wlan0
GENERAL.TYPE: wifi
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: channel-six
IP4.ADDRESS[1]: 192.168.1.82/24
IP4.GATEWAY: 192.168.1.254
IP4.DNS[1]: 192.168.1.254
IP4.DNS[2]: 10.40.0.2
IP4.DOMAIN[1]: lan
这说明此设备已分配两个 DNS 服务器。但nmcli con show channel-six
显示以下内容:
connection.id: channel-six
connection.uuid: 34402de9-ec2d-4a4e-a223-9bea7fc5b517
...
ipv4.dns: 10.40.0.2
ipv4.dns-search: --
ipv4.dns-options: ""
ipv4.dns-priority: 0
那么 NetworkManager 为什么使用本地 DNS 服务器?我该如何更改它?
答案1
本地 DNS 正在从 DHCP 中获取。可以按如下方式修复此问题:
$ nmcli con modify channel-six +ipv4.ignore-auto-dns yes
$ nmcli con up channel-six
该modify
命令还可以--temporary
添加以使其成为临时更改。con up
必须添加才能应用更改。