在 Debian 上,通常使用 ISC DHCP Server(isc-dhcp-server) 来提供 DHCP 服务。要“限制 IP 段”(即只给某个 IP 地址范围分配地址、或限制某些网段不能获取 IP),主要通过 subnet / range / pool 配置来实现。
下面按常见需求说明。
sudo apt update
sudo apt install isc-dhcp-server
配置文件一般在:
/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 domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;
}
✅ 效果:
192.168.1.100–200 会被分配subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.150;
range 192.168.1.180 192.168.1.200;
}
✅ 效果:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
host pc1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.101;
}
}
或结合 deny unknown-clients;:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
deny unknown-clients;
}
✅ 效果:
如果你有多个网卡:
interface eth0 → 192.168.1.0/24(允许)
interface eth1 → 192.168.2.0/24(禁止)
不写 subnet 192.168.2.0 即可。
sudo nano /etc/default/isc-dhcp-server
INTERFACESv4="eth0"
sudo systemctl restart isc-dhcp-server
sudo systemctl status isc-dhcp-server
查看分配情况:
cat /var/lib/dhcp/dhcpd.leases
❌ range 写错网段(必须属于 subnet)
❌ 子网掩码不一致
❌ 多个 subnet 重叠
如果你说的是:
可以告诉我你的具体场景,我可以给你更精确的配置。