温馨提示×

ubuntu dhcp怎么限制网段

小樊
35
2026-09-10 02:05:08
栏目: 智能运维

在 Ubuntu 上“限制 DHCP 只分配某个网段”,通常是指配置 DHCP 服务器,使其只在指定子网(网段)内分配 IP。下面分常见场景说明。


一、使用 isc-dhcp-server(最常见)

1. 安装

sudo apt update
sudo apt install isc-dhcp-server

2. 修改配置文件

编辑:

sudo nano /etc/dhcp/dhcpd.conf

3. 限制网段示例

例如只分配 192.168.10.0/24

subnet 192.168.10.0 netmask 255.255.255.0 {
    range 192.168.10.100 192.168.10.200;
    option routers 192.168.10.1;
    option domain-name-servers 8.8.8.8;
}

只写这个 subnet,不写其他 subnet,就“限制”在该网段


4. 指定监听网卡(重要)

编辑:

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

或 Ubuntu 20.04+:

INTERFACES="eth0"

5. 重启服务

sudo systemctl restart isc-dhcp-server

二、使用 dnsmasq(轻量级)

1. 安装

sudo apt install dnsmasq

2. 配置网段

编辑:

sudo nano /etc/dnsmasq.conf
interface=eth0
dhcp-range=192.168.10.100,192.168.10.200,255.255.255.0,12h

✅ 只在 192.168.10.0/24 分配


3. 重启

sudo systemctl restart dnsmasq

三、只允许某些 MAC 或网段(进阶)

限制 MAC 地址

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

拒绝其他网段

ISC DHCP 本身不会跨网段分配,只要:

  • 不配置其他 subnet
  • 不启用 relay(DHCP Relay)

即可“天然限制”


四、防火墙层面限制(可选)

如果 DHCP 服务器有多网卡:

sudo ufw deny in on eth1 to any port 67

五、常见坑

❌ DHCP 没生效
✅ 检查网卡 IP 是否在该网段

❌ 分配了错误网段
✅ 删除多余的 subnet 配置

❌ 客户端拿不到 IP
journalctl -u isc-dhcp-server


如果你能告诉我:

  • Ubuntu 版本
  • 用的是 isc-dhcp-server 还是 dnsmasq
  • 单网卡还是多网卡

我可以给你精确配置示例

0