在 Ubuntu 中,DHCP 服务通常由 ISC DHCP Server(isc-dhcp-server) 提供。默认情况下,DHCP 服务器监听以下端口:
⚠️ 重要说明:
DHCP 协议标准规定必须使用 UDP 67/68,如果你修改 DHCP 服务器监听端口,标准 DHCP 客户端将无法正常工作。通常只有在特殊场景(如中继、测试、非标准环境)才需要改端口。
下面分情况说明。
ISC DHCP Server 本身不直接支持修改端口参数,但可以通过:
dhcpd 的 -p 参数(部分版本支持)编辑服务启动参数:
sudo systemctl edit isc-dhcp-server
添加:
[Service]
ExecStart=
ExecStart=/usr/sbin/dhcpd -f -p 6767 -cf /etc/dhcp/dhcpd.conf
然后:
sudo systemctl daemon-reload
sudo systemctl restart isc-dhcp-server
✅ 这样 DHCP 服务器会监听 UDP 6767
⚠️ 客户端也必须连这个端口(非标准)
不改 dhcpd,而是用 iptables 转发:
sudo iptables -t nat -A PREROUTING -p udp --dport 6767 -j REDIRECT --to-port 67
这样:
如果你用的是 dnsmasq:
sudo nano /etc/dnsmasq.conf
修改:
dhcp-port=6767
重启:
sudo systemctl restart dnsmasq
如果你是指客户端端口(68),一般不建议改,除非做测试。
| 场景 | 建议 |
|---|---|
| 正常局域网 | ❌ 不要改 |
| DHCP 中继 | ✅ 用中继端口 |
| 安全/隐藏 | ✅ 用防火墙 |
| 测试 | ✅ 改 -p |
如果你能说明:
isc-dhcp-server 还是 dnsmasq我可以给你更精确的配置示例。