Dnsmasq通过网络将本地主机名解析为127.0.0.1

Modified on: Sat, 09 Nov 2019 21:00:02 +0800

我的dnsmasq已配置:

  • 在主持人'rtfm.lan'
  • 域名'lan'
  • 有一些DHCP预设包含主机名

通过DHCP注册的所有'* .lan'主机都可以解决问题:dnsmasq已知哪些IP分配给哪些主机名。但是,从/ etc / hosts读取'rtfm.lan'并解析为127.0.0.1。

我可以阻止dnsmasq读取/ etc / hosts并手动添加地址:

no-hosts address=/rtfm.lan/192.168.1.2

但这不灵活:如果有一天我决定更改我的IP - 我还必须在dnsmasq.conf中更改它。

如何告诉dnsmasq使用local-hostname及其真实IP?


以防万一..这是我的DNSmasq配置:

no-hosts
address=/rtfm.lan/192.168.1.2
作者:kolypto

最佳答案

通常,您可以在/etc/hosts中定义静态主机,并在hosts文件中启用dnsmasq.confdnsmasq允许您为此文件指定备用名称。

如果您希望将rtfm.lan作为192.168.1.2进行寻址,那么请将192.168.1.2 rtfm.lan的行添加到/etc/hosts。通常,dnsmasq的hosts文件应该可以移植到所有服务器。

rtfm.lan上,IP堆栈会使路由短路,而不会将流量发送到网络上。

如果您使用/etc/hosts信号更新dnsmasq文件并发信号HUP,将重新读取hosts文件并应用更改。

编辑:
dnsmasq不是为其自己的主机提供动态主机地址。如上所述,它确实从其DHCP客户端的租约文件中提供名称。

如果您的主机是Internet网关,它通常会提供本地静态地址。提供Internet网关地址可能会导致路由和防火墙问题。

您可以将DHCP客户端配置为写入一行主机文件。除了addn-host之外,还可以使用dnsmasq选项/etc/hosts来使dnsmasq读取此文件。如果地址可能会改变,那么DHCP客户端可以重写该文件并在IP地址更改时向dnsmasq发送HUP信号。

作者:,BillThor

相关问答

添加新评论