Centos

當 systemd 服務 dnsmasq 被禁用時,CentOS 7.5.1804 dnsmasq 在啟動時啟動

  • November 19, 2018

我在 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 的程序嗎?

提前致謝。

首先,找到偵聽 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

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