我知道您可以通过在 dnsmasq.conf 中执行以下操作来分配静态 DNS 条目名称:
address=/wiki.leerdomain.lan/192.168.1.200
ptr-record=wiki.leerdomain.lan/192.168.1.200
然后使用 DHCP 使用相关机器的 MAC 地址分配静态 IP 地址(请参阅下面来自 OpenWRT 的 UCI 配置):
config host
option name 'wiki.leerdomain.lan'
option mac 'xx:xx:xx:xx:xx:xx'
option ip '192.168.1.200'
但是,我该如何设置带有选项 DHCP 选项 12 的 Linux 机器的主机名?(或者我已经用第二个片段这样做了?)
我希望相关机器能够运行该命令hostname
并接收由选项 12 分配的主机名。
答案1
在 Dnsmasq 中,如果您可以直接编辑配置文件,则可以为 dhcp 客户端指定主机名,如下所示:
dhcp-host=f8:da:0c:0a:af:c9,192.168.1.222,SpecialMachine,30d
这将为客户端分配 MAC 地址f8:da:0c:0a:af:c9
IP 192.168.1.222、主机名“SpecialMachine”和 DHCP 租用时间 30 天。
[抱歉。与其删除这篇文章,我觉得最好解释一下,就我而言,我想要完成的是确保设备主机名按照我的要求出现在路由器上。我没有验证设备是否真的更改了主机名]。
答案2
如果我正确理解了这个问题,并且您希望将主机名从 dnsmasq DHCP 服务器分配给客户端,那么在大多数 Linux 发行版上,dhclient 默认发送主机名。
您可以使用以下选项确认您的客户端是否将其主机名发送到 dhclient.conf 中的 DHCP 服务器send host-name
:
$ cat /etc/dhcp/dhclient.conf | grep send
send host-name = gethostname();
您可以通过注释该行并确保已为 dnsmasq 中的每个主机分配主机名以便客户端获得一个主机名来获得所需的内容。您可能必须将它们加载到 /etc/hosts 或服务器的等效源中。