温馨提示×

Debian DHCP如何限IP段

小樊
45
2026-09-01 21:56:46
栏目: 智能运维

在 Debian 上,通常使用 ISC DHCP Server(isc-dhcp-server) 来提供 DHCP 服务。要“限制 IP 段”(即只给某个 IP 地址范围分配地址、或限制某些网段不能获取 IP),主要通过 subnet / range / pool 配置来实现。

下面按常见需求说明。


一、安装 DHCP 服务(如未安装)

sudo apt update
sudo apt install isc-dhcp-server

配置文件一般在:

/etc/dhcp/dhcpd.conf

二、限定只分配某个 IP 段(最常见)

示例:只允许 192.168.1.100 – 192.168.1.200

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, 8.8.4.4;
    default-lease-time 600;
    max-lease-time 7200;
}

✅ 效果:

  • 只有 192.168.1.100–200 会被分配
  • 其他 IP(如 .1–99、.201–254)不会自动分配

三、在一个子网中“排除”某些 IP(部分限段)

示例:分配 100–150 和 180–200,排除中间段

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.150;
    range 192.168.1.180 192.168.1.200;
}

✅ 效果:

  • 151–179 不会被分配

四、限制“哪些客户端能拿 IP”(MAC 白名单)

示例:只允许指定 MAC 地址

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;

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

或结合 deny unknown-clients;

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;
    deny unknown-clients;
}

✅ 效果:

  • 未登记 MAC 的客户端拿不到 IP

五、限制“某个 VLAN / 网段不能 DHCP”

如果你有多个网卡:

interface eth0 → 192.168.1.0/24(允许)
interface eth1 → 192.168.2.0/24(禁止)

方法 1:不在配置中写该 subnet

不写 subnet 192.168.2.0 即可。

方法 2:限制监听网卡

sudo nano /etc/default/isc-dhcp-server
INTERFACESv4="eth0"

六、配置后生效

sudo systemctl restart isc-dhcp-server
sudo systemctl status isc-dhcp-server

查看分配情况:

cat /var/lib/dhcp/dhcpd.leases

七、常见误区

range 写错网段(必须属于 subnet)
❌ 子网掩码不一致
❌ 多个 subnet 重叠


如果你说的是:

  • 限制某个 IP 段上网(防火墙)
  • DHCP + VLAN 限段
  • 用 dnsmasq 而不是 isc-dhcp

可以告诉我你的具体场景,我可以给你更精确的配置。

0