如果 dnsmasq 没有运行,它如何进行监听?

如果 dnsmasq 没有运行,它如何进行监听?

service --status-all 显示dnsmasq前面的 (-) 表示它没有运行。

但当我尝试跑步时,sudo dnsmasq我收到了消息dnsmasq: failed to create listening socket for 127.0.0.1: Address already in use

因此我检查了正在监听的内容127.0.0.1sudo ss -alpn sport = 53 src 127.0.0.1得到了输出:

TCP | LISTEN | 0 | 32 | 127.0.0.1:53 | 0.0.0.0:* | users:(("dnsmasq",pid=3307,fd=5))  

如果它不运行,怎么能听到声音呢?

答案1

请尝试以下步骤:

服务

比较service --status-all输出

systemctl list-units --type=service

监听端口和应用程序

安装net-tools并显示监听端口列表,包括进程号和名称。nestat与 类似ss,但更紧凑:

sudo apt-get install net-tools

sudo netstat -lntp

搜索端口 53 和 dnsmasq 名称。可以dnsmasq使用两个端口(DNS 和 DHCP)。验证是否列出没有带有 和 端口 53 的监听应用程序dnsmasq。如果仍然列出一个或两个,则按以下方式显示进程:

ps -ef
ps -aux

最终将整行内容保存在文本文件中,以便稍后进行分析和过滤grep

ps -ef  > list1.txt
ps -aux > list2.txt
ps -eux > list3.txt

搜索从中获取的进程号netstat,并按照列表中的父进程获取它们的启动顺序和方式。进程列表将显示进程,dnsmasq包括配置文件名、路径和其他详细信息。

某些应用程序可以作为服务或独立进程启动因此两个相似的过程之间就有可能通过这种方式发生碰撞。

手动终止不需要的进程以释放监听端口,然后尝试以您需要的方式启动 dnsmasq。

sudo kill -9 <process_number>

相关内容