我正在 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