温馨提示×

ubuntu dhcp怎样限制用户

小樊
47
2026-10-07 00:51:54
栏目: 智能运维

在 Ubuntu 上通过 DHCP(通常是 isc-dhcp-server)限制用户,常见做法有几种,取决于你想“限制”的含义:


一、只允许指定设备获取 IP(白名单)

原理:只给 MAC 地址在列表中的设备分配 IP。

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 {
    option routers 192.168.1.1;
    option subnet-mask 255.255.255.0;
    deny unknown-clients;
}

host pc1 {
    hardware ethernet 00:11:22:33:44:55;
    fixed-address 192.168.1.10;
}

host pc2 {
    hardware ethernet AA:BB:CC:DD:EE:FF;
    fixed-address 192.168.1.11;
}

✅ 效果:

  • 白名单 MAC 才能获取 IP
  • 其他设备无法上网

二、禁止某些用户(黑名单)

原理:拒绝特定 MAC 地址

deny booting;
host bad-user {
    hardware ethernet 00:99:88:77:66:55;
    deny booting;
}

或更简单:

host block1 {
    hardware ethernet 00:99:88:77:66:55;
    fixed-address 192.168.1.200;
}
# 然后防火墙限制 192.168.1.200

三、限制 IP 租期(防止长期占用)

default-lease-time 600;
max-lease-time 7200;

四、限制可分配 IP 范围(控制用户数量)

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.120;
}

✅ 最多 21 个用户


五、结合防火墙进一步限制(推荐)

DHCP 只能管 IP,真正的“限制用户”建议配合:

  • ufw
  • iptables
  • VLAN / 802.1X

例如禁止未知 IP 上网:

sudo ufw deny from 192.168.1.0/24
sudo ufw allow from 192.168.1.10

六、如果用的是 dnsmasq(轻量级)

dhcp-host=00:11:22:33:44:55,192.168.1.10
dhcp-ignore=tag:!known

总结

需求 方法
只允许某些人上网 deny unknown-clients
禁止某人 黑名单 MAC
限制人数 range
更强控制 DHCP + 防火墙

如果你能说明:

  • Ubuntu 版本
  • 用 isc-dhcp 还是 dnsmasq
  • “限制用户”具体指什么(不能上网 / 限速 / 限时)

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

0 踩