温馨提示×

ubuntu dhcp如何限制地址

小樊
39
2026-10-15 19:37:15
栏目: 智能运维

在 Ubuntu 上“限制 DHCP 地址”通常有以下几种常见场景,下面分别说明(以 ISC DHCP Server 为例,Ubuntu 上最常见的 DHCP 服务)。


一、限制 DHCP 分配的地址范围(地址池)

最简单的方式是只给一小段地址用于 DHCP。

编辑配置文件:

sudo nano /etc/dhcp/dhcpd.conf

示例:

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.100 192.168.1.120;
  option routers 192.168.1.1;
  option domain-name-servers 8.8.8.8;
}

✅ 效果:
只分配 192.168.1.100 ~ 120,其余 IP 不会自动分配。


二、绑定 MAC 地址(固定 IP / 白名单)

1️⃣ 只允许某些设备获取 IP(白名单)

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

host pc2 {
  hardware ethernet aa:bb:cc:dd:ee:ff;
  fixed-address 192.168.1.102;
}

✅ 未在 host 中定义的设备:

  • 不会自动获得 IP
  • 除非你给了 range

2️⃣ 禁止某些 MAC 地址(黑名单)

ISC DHCP 不支持直接 deny MAC,但可以用技巧:

host block1 {
  hardware ethernet 00:11:22:33:44:66;
  fixed-address 192.168.1.254;  # 不可用 IP
}

或使用 deny + class(高级):

class "blocked" {
  match if binary-to-ascii(16,8,":",substring(hardware,1,6)) = "0:11:22:33:44:66";
}
pool {
  deny members of "blocked";
  range 192.168.1.100 192.168.1.200;
}

三、限制某个网段或接口

只监听指定网卡

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

四、限制租期(变相限制地址使用)

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

五、使用 dnsmasq(轻量级 DHCP)

如果你用的是 dnsmasq:

dhcp-range=192.168.1.100,192.168.1.120,12h
dhcp-host=00:11:22:33:44:55,192.168.1.101

六、常见需求对应方案总结

需求 方法
限制分配 IP 段 range
指定设备 IP host + fixed-address
只允许特定设备 host + 无 range
禁止某设备 class + deny
限制接口 INTERFACES

如果你能告诉我:

  • 用的是 isc-dhcp-server 还是 dnsmasq
  • 想 限制范围 / 白名单 / 黑名单

我可以给你一份可直接用的配置。

0 踩