Dnsmasq 无法在端口 53 上工作,但端口 53 上没有其他任何东西

Dnsmasq 无法在端口 53 上工作,但端口 53 上没有其他任何东西

所以我在 raspberry pi 2 上运行 apache2 服务器和 hostapd,使用 raspbian。当我尝试使用 dnsmasq.conf localhost=127.0.0.1 运行 dnsmasq 时(除了其他设置,我认为它们现在并不重要),它说

dnsmasq: failed to create listening socket for port 53: Address already in use [fail].

但我已经尝试过

lsof -i -P -n | grep '53' 

而我只得到dnsmasq.

当我运行网络时netstat -ap46我得到

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address   Foreign Address State  PID/Program name    
tcp        0      0 localhost:mysql 0.0.0.0:*       LISTEN 559/mysqld          
tcp        0      0 0.0.0.0:domain  0.0.0.0:*       LISTEN 438/dnsmasq         
tcp        0      0 0.0.0.0:ssh     0.0.0.0:*       LISTEN 445/sshd            
tcp6       0      0 [::]:http       [::]:*          LISTEN 627/apache2         
tcp6       0      0 [::]:domain     [::]:*          LISTEN 438/dnsmasq         
tcp6       0      0 [::]:ssh        [::]:*          LISTEN 445/sshd            
udp        0      0 0.0.0.0:mdns    0.0.0.0:*              327/avahi-daemon: r 
udp        0      0 0.0.0.0:domain  0.0.0.0:*              438/dnsmasq         
udp        0      0 0.0.0.0:bootpc  0.0.0.0:*              370/dhcpcd          
udp        0      0 0.0.0.0:59990   0.0.0.0:*              327/avahi-daemon: r 
udp6       0      0 [::]:mdns       [::]:*                 327/avahi-daemon: r 
udp6       0      0 [::]:55646      [::]:*                 327/avahi-daemon: r 
udp6       0      0 [::]:domain     [::]:*                 438/dnsmasq         
raw6       0      0 [::]:ipv6-icmp  [::]:*             7   370/dhcpcd   

我没有安装网络管理器。 dnsmasq 是否会干扰自身?我该如何修复它?

答案1

在“本地地址”下,端口 53 被命名为 :domain 并被列为所有协议的进程“438/dnsmasq”所使用的端口。如果您使用netstat -ap46n,您将看到数字而不是名称。

程序名称是 dnsmasq,这意味着它确实已经在运行。如果有htop,您可以通过进程 ID 来搜索它,在本例中为 438。它将向您显示用于启动该进程的命令。或者,用于cat /proc/438/cmdline显示该信息。

因此,在 dnsmasq 已经运行的情况下,您需要检查配置文件,并且可以在 /proc/438/cmdline 中的命令中找到使用哪个配置文件的提示。我的系统上 dnsmasq 的联机帮助页确实列出了许多文件,但没有列出目录/etc/dnsmasq.d和默认配置文件/etc/default/dnsmasq。检查后一个文件可能是一个不错的起点。例如,使用sudo nano /etc/default/dnsmasq在 CLI 上执行此操作。

我希望这足以让你继续这一下去。

相关内容