在 Ubuntu 上“限制 DHCP 地址”通常有以下几种常见场景,下面分别说明(以 ISC DHCP Server 为例,Ubuntu 上最常见的 DHCP 服务)。
最简单的方式是只给一小段地址用于 DHCP。
编辑配置文件:
sudo nano /etc/dhcp/dhcpd.conf
示例:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.120;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;
}
✅ 效果:
只分配 192.168.1.100 ~ 120,其余 IP 不会自动分配。
host pc1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.101;
}
host pc2 {
hardware ethernet aa:bb:cc:dd:ee:ff;
fixed-address 192.168.1.102;
}
✅ 未在 host 中定义的设备:
rangeISC DHCP 不支持直接 deny MAC,但可以用技巧:
host block1 {
hardware ethernet 00:11:22:33:44:66;
fixed-address 192.168.1.254; # 不可用 IP
}
或使用 deny + class(高级):
class "blocked" {
match if binary-to-ascii(16,8,":",substring(hardware,1,6)) = "0:11:22:33:44:66";
}
pool {
deny members of "blocked";
range 192.168.1.100 192.168.1.200;
}
sudo nano /etc/default/isc-dhcp-server
INTERFACESv4="eth0"
default-lease-time 600;
max-lease-time 7200;
如果你用的是 dnsmasq:
dhcp-range=192.168.1.100,192.168.1.120,12h
dhcp-host=00:11:22:33:44:55,192.168.1.101
| 需求 | 方法 |
|---|---|
| 限制分配 IP 段 | range |
| 指定设备 IP | host + fixed-address |
| 只允许特定设备 | host + 无 range |
| 禁止某设备 | class + deny |
| 限制接口 | INTERFACES |
如果你能告诉我:
我可以给你一份可直接用的配置。