要在 CentOS 上通过 DHCP 自动设置主机名,请按照以下步骤操作:
- 首先,确保您的 CentOS 系统已安装了 dhclient。如果没有,请使用以下命令安装:
sudo yum install dhclient
- 编辑
/etc/dhcp/dhclient.conf
文件,以便在获取 DHCP 服务器响应时执行主机名设置脚本。您可以使用任何文本编辑器(如 vi 或 nano)完成此操作。这里我们使用 nano:
sudo nano /etc/dhcp/dhclient.conf
- 在文件的末尾添加以下行,以指定在获取到 DHCP 服务器响应时要运行的脚本。在这个例子中,我们使用
/bin/hostname
命令设置主机名,但您可以根据需要使用其他命令。
request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-search, host-name, netbios-scope;
例如,要将主机名设置为与系统的 MAC 地址相关联的唯一标识符,请使用以下行:
request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-search, host-name, netbios-scope; request interface-id, mac-address;
保存并关闭文件。
- 创建一个脚本,该脚本将在获取到 DHCP 服务器响应时设置主机名。在这个例子中,我们创建一个名为
/etc/dhcp/set_hostname.sh
的脚本,并将以下内容粘贴到其中:
#!/bin/bash # 从 DHCP 响应中获取主机名 hostname=$(cat /var/lib/dhcp/dhclient.leases | grep -w $new_mac | cut -d ' ' -f 2) # 设置主机名 sudo hostnamectl set-hostname $hostname
确保将 new_mac
替换为从 DHCP 响应中实际获取的 MAC 地址变量。您可以通过编辑 dhclient.conf 文件中的 request interface-id, mac-address;
行来提取 MAC 地址。
- 使脚本可执行:
sudo chmod +x /etc/dhcp/set_hostname.sh
- 在 dhclient 配置文件中添加以下行,以便在每次获取 DHCP 服务器响应时运行脚本:
script /etc/dhcp/set_hostname.sh
- 最后,重启 dhclient 服务以应用更改:
sudo systemctl restart dhclient
现在,每当您的 CentOS 系统从 DHCP 服务器获取 IP 地址时,它都会自动设置一个基于其 MAC 地址的唯一主机名。