欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > ubuntu检测断网后自动重启网卡

ubuntu检测断网后自动重启网卡

2025/2/13 6:20:13 来源:https://blog.csdn.net/road_of_god/article/details/145579532  浏览:    关键词:ubuntu检测断网后自动重启网卡

以下是实现Ubuntu在检测到网络中断时自动重启NetworkManager服务的步骤:

### 1. 创建监控脚本
保存以下内容为`/usr/local/bin/network-restart.sh`:

```bash
#!/bin/bashTARGET="8.8.8.8"  # 检测目标,可替换为可靠IP或域名
FAIL_THRESHOLD=3   # 连续失败次数阈值
INTERVAL=5         # 正常检测间隔(秒)
FAIL_INTERVAL=60   # 重启后等待时间(秒)fail_count=0while true; doif ping -c 2 -W 1 "$TARGET" &>/dev/null; thenfail_count=0sleep $INTERVALelse((fail_count++))if [ $fail_count -ge $FAIL_THRESHOLD ]; thenecho "$(date): 网络中断,重启NetworkManager..."systemctl restart NetworkManager.servicefail_count=0sleep $FAIL_INTERVALelsesleep $INTERVALfifi
done
```

赋予执行权限:

```bash
sudo chmod +x /usr/local/bin/network-restart.sh
```

### 2. 创建Systemd服务
创建文件`/etc/systemd/system/network-restart-monitor.service`,内容如下:

```ini
[Unit]
Description=Network Restart Monitor
After=network.target[Service]
ExecStart=/usr/local/bin/network-restart.sh
Restart=always
User=root[Install]
WantedBy=multi-user.target
```

### 3. 启用并启动服务

```bash
sudo systemctl daemon-reload
sudo systemctl enable network-restart-monitor.service
sudo systemctl start network-restart-monitor.service
```

### 4. 验证服务状态

```bash
systemctl status network-restart-monitor.service
```

### 配置说明:
- **目标调整**:修改脚本中的`TARGET`为更可靠的服务器(如你的路由器IP)。
- **阈值调整**:通过`FAIL_THRESHOLD`设置连续失败次数,避免误判。
- **日志查看**:使用`journalctl -u network-restart-monitor.service`查看服务日志。

### 注意事项:
- 确保脚本中的`systemctl`路径正确(通常为`/usr/bin/systemctl`)。
- 若企业网络有防火墙限制,建议使用内网可达地址作为检测目标。
- 频繁网络抖动可能导致服务重启次数过多,建议适当增大`FAIL_INTERVAL`。

此方案通过系统级服务实现持续监控,在保持低资源占用的同时确保网络可靠性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com