Kvm

為什麼dnsmasq開始執行佔用了53,以至於我的unbound無法啟動

  • October 18, 2021

拱最新。

通過 QEMU 管理器,我最近創建了一個映射到我的無線設備的 NAT 網路。計劃是為虛擬機使用無線,為主機使用乙太網。在此之前,VM 和未綁定的主機都可以。

沒有其他系統變化。

現在,系統重新啟動後,unbound 無法啟動,抱怨它無法獲取埠 53。通過 lsof 我看到 dnsmasq 佔用了 53。即使我的虛擬網路無法在啟動時啟動,也會發生這種情況。

我不想更改未綁定的埠,因為這需要重新配置其客戶端。

為什麼 dnsmasq 啟動?

最簡單且影響最小的配置更改是什麼?

你在使用 libvirt(virsh、virtmanager 等)嗎?

一些(大多數?全部?)發行版聲明了 libvirt 和 dnsmasq 之間的某種依賴關係。例如,在 Debian 上,libvirt-daemon-system包 Recommendsdnsmasq包(這意味著它將在您安裝 libvirt-daemon-system 時安裝,除非您禁用安裝推薦的包 - 例如Install-Recommends "False";在 /etc/apt/apt.conf 中)。

無論如何,如果您使用的是 libvirt,請查看/etc/libvirt/qemu/networks/autostart. 或者,更好的是,使用virsh命令進行檢查——見下文。

如果那裡有一個帶有規則的文件/符號連結dhcp(這幾乎是在 libvirt 中定義網路的主要原因),那麼 libvirt 將啟動一個 dnsmasq 實例來提供 dhcp、dns 和/或 tftp 服務虛擬機。這通常在安裝 libvirt 時預設啟用。

  1. 檢查是否有任何自動啟動的網路定義:
virsh net-list --all
  1. 如果有,您可以使用 . 查看內容virsh net-dumpxml。例如,如果網路定義的名稱是“預設”:
virsh net-dumpxml default
  1. 如果它啟用了 dhcp,您可以使用以下命令停止它(並阻止它在下次重新啟動時自動啟動):
virsh net-destroy default             # stop it running NOW.
virsh net-autostart --disable default # prevent it from auto-starting

PS:幾年前我在我的系統上禁用了 libvirt 啟動的 dnsmasq。我更喜歡跑步unbound和 ISC dhcpd

引用自:https://unix.stackexchange.com/questions/673610