当 systemd 服务 dnsmasq 被禁用时,CentOS 7.5.1804 dnsmasq 会在启动时启动

当 systemd 服务 dnsmasq 被禁用时,CentOS 7.5.1804 dnsmasq 会在启动时启动

我正在 CentOS 7.5.1804 上使用 SAMBA_INTERNAL DNS 配置 SAMBA AD DC。要使其正常工作,在 samba 启动时不应监听端口 *:53/tcp。系统中的某些东西在启动时启动了 dnsmasq 并阻止了端口。我不知道它是什么。Systemd 显示 dnsmasq 服务已禁用:

dnsmasq.service - DNS caching server.
Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; disabled; vendor preset: disabled)
Active: inactive (dead)

关于如何定位并禁用启动 dnsmasq 的进程,有什么想法吗?

提前致谢。

答案1

首先,使用以下命令查找监听 UDP 端口 53 的进程lsof -i <proto>:<port>

[root@www ~]# lsof -i udp:53
COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
dnsmasq 4053 dnsmasq    7u  IPv4  52803      0t0  UDP www.example.com:domain 

现在您有了 dnsmasq 的进程 ID。使用以下命令查明 systemd 服务是否启动了它们systemctl status <pid>

[root@www ~]# systemctl status 4053
● libvirtd.service - Virtualization daemon
   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2018-11-18 15:48:33 EST; 17h ago
     Docs: man:libvirtd(8)
           https://libvirt.org
 Main PID: 2881 (libvirtd)
    Tasks: 22 (limit: 32768)
   Memory: 73.0M
   CGroup: /system.slice/libvirtd.service
           ├─2881 /usr/sbin/libvirtd
           └─4053 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper

在我的例子中,libvirtd 已启动 dnsmasq 来为虚拟机提供 DNS 服务。您的情况可能有所不同。(当然,如果您确实找到了 libvirtd,则意味着您的架构错误。在这种情况下,您的 Samba DC 应该位于 VM 中;VM 主机应该只运行虚拟机。)

如果systemctl status没有给您任何线索,那么请使用ps检查命令行来查看是否可以找到任何进一步的提示。

[root@www ~]# ps -l 4053 | cat
F S   UID     PID    PPID  C PRI  NI ADDR SZ WCHAN  TTY        TIME CMD
5 S   968    4053       1  0  80   0 -  6060 x64_sy ?          0:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper

相关内容