要测试 Linux 上的 DHCP 服务(通常是 ISC DHCP / dhcpd) 是否正常工作,可以从 服务状态、配置、端口、日志、客户端获取地址 等多个层面进行。下面给你一套实用、可操作的测试流程。
systemctl status isc-dhcp-server
或(部分系统)
systemctl status dhcpd
✅ 正常状态应为 active (running)
systemctl start isc-dhcp-server
systemctl enable isc-dhcp-server
配置文件一般在:
/etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;
}
✅ 确认:
dhcpd -t
或
dhcpd -cf /etc/dhcp/dhcpd.conf
ss -ulnp | grep 67
或
netstat -ulnp | grep dhcp
✅ 应看到 dhcpd 监听在 0.0.0.0:67 或指定网卡
journalctl -u isc-dhcp-server -f
或
tail -f /var/log/syslog
常见成功日志:
DHCPDISCOVER from xx:xx:xx
DHCPOFFER on 192.168.1.101 to xx:xx:xx
DHCPREQUEST from xx:xx:xx
DHCPACK on 192.168.1.101 to xx:xx:xx
dhclient -v eth0
或释放并重试:
dhclient -r eth0
dhclient eth0
✅ 成功会看到分配到的 IP
ipconfig /release
ipconfig /renew
cat /var/lib/dhcp/dhcpd.leases
可看到:
iptables -L -n
或
ufw status
✅ 确保 UDP 67 未被拦截
dhcping -s 127.0.0.1 -c 255.255.255.255
| 问题 | 排查点 |
|---|---|
| 客户端获取不到 IP | subnet 是否匹配网卡 |
| DHCP 服务起不来 | dhcpd.conf 语法错误 |
| 能收到 DISCOVER 但无 OFFER | 防火墙 / 网卡未监听 |
| 分配 IP 但无法上网 | 网关 / DNS 配置错误 |
systemctl status isc-dhcp-server
dhcpd -t
ss -ulnp | grep 67
journalctl -u isc-dhcp-server -f
cat /var/lib/dhcp/dhcpd.leases
如果你愿意,可以告诉我:
我可以帮你 精准定位问题并给出修改方案。