在 Debian 上,如果你使用的是 ISC DHCP Server(isc-dhcp-server),可以通过 地址池(pool)范围 或 按 MAC 限制 来控制可分配的 IP 数量。下面按常见需求说明。
DHCP 能分配的 IP 数量,本质上由 range 决定。
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 8.8.8.8;
pool {
range 192.168.1.100 192.168.1.109; # 只给 10 个 IP
}
}
✅ 这样最多只能有 10 台设备获取到 IP。
如果有多 subnet,每个 subnet 单独控制:
subnet 192.168.10.0 netmask 255.255.255.0 {
pool {
range 192.168.10.10 192.168.10.19; # 10 个
}
}
subnet 192.168.20.0 netmask 255.255.255.0 {
pool {
range 192.168.20.10 192.168.20.29; # 20 个
}
}
subnet 192.168.1.0 netmask 255.255.255.0 {
pool {
range 192.168.1.100 192.168.1.109;
deny unknown-clients;
}
}
host pc1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.100;
}
host pc2 {
hardware ethernet 00:11:22:33:44:66;
fixed-address 192.168.1.101;
}
✅ 只有登记 MAC 的设备能拿到 IP。
ISC DHCP 默认 一个 MAC 一个租约,不需要额外配置。
如果你看到“一个 MAC 多个 IP”,通常是:
可加:
deny duplicates;
default-lease-time 600;
max-lease-time 3600;
短时间租约 → 不用的 IP 更快回收。
Debian 下通常是:
/etc/dhcp/dhcpd.conf
修改后重启:
systemctl restart isc-dhcp-server
| 需求 | 方法 |
|---|---|
| 限制总 IP 数 | 控制 range |
| 限制某网段 | 多 subnet |
| 限制设备 | deny unknown-clients + host |
| 防滥用 | 短租约 + MAC 白名单 |
如果你能说明:
我可以给你更精确的配置示例。