我遇到了以下问题,非常需要您的帮助。
我正在实现一个小型服务器,使用 TCP 套接字接收来自端口 18999(仅示例)上的客户端请求。
当我通过路由器使用大量来自平板电脑的请求测试我的服务器时,
我遇到了 ARP 问题(?)
我的网络就像:
平板电脑 <-------> 无线路由器 <-------> 我的服务器 (LINUX)
问题:
1. 无法再连接到我的 Linux(telnet、ping vv..无法连接)
2. 我使用串行电缆连接到我的 Linux 机器,并
使用 Wiresharp(来自 Windows)捕获来自 Linux 的发送消息。
它说 Linux 每 3 秒不断发送
如下 ARP 消息:
xx:xx:99:77:ff:69 ff:ff:ff:ff:ff:ff ARP 60 谁有 192.168.10.2? 告诉 192.168.10.3
在上述消息中:
xx:xx:99:77:ff:69 我的 Linux MAC 地址
192.168.10.2 我的平板电脑地址
192.168.10.3 我的 Linux IP 地址
你能帮我找出问题所在吗?
或者告诉我如何检测问题并将网络恢复正常(也许重启 Linux,但我想检测问题并自动重启)
更新:
1. 如果平板电脑以正常速度向我的 LINUX 发送消息,则上述网络正常工作(但 48 小时后也会关闭)
2. 我从路由器上拔下 Linux 以太网电缆(RJ45)后,路由器再次工作。
3. 无线网络仍然有效(我可以从平板电脑浏览路由器页面)
4. 当我使用:
ifconfig 关闭
然后
ifconfig启动
,Linux重新启动(?????????)
答案1
听起来你想要某种机制来在网络中断时重新启动你的 Linux 机器。
我不会尝试在 Linux 机器上解决这个问题,因为你在连接它时遇到了问题,而是解决它在機器。
你可以以 root 身份运行:
while true ; do ping -i 2 -c 5 192.168.10.1 || shutdown -r now "lost networking" ; done
每当无法 ping 通路由器时,这都会相当粗暴地重新启动机器。如果路由器被拔掉,这会重新启动 Linux 机器。如果网线被扯断,这会重新启动 Linux 机器。
不过,你遇到的问题肯定有更好的解决方案。你的路由器需要固件更新吗?