在 Linux 中配置 DHCP 服务器(通常是 ISC DHCP)时,可以通过 option routers 来指定客户端获取的默认网关。下面按常见场景说明。
# Debian / Ubuntu
sudo apt install isc-dhcp-server
# RHEL / CentOS / Rocky
sudo yum install dhcp
# 或
sudo dnf install dhcp-server
编辑配置文件:
sudo vim /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 subnet-mask 255.255.255.0;
option domain-name-servers 8.8.8.8, 114.114.114.114;
default-lease-time 600;
max-lease-time 7200;
}
✅ 关键点
option routers → 客户端默认网关host server1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.50;
option routers 192.168.1.254;
}
shared-network my-network {
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
range 192.168.1.100 192.168.1.200;
}
subnet 192.168.2.0 netmask 255.255.255.0 {
option routers 192.168.2.1;
range 192.168.2.100 192.168.2.200;
}
}
如果 DHCP 服务器不在客户端网段:
# 在网关/路由器上配置 DHCP 中继
sudo apt install isc-dhcp-relay
配置:
# /etc/default/isc-dhcp-relay
SERVERS="192.168.1.10"
INTERFACES="eth0"
ip route
应看到:
default via 192.168.1.1 dev eth0
ipconfig
option routers 存在dhcpd.conf 语法是否正确sudo systemctl restart isc-dhcp-server
✅ 可以,但必须保证:
| 功能 | 配置项 |
|---|---|
| 默认网关 | option routers |
| DNS | option domain-name-servers |
| 子网掩码 | option subnet-mask |
| 固定网关 | host + fixed-address |
如果你愿意,可以告诉我:
我可以给你一份完全贴合你环境的配置示例。