/etc/resolv.conf
今天,在我的 Ubuntu 22.04.5 计算机上,我在(符号链接到/run/systemd/resolve/resolv.conf
)中发现了两个未知的名称服务器:
nameserver fe80::e0eb:40ff:fe79:e364%36 # Does not belong
nameserver 172.20.10.1 # Does not belong
nameserver 192.168.1.1 # Correct nameserver
search .
结果,我内联网上的所有本地主机名(例如myhost)都无法解析。重新运行sudo systemd restart systemd-resolved.service
没有任何变化。
我最终将问题归咎于我的 iPhone 8,它通过 USB 数据线连接到电脑。iPhone 正在运行个人热点,systemd将其视为我的主名称服务器,覆盖了 192.168.1.1。
如何防止以后我的 iPhone 连接到电脑时再次出现此问题?有没有办法告诉systemd忽略 iPhone 的热点?非常感谢。
systemd-resolved
这样做是因为无论您用什么来配置您的网络(NetworkManager
???RasPi 风格的普通systemd-networkd
?)都告诉它这样做。netplan
dhcpcd
你要求什么
要立即将您的 DNS 设置恢复到插入 iPhone 之前的状态,您可以使用如下命令:
其中
112233445566
代表您的 iPhone 的 USB 网络共享 MAC 地址。为了避免将来发生这种情况,您可以告诉系统您有一个私有 DNS 域,该域只能通过特定网络接口(或接口)访问。由于您似乎已将私有 DNS 名称明确配置为顶级域名,因此您必须这样做,假设您的正常网络接口是
eno1
:这使其
eno1
成为所有 DNS 请求的首选接口。仅当您有
/etc/systemd/network/*.network
文件来设置 DNS 解析器 IP 地址时,您才可以通过在末尾添加此行来使此修复持久:*.home.arpa
如果您按照RFC 8375的最新建议使用域名设置您的私有 DNS 名称(并search home.arpa
避免输入后缀),您可以改用resolvectl domain eno1 "~home.arpa"
/Domains=~home.arpa
,这样您就可以在常规网络中断时无缝切换到使用来自您的网络共享 iPhone 的互联网连接。你可能真正想要的
假设您正在使用
NetworkManager
我认为仍然是 Ubuntu 桌面/笔记本电脑配置的默认配置,您应该首先找出iPhone 网络共享连接的NetworkManager连接名称。你可以通过运行来完成此操作
nmcli c
。它将输出如下内容:这里
enx112233445566
是 iPhone 绑定网络接口(所有 USB 网络接口都以enx
MAC 地址开头并使用 MAC 地址,因为 USB 设备路径会更加复杂,如果您有时恰好使用不同的 USB 端口,路径可能会发生变化)。这里的连接名称是Wired connection 1
,这是 NetworkManager 为类似以太网的连接自动生成的默认名称。要持续阻止 iPhone 连接更改您的 DNS 设置:
如果您想将连接名称更改为更具描述性的名称,您也可以这样做: