在 Debian 上配置 DHCP 中继(DHCP Relay / dhcrelay),通常使用 isc-dhcp-relay 或 systemd 的 dhcprelay(通过 isc-dhcp-relay / dnsmasq)。下面以 isc-dhcp-relay 为例说明。
sudo apt update
sudo apt install isc-dhcp-relay
安装过程中会提示输入:
也可以安装后手动修改配置文件。
编辑配置文件:
sudo nano /etc/default/isc-dhcp-relay
典型配置示例:
# DHCP 服务器地址(多个用空格分隔)
SERVERS="192.168.10.10"
# 监听的接口(客户端所在网段)
INTERFACES="eth1"
# 可选:中继代理自身 IP(通常不用写)
OPTIONS=""
说明:
SERVERS:真实 DHCP 服务器 IPINTERFACES:接收 DHCP 请求的接口(客户端网段)sudo systemctl enable isc-dhcp-relay
sudo systemctl restart isc-dhcp-relay
查看状态:
systemctl status isc-dhcp-relay
确保中继主机允许:
如果是 iptables:
iptables -A INPUT -p udp --dport 67 -j ACCEPT
iptables -A INPUT -p udp --dport 68 -j ACCEPT
nftables 示例:
nft add rule inet filter input udp dport {67,68} accept
在 DHCP 服务器上,需要为不同网段配置 subnet,即使服务器不在该网段:
subnet 192.168.20.0 netmask 255.255.255.0 {
range 192.168.20.100 192.168.20.200;
routers 192.168.20.1;
option domain-name-servers 8.8.8.8;
}
在客户端执行:
dhclient eth0
在中继或 DHCP 服务器抓包:
tcpdump -i eth1 udp port 67 or udp port 68
如果你用 dnsmasq:
sudo apt install dnsmasq
配置:
dhcp-relay=192.168.20.1,192.168.10.10
如果你有 具体网络拓扑(接口名、网段、DHCP服务器位置),我可以帮你写一份精确配置。