背景
两个文章 看了就明白
Ubuntu 多网卡路由配置笔记(内网 + 外网同时通
可能有问题,以防万一可以按照个来恢复
bash
sudo ip route replace 192.168.1.0/24 dev eno8403 proto kernel scope link src <你的IP>
或者恢复脚本! 如下
误操作路由时,尤其是将内网路由改成 via
,会导致 SSH 掉线,远程无法连接。
本脚本用于在后台自动延迟恢复正确的内网路由配置,保障远程连接安全。
脚本内容(auto_restore_route.sh)
bash
#!/bin/bash
# 延迟时间(秒)
DELAY=60
# 内网网卡名称
NET_IF="eh0"
echo "[INFO] Auto route restore will run in $DELAY seconds..."
sleep "$DELAY"
# 获取当前 IP
IP_ADDR=$(ip -4 addr show "$NET_IF" | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
if [ -z "$IP_ADDR" ]; then
echo "[ERROR] Failed to get IP for interface $NET_IF"
exit 1
fi
echo "[INFO] Restoring route: ip route replace 192.168.1.0/24 dev $NET_IF proto kernel scope link src $IP_ADDR"
ip route replace 192.168.1.0/24 dev "$NET_IF" proto kernel scope link src "$IP_ADDR"
echo "[INFO] Route restored at $(date) with source IP: $IP_ADDR"
使用方法
- 保存脚本为
/usr/local/bin/auto_restore_route.sh
,并赋予执行权限:
bash
sudo chmod +x /usr/local/bin/auto_restore_route.sh
- 在准备执行风险命令前,在另一个 SSH 窗口启动该脚本:
bash
nohup /usr/local/bin/auto_restore_route.sh &
- 之后你可以尝试修改路由命令,比如:
bash
sudo ip route replace 192.168.1.0/24 via 192.168.1.1 dev eh0
- 如果因断线导致 SSH 失联,等待脚本自动恢复后即可重新连接。
可结合 systemd 或 cron 实现开机自动恢复