在 Ubuntu 上通过 DHCP(通常是ISC DHCP Server) 来“限制地址”,常见有几种含义和做法。下面按最常见需求给你说明。
适用于:只允许某一段 IP 通过 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.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;
}
意思是:
✅ 只分配 192.168.1.100 ~ 200
❌ 其他 IP 不分配
适用于:只允许公司设备上网
host pc1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.101;
}
或者更严格:
不写 range,只写 host
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
}
host pc1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.101;
}
✅ 只有列表里的 MAC 能拿到 IP
❌ 其他设备无法获取
ISC DHCP 不支持直接 deny MAC,但可以用“不分配”的方式:
host block1 {
hardware ethernet AA:BB:CC:DD:EE:FF;
fixed-address 192.168.1.254; # 无效或隔离IP
}
或配合防火墙(推荐):
sudo iptables -A INPUT -m mac --mac-source AA:BB:CC:DD:EE:FF -j DROP
如果你有多网卡:
sudo nano /etc/default/isc-dhcp-server
INTERFACESv4="eth0"
只在该网卡提供 DHCP。
default-lease-time 600;
max-lease-time 7200;
sudo systemctl restart isc-dhcp-server
查看状态:
sudo systemctl status isc-dhcp-server
✅ 企业环境
✅ 公共网络
如果你能说明:
我可以给你一套精确配置示例。