在 Debian 里“限制 DHCP 客户端”通常有两种常见需求,我分别说明,你可以按实际场景选择。
如果你只想用静态 IP,可以直接禁用 DHCP。
编辑网卡配置:
sudo nano /etc/network/interfaces
示例(静态 IP):
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
然后重启网络:
sudo systemctl restart networking
✅ 效果:系统不再作为 DHCP 客户端
编辑 /etc/dhcpcd.conf(如果你用的是 dhcpcd):
sudo nano /etc/dhcpcd.conf
示例:
denyinterfaces wlan0
或只允许某个接口:
allowinterfaces eth0
重启:
sudo systemctl restart dhcpcd
在 /etc/dhcp/dhclient.conf 中限制:
sudo nano /etc/dhcp/dhclient.conf
示例:
nohook resolv.conf
nohook hostname
nohook default-route
或拒绝 DHCP 下发的 DNS:
supersede domain-name-servers 8.8.8.8, 1.1.1.1;
如果你是在 Debian 上运行 DHCP 服务器(isc-dhcp-server),可以限制哪些客户端能拿到 IP。
# /etc/dhcp/dhcpd.conf
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.50;
}
✅ 只有指定 MAC 能拿到固定 IP
❌ 未配置的 MAC 也能拿到普通 IP(除非进一步限制)
deny unknown-clients;
配合:
host pc1 {
hardware ethernet 00:11:22:33:44:55;
}
✅ 只有白名单 MAC 能获取 IP
❌ 其他设备完全无法 DHCP
subnet 192.168.10.0 netmask 255.255.255.0 {
interface eth0.10;
}
如果你是想防止局域网里有人乱开 DHCP 服务器:
sudo iptables -A INPUT -p udp --dport 67 -j DROP
ps aux | grep -E 'dhclient|dhcpcd|NetworkManager'
| 目标 | 方法 |
|---|---|
| 本机不用 DHCP | 静态 IP |
| 本机限制 DHCP 接口 | dhcpcd.conf |
| 本机限制 DNS/路由 | dhclient.conf |
| 限制局域网 DHCP 客户端 | isc-dhcp-server |
| 防非法 DHCP 服务器 | DHCP Snooping |
如果你能说明 你是客户端还是服务器、用的是什么网络管理工具(ifupdown / NetworkManager / systemd-networkd),我可以给你更精确的配置。