FreeBSD DHCP设置主机名(重启后为空主机名)
时间:2020-01-09 10:38:39 来源:igfitidea点击:
问题描述:
FreeBSD 7.2服务器,在引导过程结束后,我在/etc/rc.conf中设置了主机名,我用hostname命令检查了主机名,但得到空行。
用hostname设置hostname效果很好,但是重启后主机名仍然为空。
我怀疑这与DHCP设置有关。
如何使用DHCP设置主机名?
解决方法:
动态主机配置协议(DHCP)是设备(DHCP客户端)用来获取用于在Internet协议网络中操作的配置信息的网络应用协议。
dhclient实用程序提供了一种通过静态分配地址来使用DHCP,BOOTP或在这些协议失败的情况下配置网络接口的方法。
此问题表明您的DHCP服务器根本没有发送回主机名。
要解决此问题,请将您的dhcp服务器配置为发送回主机名,或者将dhcp客户端配置为在笔记本电脑本身上设置主机名。
dhclient脚本
从手册页:
dhclient会不时调用DHCP客户端网络配置脚本。
DHCP客户端使用此脚本在请求地址之前设置每个接口的初始配置,在提供地址后对其进行测试,并在获取租约后设置接口的最终配置。
如果未获取任何租约,则该脚本将用于测试预定义的租约(如果有),并且在无法识别有效租约的情况下也调用一次。
如下更新您的/etc/rc.conf:
hostname=""
使用文本编辑器创建一个名为/etc/dhclient-enter-hooks的文件:
# vi /etc/dhclient-enter-hooks
追加以下代码:
#!/bin/sh check_hostname(){ hostname laptop.theitroad.com }
保存并关闭文件。
设置权限:
# chmod +x /etc/dhclient-enter-hooks
现在,您可以重新启动笔记本电脑或仅请求dhcp租约:
# dhclient iface
示例dhclient.conf
这是dhcp客户端的示例/etc/dhclient.conf文件:
timeout 60; retry 60; reboot 10; select-timeout 5; initial-interval 2; interface "ep0" { send host-name "laptop.theitroad.com"; send dhcp-client-identifier 1:0:a0:24:ab:fb:9c; send dhcp-lease-time 3600; supersede domain-name "theitroad.com r.theitroad.com r.vsnl.theitroad.com"; prepend domain-name-servers 127.0.0.1; request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name; require subnet-mask, domain-name-servers; script "/etc/dhclient-script"; media "media 10baseT/UTP", "media 10base2/BNC"; } alias { interface "ep0"; fixed-address 192.5.5.213; option subnet-mask 255.255.255.255; }
有关更多信息,请参见dhclient,dhclient.conf和dhclient-script手册页。