问题现象描述
在Ubuntu 11.04服务器虚拟机环境中,每次启动后IP地址都会变化。虽然公司DHCP服务器支持客户端请求主机名(Windows 7已验证),但在Ubuntu上配置后始终无法生效。
# 当前配置示例
send host-name "MYRQUESTEDHOSTNAME";
关键配置验证点
首先需要确认DHCP客户端配置是否完整:
# 检查配置文件路径(新版Ubuntu可能不同)
/etc/dhcp/dhclient.conf
# 完整配置示例
interface "eth0" {
send host-name = gethostname();
send dhcp-client-identifier "MYRQUESTEDHOSTNAME";
request subnet-mask, broadcast-address, routers, domain-name-servers;
}
网络服务重启的正确方式
旧版Ubuntu建议使用以下命令序列:
# 先释放IP
sudo dhclient -r eth0
# 然后重新获取
sudo dhclient eth0
# 或者使用新语法
sudo systemctl restart systemd-networkd
DNS记录更新验证
使用dig命令验证时需要注意:
# 正确查询方式(包含+short参数)
dig @192.168.225.5 +short -x 192.168.235.XXX
# 检查DHCP租约
cat /var/lib/dhcp/dhclient.leases
常见问题排查
- 检查/etc/hostname文件是否冲突
- 确认网络管理器未覆盖配置:sudo nmcli general logging level DEBUG
- 查看系统日志:journalctl -u systemd-networkd -f
完整解决方案示例
以下是经过验证的有效配置:
# /etc/dhcp/dhclient.conf 关键配置
send host-name "ubuntu-server-01";
send dhcp-client-identifier "ubuntu-server-01";
request host-name, domain-name, domain-name-servers;
# /etc/network/interfaces 补充配置
auto eth0
iface eth0 inet dhcp
hostname ubuntu-server-01
dns-domain example.com
配置完成后执行:
sudo ifdown eth0 && sudo ifup eth0
# 或使用NetworkManager
sudo nmcli connection reload