為什麼dnsmasq開始執行佔用了53,以至於我的unbound無法啟動
拱最新。
通過 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 時預設啟用。
- 檢查是否有任何自動啟動的網路定義:
virsh net-list --all
- 如果有,您可以使用 . 查看內容
virsh net-dumpxml
。例如,如果網路定義的名稱是“預設”:virsh net-dumpxml default
- 如果它啟用了 dhcp,您可以使用以下命令停止它(並阻止它在下次重新啟動時自動啟動):
virsh net-destroy default # stop it running NOW. virsh net-autostart --disable default # prevent it from auto-starting
PS:幾年前我在我的系統上禁用了 libvirt 啟動的 dnsmasq。我更喜歡跑步
unbound
和 ISCdhcpd
。