简单回答:Linux 上的 DHCP 本身不能“自动跨网段”分配 IP,但可以通过“DHCP 中继(DHCP Relay / relay agent)”实现跨网。
下面分层说明:
DHCP 依赖 广播(Broadcast):
DHCP Discover(广播)➡️ 所以:
靠 DHCP Relay(中继代理)
使用 dhcrelay(ISC DHCP 提供)
示例:
dhcrelay -i eth1 192.168.10.1
含义:
eth1 接收客户端请求192.168.10.1此时:
✅ 可以跨网
ip helper-address示例(Cisco):
interface vlan 20
ip helper-address 192.168.10.1
即使跨网:
giaddr(中继带来的网关地址)判断网段示例(dhcpd.conf):
subnet 192.168.20.0 netmask 255.255.255.0 {
range 192.168.20.100 192.168.20.200;
option routers 192.168.20.1;
}
❌ “Linux DHCP 可以像路由器一样自动跨网”
✅ 不可以,必须中继
❌ “只要服务器有多个网卡就能跨网”
✅ 同一广播域才行,多网卡 ≠ 跨网
Linux DHCP 不能直接跨网,但通过 DHCP Relay(Linux 或网络设备)可以完美支持跨网段分配 IP。
如果你有具体场景(VLAN / 云 / 容器 / 家用路由),我可以给你更针对性的配置示例。