Ubuntu 17.04下ISC-DHCP-Server启动失败:未配置监听任何接口
我之前在Ubuntu 17.04上配置ISC-DHCP-Server时也踩过一模一样的坑,结合你贴出来的配置信息,咱们一步步排查解决:
1. 先确认目标网络接口是否正常启用
首先得确保enp2s0接口真的处于正常运行状态——有时候静态IP配置可能没生效,导致服务找不到接口。你可以执行这条命令查看接口状态:
ip addr show enp2s0
如果输出里看不到inet 10.90.90.5/24的相关信息,说明接口没正确启动,手动启动试试:
sudo ifup enp2s0
另外,你在接口配置里加的up service isc-dhcp-server restart可能会有问题:接口还没完全就绪就重启服务,容易导致服务抓不到接口。建议先把这行注释掉,等接口稳定后再手动操作服务。
2. 修正/etc/default/isc-dhcp-server的接口配置
Ubuntu 17.04的ISC-DHCP-Server版本已经开始区分IPv4和IPv6的接口配置了,你当前用的INTERFACES="enp2s0"可能不够明确,建议改成:
INTERFACESv4="enp2s0"
保存文件后,重启服务试试:
sudo systemctl restart isc-dhcp-server
3. 验证dhcpd.conf的配置合法性
有时候配置文件里的隐性语法错误会导致服务无法识别子网,进而找不到要监听的接口。用自带的工具检查一下:
sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf
如果输出没有报错,说明配置语法没问题;如果有错误,按照提示修正即可。你的子网配置看起来是匹配的(接口IP属于10.90.90.0/24子网),这部分大概率没问题,但还是要确认一下。
4. 查看服务日志找深层原因
如果上面的步骤都没解决问题,就去系统日志里找更详细的错误线索:
sudo journalctl -u isc-dhcp-server
日志会明确告诉你失败原因——比如接口不存在、子网不匹配、权限不足等。举个例子,如果日志显示“no subnet declaration for enp2s0 (10.90.90.5)”,那就是子网配置和接口IP不对应,但你的情况里应该不会出现这个问题。
最后验证服务状态
完成调整后,启动服务并确认状态:
sudo systemctl start isc-dhcp-server sudo systemctl status isc-dhcp-server
如果状态显示active (running),就说明问题解决了。
内容的提问来源于stack exchange,提问作者mr_pool_404

