我刚刚安装了 Ubuntu 18.04,在配置了我的 Web 服务器后,我还想替换基础 dnsmasq,因为我需要支持通配符。在我使用此命令安装 dnsmasq 后 指南,dnsmasq 无法启动,因为端口 53 已经被使用,所以我尝试通过从中注释掉来禁用基本 dnsmasq,dns=dnsmasq
但etc/NetworkManager/NetworkManager.conf
没有这样的行...所以现在我向您寻求有关如何禁用基本 dnsmasq 的帮助。
答案1
您已systemd-resolved
启用本地 DNS 服务器。
您可以通过设置禁用它DNSStubListener=no
,/etc/systemd/resolved.conf
然后重新启动systemd-resolved
服务。
然后它将启动而不绑定到端口 53,dnsmasq
而是允许绑定。
答案2
正如 yosi1984 所猜测的,端口 53 被 systemd-resolved 使用。他的解决方案没有奏效,但它让我找到了正确的问题和答案: https://askubuntu.com/a/907249/25918
答案3
最近遇到了同样的情况。对于那些禁用互联网的人来说,这意味着你需要设置 dnsmasq 的完整实现来解析内部(例如,通配符本地)和外部域。
Ubuntu 18.04 的替代方法是放弃完整的 dnsmasq 包,转而使用默认的 dnsmasq-base,并严格通过 NetworkManager 中的 dnsmasq(base)修改 DNS 解析。
如果您已经通过 apt-get 安装了 dnsmasq 包,请确保先卸载。不要忘记在设置新配置文件结束时重新加载 NetworkManager。