Ubuntu检测到无网络连接1分钟后,自动重启网卡

之前说过家里的Ubuntu服务器总是莫名抽风网络断开,修改了lcp-echo-failure和lcp-echo-interval参数后虽然掉网频次少了很多,但是仍然会纯在潜在的一个月掉一次的情况,这对线上服务的影响还是非常大的:

ubuntu 总是自动断网 Ubuntu网络频繁掉线解决方案

今天想到一个另辟蹊径的方法,掉网是因为ADSL服务器没有给回echo-reply信号,UBuntu便会认为网络已经出了问题,就会断开网络。导致服务器失联~~,物理的解决办法便是重插WiFi或网线端口,那么我们给他设置个命令,当检测到网络断开1分钟后,便自动重启网卡,是不是也同样能够覆盖到解决这个问题?

办法也很简单,以宝塔面板为例:

  1. 在宝塔面板的首页,找到并点击“计划任务”功能。
  2. 任务名称:可以自定义,例如“重启网络接口”。
  3. 任务类型:选择“Shell脚本”。
  4. 执行周期:根据你的需求设置。如果你希望每分钟检查一次网络连接状态,可以选择“每分钟”。
  5. 脚本内容:输入以下脚本,该脚本会检查网络连接并在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
喜欢就支持一下吧
点赞1 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容