我最近安装了我的爱普生L3150打印机的驱动程序,大约在同一时间,我开始在一些应用程序(ssh,nextcloud客户机)中出现奇怪的(随机的) DNS名称解析错误,我只能通过重新启动NetworkManager服务来修复这些错误:
systemctl restart NetworkManager例如:
$ ssh example.mydomain
ssh: Could not resolve hostname example.mydomain: Name or service not known另一个例子是getent,它不返回任何内容,并使用代码2退出:
$ getent hosts example.mydomain
$ echo $?
2但是nslookup工作得很好:
$ nslookup example.mydomain
...
Name: example.mydomain
Address: 192.168.0.10我把它缩小到了我的nsswitch.conf文件,我指责我的打印机安装程序改变了它。我发现除了一个nsswitch.conf.bak之外还有一个nsswitch.conf,它是在我使用dnf install epson/*.rpm安装打印机驱动程序的同时创建的。
该文件在主机行中进行了以下更改:
-hosts: files dns myhostname
+hosts: files myhostname mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns所以问题是,为什么“新”配置会如此随机地失败?我怎样才能阻止它?我不认为仅仅恢复原始文件将是一个解决方案,因为新的文件似乎是自动生成的,上面写着:
由authselect在星期六2月12日18:53:06 2022生成
卸载驱动程序也不是一个解决方案。
编辑:
罪魁祸首似乎是systemd-resolved。我的网络配置由NetworkManager管理,我设置了两个DNS:
$ nmcli con show my-lan
...
ipv4.dns 192.168.0.1 8.8.8.8似乎每当我的计算机从睡梦中醒来,NetworkManager就会回到第二个DNS:
$ systemd-resolve --status
...
Link 2 (enp39s0)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 8.8.8.8
DNS Servers: 192.168.0.1 8.8.8.8
DNS Domain: mydomain因此导致systemd-resolve example.mydomain失败(因为8.8.8.8无法解决我的域):
查询:解决调用失败:“example.mydomain”未找到
我想是NetworkManager中的一个bug吧?
发布于 2022-02-15 09:02:14
用于爱普生打印机的多播DNS需要mdns4_minimal [NOTFOUND=return]。
resolve [!UNAVAIL=return]通过systemd-resolved启用名称解析(请参阅https://www.freedesktop.org/software/systemd/man/nss-resolve.html)。
如果命令systemctl status systemd-resolved返回Unit systemd-resolved.service could not be found.,则可以安全地从hosts行中删除resolve [!UNAVAIL=return]。在此之后,解决方案应该恢复正常。
https://unix.stackexchange.com/questions/690713
复制相似问题