上脚本

#!/bin/bash

# 目标网关
GW1="192.168.3.8"
GW2="192.168.3.2"

# 网卡名称(你的 LXC 为 eth0)
IFACE="eth0"

# 读取当前默认网关
CURRENT_GW=$(ip route | awk '/default/ {print $3}')

echo "Current gateway: $CURRENT_GW"

# 选择切换目标
if [ "$CURRENT_GW" = "$GW1" ]; then
    NEW_GW="$GW2"
else
    NEW_GW="$GW1"
fi

echo "Switching default gateway to: $NEW_GW"

# 删除旧的默认路由(可能存在多个)
ip route delete default 2>/dev/null

# 添加新的默认路由
ip route add default via "$NEW_GW" dev "$IFACE" onlink

# 更新 DNS(覆盖 resolv.conf,但保留 PVE 的约定格式)
cat > /etc/resolv.conf <<EOF
# --- BEGIN PVE ---
search au92.com
nameserver $NEW_GW
# --- END PVE ---
EOF

echo "DNS switched to: $NEW_GW"

echo "Done."

使用说明

vi switch-gw.sh

填入上边的shell内容

chmod +x switch-gw.sh
./switch-gw.sh

验证方法:

ip route

cat /etc/resolv.conf

也可以traceroute 8.8.8.8看第一跳是否为切换的新网关