我正在尝试解决这两个重复的错误/var/log/syslog
......
nf_conntrack: nf_conntrack: table full, dropping packet
Maximum number of concurrent DNS queries reached (max: 150)
看着/etc/resolv.conf
...
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 127.0.0.1
从我的其他 18.04 系统来看,我知道名称服务器应该是 127.0.0.53。如果我手动将 127.0.0.1 更改为 127.0.0.53(我知道我不应该这样做),则会出现错误似乎在 syslog 中停止。当然,重新启动会将此文件设置回 127.0.0.1。
如何让 resolv.conf 正确显示 127.0.0.53,并在重启后继续生效?我这样做对吗?
答案1
首先,感谢@Terrance 和@BernardWei 为我提供信息,最终帮助我解决了这个问题。我利用他们的部分链接制定了自己的流程来解决 syslog 中重复出现的错误消息。
查看后/etc/resolv.conf
会给出线索。名称服务器是 127.0.0.1,由 dnsmasq 放置在那里。在 18.04 中,它应该是 127.0.0.53,由 systemd-resolved 放置在那里。
在我的系统上,我做了:
ps auxc | grep -i dns
ps auxc | grep -i resolv
发现 dnsmasq 和 systemd-resolved 都在运行,就 DNS 而言,它们的功能有重叠。有两种可能的修复方法。
修复 #1:
我卸载了 dnsmasq 和 dnsmasq-base(可能是 -29 之前的系统遗留的),然后重新启动 systemd-resolved。/etc/resolv.conf
现在正确显示名称服务器是 127.0.0.53。
修复 #2:
如果您需要同时运行 dnsmasq 和 systemd-resolved,则编辑/etc/systemd/resolved.conf
并更改:
#DNSStubListener=yes
到:
DNSStubListener=no
并重新启动 systemd-resolved。