温馨提示×

debian dhcp怎样限制用户

小樊
45
2026-09-29 00:33:21
栏目: 智能运维

在 Debian 上通过 DHCP(通常是 ISC DHCP Server,即 isc-dhcp-server) 来“限制用户”,一般有几种常见场景。下面按最常见需求给你说明做法。


一、只允许指定设备上网(MAC 白名单)

1. 安装 DHCP 服务

sudo apt update
sudo apt install isc-dhcp-server

2. 编辑配置文件

sudo nano /etc/dhcp/dhcpd.conf

3. 定义一个子网,并只允许特定 MAC

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;
}

✅ 效果:

  • 只有列出的 MAC 能拿到 IP
  • 其他设备拿不到地址(或拿不到可用地址)

二、禁止某些 MAC(MAC 黑名单)

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;
}

✅ 效果:该设备无法正常使用网络


三、限制 IP 数量(防私自接路由)

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

五、Debian + dnsmasq(更简单的方案)

如果你用 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

如果你能说明:

  • 用的是 isc-dhcp 还是 dnsmasq
  • 想限制的是 MAC / IP / 上网行为

我可以给你更精确的配置示例。

0 踩