在 Debian 上通过 DHCP(通常是 ISC DHCP Server,即 isc-dhcp-server) 来“限制用户”,一般有几种常见场景。下面按最常见需求给你说明做法。
sudo apt update
sudo apt install isc-dhcp-server
sudo nano /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;
}
host allowed-pc1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.101;
}
host allowed-pc2 {
hardware ethernet AA:BB:CC:DD:EE:FF;
fixed-address 192.168.1.102;
}
✅ 效果:
DHCP 本身不直接支持“deny mac”,但可以用技巧:
host block-pc {
hardware ethernet 00:99:88:77:66:55;
fixed-address 192.168.1.1; # 通常是网关,导致不可用
}
或:
host block-pc {
hardware ethernet 00:99:88:77:66:55;
deny booting;
}
✅ 效果:该设备无法正常使用网络
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.110;
}
✅ 只分配 11 个 IP,超出无法获取
DHCP 只管“发 IP”,真正限制上网要用 iptables / nftables
例如只允许白名单 MAC:
iptables -A FORWARD -m mac --mac-source 00:11:22:33:44:55 -j ACCEPT
iptables -A FORWARD -j DROP
如果你用 dnsmasq:
sudo apt install dnsmasq
dhcp-host=00:11:22:33:44:55,192.168.1.101
dhcp-host=AA:BB:CC:DD:EE:FF,192.168.1.102
| 需求 | 推荐方式 |
|---|---|
| 只允许某些电脑 | DHCP + MAC 绑定 |
| 禁止某用户 | MAC 黑名单 |
| 精确控制上网 | DHCP + 防火墙 |
| 小型网络 | dnsmasq |
如果你能说明:
我可以给你更精确的配置示例。