我有一个 Ubuntu 16.04 系统,用作 wifi 接入点和路由器,包括 DHCP 服务器(isc-dhcp-server)。USB wifi 卡有点不稳定,偶尔会重置,主机会认为它已断开连接并重新连接。发生这种情况时,DHCP 会停止工作,直到我手动执行/etc/init.d/isc-dhcp-server restart
。
唯一的日志消息来自dhcpd
。receive_packet failed on wlan4: Network is down
似乎 strace
表明守护进程正在继续select
,但没有看到任何新进来的数据包,就好像它正在监听连接到接口的“旧”实例的套接字。
日志显示,当接口恢复时,许多其他服务(ntpd、sshd、named 等)会重新启动,但 dhcpd 不会重新启动。它们之间有什么区别?有没有办法安排 dhcpd 在接口恢复时自动重新启动?
答案1
我在诗wlan4
节中加了一行/etc/network/interfaces
up /etc/init.d/isc-dhcp-server restart || true
不确定这是否是实现此目的的“正确”方法,但似乎可行。我通过拔下并重新连接 wifi 卡进行了测试,然后重新启动了 dhcpd。