在 Debian 上通过 ISC DHCP Server(isc-dhcp-server) 限制 MAC,常见做法有 白名单(只允许指定 MAC) 和 黑名单(禁止指定 MAC)。下面给你几种常用、可落地的方法。
isc-dhcp-server/etc/dhcp/dhcpd.confclass "allowed-mac" {
match hardware;
}
subclass "allowed-mac" 00:11:22:33:44:55;
subclass "allowed-mac" 00:aa:bb:cc:dd:ee;
subnet 192.168.1.0 netmask 255.255.255.0 {
pool {
range 192.168.1.100 192.168.1.200;
allow members of "allowed-mac";
}
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;
}
✅ 效果:
只有 subclass 中的 MAC 才能获取 IP,其余设备直接忽略。
class "blocked-mac" {
match hardware;
}
subclass "blocked-mac" 00:11:22:33:44:55;
subnet 192.168.1.0 netmask 255.255.255.0 {
pool {
range 192.168.1.100 192.168.1.200;
deny members of "blocked-mac";
}
}
✅ 被列出的 MAC 无法获取 IP
host bad_client {
hardware ethernet 00:11:22:33:44:55;
ignore booting;
}
⚠️ 不如 deny 灵活,不推荐大规模使用。
host server1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.10;
}
✅ 常用于服务器、打印机、AP 等设备
sudo systemctl restart isc-dhcp-server
查看状态:
sudo systemctl status isc-dhcp-server
✅ 正确:
00:11:22:33:44:55
❌ 错误:
00-11-22-33-44-55
sudo tail -f /var/log/syslog | grep dhcp
| 需求 | 推荐方式 |
|---|---|
| 只允许指定设备上网 | 白名单 subclass + allow |
| 禁止个别设备 | deny members of |
| 固定 IP | fixed-address |
| 企业/生产环境 | 白名单 + 固定 IP |
如果你愿意,我可以帮你:
只要告诉我使用场景即可。