之前说过家里的Ubuntu服务器总是莫名抽风网络断开,修改了lcp-echo-failure和lcp-echo-interval参数后虽然掉网频次少了很多,但是仍然会纯在潜在的一个月掉一次的情况,这对线上服务的影响还是非常大的:
今天想到一个另辟蹊径的方法,掉网是因为ADSL服务器没有给回echo-reply信号,UBuntu便会认为网络已经出了问题,就会断开网络。导致服务器失联~~,物理的解决办法便是重插WiFi或网线端口,那么我们给他设置个命令,当检测到网络断开1分钟后,便自动重启网卡,是不是也同样能够覆盖到解决这个问题?
办法也很简单,以宝塔面板为例:
- 在宝塔面板的首页,找到并点击“计划任务”功能。
- 任务名称:可以自定义,例如“重启网络接口”。
- 任务类型:选择“Shell脚本”。
- 执行周期:根据你的需求设置。如果你希望每分钟检查一次网络连接状态,可以选择“每分钟”。
- 脚本内容:输入以下脚本,该脚本会检查网络连接并在1分钟内无响应时重启网络接口。
#!/bin/bash
# 检查网络连接,如果无响应则重启网络接口
if ! ping -c 1 -W 1 8.8.8.8; then
# 重启网络接口,这里以eth0为例,您需要替换为您的实际网络接口名称
ifdown eth0 && ifup eth0
fi
注意,这里需要将eth0替换为你的实际网络接口名称。可以通过运行ifconfig或ip addr命令来查找网络接口名称。
如果有两个网卡(有线和WiFi,可以用下边这个脚本)
#!/bin/bash
# 检查网络连接,如果无响应则重启网络接口
ping -c 1 -W 1 8.8.8.8 > /dev/null 2>&1
if [ $? -ne 0 ]; then
# 重启网络接口
nmcli device set 第一个网卡名称 down && nmcli device set 第一个网卡名称 up
nmcli device set 第二个网卡名称 down && nmcli device set 第二个网卡名称 up
fi
这个脚本使用 nmcli 工具来管理网络接口,确保你的系统已经安装了NetworkManager。
查看是否安装了NetworkManager
systemctl status NetworkManager
如果NetworkManager已经安装并正在运行,终端会返回它的状态信息。如果系统提示“命令未找到”或者类似的信息,那么NetworkManager可能没有安装。
© 版权声明
THE END
暂无评论内容