温馨提示×

Debian DHCP如何限制MAC

小樊
32
2026-07-30 10:31:26
栏目: 智能运维

在 Debian 上通过 ISC DHCP Server(isc-dhcp-server) 限制 MAC,常见做法有 白名单(只允许指定 MAC)黑名单(禁止指定 MAC)。下面给你几种常用、可落地的方法。


一、环境说明

  • 系统:Debian 10/11/12
  • DHCP 服务:isc-dhcp-server
  • 配置文件路径:
    • /etc/dhcp/dhcpd.conf

二、只允许指定 MAC(白名单,最常用)

1️⃣ 定义 MAC 类(class)

class "allowed-mac" {
    match hardware;
}

2️⃣ 将允许的 MAC 加入该类

subclass "allowed-mac" 00:11:22:33:44:55;
subclass "allowed-mac" 00:aa:bb:cc:dd:ee;

3️⃣ 在 subnet 中只允许该类

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,其余设备直接忽略。


三、禁止指定 MAC(黑名单)

方法 1:使用 deny(推荐)

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


方法 2:直接忽略(较老方式)

host bad_client {
    hardware ethernet 00:11:22:33:44:55;
    ignore booting;
}

⚠️ 不如 deny 灵活,不推荐大规模使用。


四、给指定 MAC 固定 IP(可选)

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

✅ 常用于服务器、打印机、AP 等设备


五、重启 DHCP 服务(必须)

sudo systemctl restart isc-dhcp-server

查看状态:

sudo systemctl status isc-dhcp-server

六、常见错误排查

1️⃣ MAC 地址格式

✅ 正确:

00:11:22:33:44:55

❌ 错误:

00-11-22-33-44-55

2️⃣ 日志查看

sudo tail -f /var/log/syslog | grep dhcp

七、总结建议

需求 推荐方式
只允许指定设备上网 白名单 subclass + allow
禁止个别设备 deny members of
固定 IP fixed-address
企业/生产环境 白名单 + 固定 IP

如果你愿意,我可以帮你:

  • ✅ 按 一个完整 dhcpd.conf 示例 直接给你
  • ✅ 配合 交换机 / VLAN / 防火墙 做更严格管制
  • ✅ 改成 Kea DHCP(现代替代 ISC)

只要告诉我使用场景即可。

0