在 Linux 上做 DHCP 中继(DHCP Relay / DHCP Helper),通常使用 isc-dhcp-relay(或 systemd 环境下的 dhcrelay)。下面按常见场景说明。
DHCP 中继的作用是:
中继设备需要:
sudo apt update
sudo apt install isc-dhcp-relay
sudo yum install dhcp-relay
# 或
sudo dnf install dhcp-relay
假设:
eth0(192.168.10.0/24)eth1(10.0.0.0/24)10.0.0.100echo 1 > /proc/sys/net/ipv4/ip_forward
永久生效:
cat >> /etc/sysctl.conf <<EOF
net.ipv4.ip_forward=1
EOF
sysctl -p
dhcrelay -i eth0 10.0.0.100
说明:
-i eth0:监听客户端请求的接口10.0.0.100:DHCP 服务器地址如果有多个接口:
dhcrelay -i eth0 -i eth2 10.0.0.100
编辑:
sudo nano /etc/default/isc-dhcp-relay
示例:
SERVERS="10.0.0.100"
INTERFACES="eth0"
OPTIONS=""
启动:
sudo systemctl restart isc-dhcp-relay
sudo systemctl enable isc-dhcp-relay
编辑:
sudo nano /etc/sysconfig/dhcrelay
示例:
DHCRELAYARGS=""
INTERFACES="eth0"
DHCPSERVERS="10.0.0.100"
启动:
systemctl restart dhcrelay
systemctl enable dhcrelay
firewall-cmd --add-service=dhcp --permanent
firewall-cmd --reload
或 iptables:
iptables -A INPUT -p udp --dport 67 -j ACCEPT
iptables -A INPUT -p udp --dport 68 -j ACCEPT
在中继上抓包:
tcpdump -i eth0 udp port 67 or udp port 68
客户端应能看到:
✅ 客户端收不到地址?
✅ DHCP 服务器日志无请求?
如果你告诉我:
我可以给你一份 完全可直接用的配置。