當 NetworkManager 程序啟動 dnsmasq 時,是否可以將 NetworkManager 或 dnsmasq 設定為偵聽 0.0.0.0?
我已經注意到我放入的任何內容/etc/NetworkManager/dnsmasq.d/00-example.conf文件,例如:
listen-address=0.0.0.0
NetworkManager 使用下列參數啟動 dnsmasq:
/usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var/run/NetworkManager/dnsmasq.pid --listen-address=127.0.1.1 --cache-size=0 --conf-file=/dev/null --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d
知道如何改變--監聽地址選項 ?
答案1
我想你在 Ubuntu 上,這裡發生的事情是這樣的網域解析被網路管理器用作插入要快取本機 dns 查詢,請解釋為什麼它是在命令列上預先定義的:
--listen-address=127.0.0.1
因此,為了為您進行配置當地的網絡,您需要透過註解掉上述文件下的行來停用預設的 dnsmasq/etc/NetworkManager/NetworkManager.conf:
#dns=dnsmasq
完成後,重新啟動 NM :
systemctl restart NetworkManager
然後你需要安裝一個標準版本的 dnsmasq 並將其用於您自己的目的。
補充:一旦標準版本安裝在您的一台伺服器上,這將是您的 DNS 伺服器,它應該有一個固定的ip 因為您的網路使用 dhcp 伺服器,最終使您的 dns 伺服器偵聽所有其ips不僅在Loopback (127.0.0.1) ** 你應該放在設定檔 **/etc/dnsmasq.conf 下:
listen-address=0.0.0.0
答案2
我也為此苦苦掙扎。我認為雷達薩利赫可能有正確的答案。但我已經投入了大量的時間來嘗試讓 NetworkManager 屈服於我的意願,我終於讓它工作了。只是想加入我的答案:
- 確保您的主機有靜態 IP。如果您使用 DHCP(即使使用靜態分配),DnsMasq 將採用不需要的設置,例如對本機位址使用不同的 DNS 伺服器。
- 不要將本機 IP 放入 中
/etc/hosts
,因為不會被讀取。將addn-hosts
選項與不同的文件一起使用。 dhcp-option=3
如果您的網關與此 Dnsmasq 主機不同(我的是),則設定為您的網關。- 不要設定
dhcp-option=6
(除非你知道自己在做什麼) - 若要覆寫
listen-addr
NetworkManager 強制的設置,您可以使用interface
conf 檔案中的設定。我有我的一套,interface=eth0,lo
對我來說相當於listen-addr=0.0.0.0
。其他設定(例如dhcp-host)是正常的,不需要額外提及。