我最近将我的 Xubuntu 从 16.10 升级到 17.04。
除了 systemd-resolve 之外,其他一切都运行良好。有时它会使 CPU 使用率过高,我不知道为什么会发生此问题。
命令输出如下top
:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1114 systemd+ 20 0 51532 6744 4504 R 100 0.0 9:51.67 systemd-resolve
1152 dnsmasq 20 0 64360 2892 2480 R 38.9 0.0 4:05.53 dnsmasq
1245 root 20 0 376644 89644 64436 S 1.7 0.5 0:35.69 Xorg
1624 asus 20 0 370160 45820 28488 S 0.7 0.3 0:00.90 python2
2238 asus 20 0 2562816 553112 128492 S 0.7 3.4 2:41.20 firefox
16 root 20 0 0 0 0 S 0.3 0.0 0:01.05 ksoftirqd/1
708 root -51 0 0 0 0 S 0.3 0.0 0:01.20 irq/95-ELAN1000
1302 root -51 0 0 0 0 S 0.3 0.0 0:03.68 irq/142-nvidia
1734 asus 20 0 483388 11060 8560 S 0.3 0.1 0:05.45 conky
2820 root 20 0 0 0 0 S 0.3 0.0 0:00.14 kworker/5:1
3420 asus 20 0 53384 3932 3200 R 0.3 0.0 0:00.76 top
我不知道为什么会发生此问题,但通常它是在运行某些命令时发生的,例如sudo apt update
。
(我正在使用 tor 和 obfs4proxy,它可能对答案有帮助)
答案1
我在端口 53 上遇到了 systemd-resolve 和 dnsmasq 之间的类似冲突。
和
https://github.com/systemd/systemd/pull/4061
引导我DNSStubListener=no
添加/etc/systemd/resolved.conf
然后sudo service systemd-resolved restart
。
答案2
导致其他应用程序出现问题(我的情况是 teamViewer)
另一个解决方案的步骤建议
添加行DNSMASQ_EXCEPT=lo
到/etc/default/dnsmasq
sudo nano /etc/default/dnsmasq
通过以下方式重启 dnsmasq
sudo service systemd-resolved restart
如果我有所帮助,请说声谢谢,它会恢复正常并且不会像以前的方法那样干扰其他应用程序。
欢呼吧,马克
答案3
当有人修改文件时,systemd-resolved 会变得疯狂/etc/resolv.conf
,该文件应该指向它自己的监听地址 127.0.0.53。
该某人可以是由网络事件(VPN 启动或关闭、DHCP 等)触发的任何脚本。
如果您将名称服务器设置回 127.0.0.53,则 systemd-resolved 将在几秒钟后“平静下来”。
假设每个人都遵守规则,并且只使用 resolvconf 来修改解析器的配置,您也可以这样做:
该文件/etc/resolvconf/interface-order
指定了名称服务器的使用顺序,具体取决于接收名称服务器的网络接口。
systemd-resolved
如果在文件顶部添加一个条目,它将始终被首先考虑,并且文件将不会被修改。
答案4
我在 18.04 中遇到了同样的问题。systemd-resolved
并且dnsmasq
倾向于循环。我通过以下方式解决了它:
添加或取消注释以下行/etc/default/dnsmasq
:
IGNORE_RESOLVCONF=yes
创建您自己的resolv
文件 ( /etc/resolv.personal
) 来定义名称服务器。您可以在此处使用任何名称服务器。我从开放网卡。
nameserver 5.132.191.104
nameserver 103.236.162.119
添加/etc/dnsmasq.conf
或取消注释以下行:
resolv-file=/etc/resolv.personal
然后重新启动dnsmasq
并禁用默认解析器:systemd-resolved
。
sudo service dnsmasq restart
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved