ubuntu 22.04 上的 dnsmasq:忽略监听地址

ubuntu 22.04 上的 dnsmasq:忽略监听地址

目前 2.86-1.1ubuntu0.3 正在 ubuntu 22.04 上运行。

我用了

listen-address=127.0.0.1
listen-address=[public-ip-1]
listen-address=[public-ip-2]
port=53

但 dnsmasq 绑定在所有 IP 上:

netstat -tulpn | grep dnsmasq
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      3641/dnsmasq
tcp6       0      0 :::53                   :::*                    LISTEN      3641/dnsmasq
udp        0      0 0.0.0.0:53              0.0.0.0:*                           3641/dnsmasq
udp6       0      0 :::53                   :::*                                3641/dnsmasq

在另一台装有 ubuntu 20.04 的服务器上,它可以按预期运行。

每一个小提示都会有帮助。

答案1

这是预期的行为。从该选项的文档中可以看出bind-interfaces

在支持它的系统上,dnsmasq 绑定通配符地址,即使它仅监听某些接口。然后它会丢弃不应该回复的请求。这样做的好处是,即使接口来来去去并更改地址,它也能正常工作。此选项强制 dnsmasq 真正绑定它正在监听的接口。这唯一有用的时间是在同一台机器上运行另一个名称服务器(或 dnsmasq 的另一个实例)。设置此选项还可以使提供 DHCP 服务的多个 dnsmasq 实例在同一台机器上运行。

(来自dnsmasq 手册页(强调我的)

相关内容