Socket

dnsmasq:未能為埠 53 創建偵聽套接字:地址已在使用中

  • April 12, 2022

完成設置 dnsmasq 時出現此錯誤。

ashokkrishna@krishna:~$ sudo dnsmasq

dnsmasq: failed to create listening socket for port 53: Address already in use


ashokkrishna@krishna:~$ netstat -lpn | grep :53
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      -               
tcp6       0      0 :::53                   :::*                    LISTEN      -               
tcp6       0      0 :::53755                :::*                    LISTEN      -               
udp        0      0 0.0.0.0:53              0.0.0.0:*                           -               
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           -               
udp6       0      0 :::53                   :::*                                -               
udp6       0      0 :::5353                 :::*                                - 

那麼如何解決這個問題或如何停止這些套接字。

你可以這樣做:

netstat -tupln

你會得到這樣的結果:

tcp   0  0 :::80   :::*      LISTEN    713/httpd

獲取偵聽埠 53 的程序的 pid 並使用此命令將其殺死

kill -9 pid

我只是花了幾個小時試圖在沒有任何重大系統修改的情況下以合理的方式解決這個問題。

停止 dnsmasq 自動啟動。

servicectl disable dnsmasq

創建文件/etc/rc.local/etc/rc.d/rc.local取決於發行版。

設置燙髮chmod +x /etc/rc.local

編輯文件:

#!/bin/bash
service systemd-resolved stop
service dnsmasq start

至少在 Mint 上,只需停止 systemd-resolved 然後在完全啟動後啟動 dnsmasq 就可以了。我不能在其他發行版上發言。

引用自:https://serverfault.com/questions/695447