dnsmasq:无法为端口 53 创建侦听套接字:地址已在使用中

Ram*_*Ram 35 dnsmasq

我正在按照以下链接设置服务器 https://help.ubuntu.com/community/Dnsmasq

root@user-desktop:/etc/init.d# sudo apt-get install dnsmasq
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  dnsmasq
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/15.4 kB of archives.
After this operation, 120 kB of additional disk space will be used.
Selecting previously unselected package dnsmasq.
(Reading database ... 146283 files and directories currently installed.)
Unpacking dnsmasq (from .../dnsmasq_2.59-4_all.deb) ...
Processing triggers for ureadahead ...
Setting up dnsmasq (2.59-4) ...
 * Starting DNS forwarder and DHCP server dnsmasq                                                                                                                                                            
dnsmasq: failed to create listening socket for port 53: Address already in use [fail]
invoke-rc.d: initscript dnsmasq, action "start" failed.
Run Code Online (Sandbox Code Playgroud)

Sha*_*yan 31

检查端口 53(域)上正在侦听的内容:

sudo ss -lp "sport = :domain"
Run Code Online (Sandbox Code Playgroud)

禁用在此端口上运行的任何服务。通常是systemd-resolved.

我也打算mask这样做,这样它就不会在重新启动时自动启动。

sudo systemctl disable systemd-resolved
sudo systemctl mask systemd-resolved
Run Code Online (Sandbox Code Playgroud)

另外,请确保您已停止该systemd-resolved服务。跑:

sudo systemctl stop systemd-resolved
Run Code Online (Sandbox Code Playgroud)

要撤消您所做的操作:

sudo systemctl unmask systemd-resolved
sudo systemctl enable systemd-resolved
Run Code Online (Sandbox Code Playgroud)

sudo update-rc.d systemd-resolved disable可能会阻止它在启动时自动启动,但我还没有测试过。使用defaults而不是disable撤消命令。


或者您可以通过编辑配置文件来更改 dnsmasq 侦听的端口:

sudo nano /etc/dnsmasq.conf
Run Code Online (Sandbox Code Playgroud)

Ctrl+W并键入listen-address=并按 Enter。

取消注释该行并使用与 53 不同的端口添加 127.0.0.1,例如:

listen-address=127.0.0.1#5300
Run Code Online (Sandbox Code Playgroud)


小智 8

我遇到和你一样的问题。我认为自 12.10 以来确实如此,但此线程在 12.10 发布之前已关闭。

进行一些谷歌搜索(主要来自here),我找到了这个解决方案:

  • /etc/NetworkManager/NetworkManager.conf用你最喜欢的编辑器编辑文件
  • 注释该行 dns=dnsmasq
  • 重新启动网络管理器: sudo service network-manager restart

但是在您的 dnsmasq 配置 ( /etc/dnsmasq.conf) 中,您必须确保使用listen-address=127.0.0.1.

如果你改变了dnsmasq的配置,不要忘记运行 sudo /etc/init.d/dnsmasq restart

我希望这将有所帮助。

  • 通过注释掉 `dns=dnsmasq` 并不会破坏安装 DNSmasq 的目的。我进行了 `listen-address=127.0.0.1` 更改,现在似乎可以正常工作了。 (2认同)

e-1*_*e-1 5

我有同样的问题。

dnsmasq-base已安装并侦听端口 53,防止dnsmasq启动。

可以将dnsmasq-baseinsead ofdnsmasq用于相同目的:只需使用另一个配置目录:放置在Network Manager文件夹中的目录:

/etc/NetworkManager/dnsmasq.d/
Run Code Online (Sandbox Code Playgroud)