温馨提示×

怎样测试Linux DHCP服务

小樊
57
2026-08-21 13:47:03
栏目: 智能运维

要测试 Linux 上的 DHCP 服务(通常是 ISC DHCP / dhcpd) 是否正常工作,可以从 服务状态、配置、端口、日志、客户端获取地址 等多个层面进行。下面给你一套实用、可操作的测试流程


一、确认 DHCP 服务是否已安装并运行

1. 检查服务状态

systemctl status isc-dhcp-server

或(部分系统)

systemctl status dhcpd

✅ 正常状态应为 active (running)

2. 若未启动,手动启动

systemctl start isc-dhcp-server
systemctl enable isc-dhcp-server

二、检查 DHCP 配置文件(非常关键)

配置文件一般在:

/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;
}

✅ 确认:

  • subnet 与服务器网卡 IP 在同一网段
  • range 没有被占用
  • 没有语法错误

检查语法

dhcpd -t

dhcpd -cf /etc/dhcp/dhcpd.conf

三、确认 DHCP 监听端口和网卡

1. DHCP 使用端口

  • UDP 67(服务器)
  • UDP 68(客户端)

2. 查看是否监听

ss -ulnp | grep 67

netstat -ulnp | grep dhcp

✅ 应看到 dhcpd 监听在 0.0.0.0:67 或指定网卡


四、查看 DHCP 日志(非常重要)

实时查看日志

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

五、在客户端测试 DHCP(最直接)

方法 1:Linux 客户端测试

dhclient -v eth0

或释放并重试:

dhclient -r eth0
dhclient eth0

✅ 成功会看到分配到的 IP


方法 2:Windows 客户端

ipconfig /release
ipconfig /renew

六、在服务器上查看已分配 IP

cat /var/lib/dhcp/dhcpd.leases

可看到:

  • 分配的 IP
  • MAC 地址
  • 租期时间

七、网络层测试(防止“假通”)

1. 检查防火墙

iptables -L -n

ufw status

✅ 确保 UDP 67 未被拦截

2. 本机回环测试(不常用)

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

如果你愿意,可以告诉我:

  • ✅ 你的 Linux 发行版(Ubuntu / CentOS / Rocky)
  • ✅ 是 物理机 / 虚拟机 / 容器
  • ✅ 报错日志内容

我可以帮你 精准定位问题并给出修改方案

0