根据互联网连接自动更改网关

根据互联网连接自动更改网关

我的 Debian 11 系统中有 2 个与不同互联网提供商的连接,我需要将 eth0 设置为默认连接,如果因任何原因断网,则更改为 eth1。之后,如果 eth0 恢复互联网连接,我将需要再次将该连接作为主连接。这可能吗?

答案1

是的,可以使用 Debian 的网络管理工具来完成

sudo apt-get update
sudo apt-get install ifmetric iproute2

创建 systemd 服务/etc/systemd/system/switch-internet.service


[Unit]
Description=Switch Internet Connection

[Service]
Type=simple
ExecStart=/path/to/your/script.sh
Restart=always

[Install]
WantedBy=multi-user.target

创建脚本并保存到您喜欢的位置

/path/to/your/script.sh


#!/bin/bash
while true; do
    # Check eth0 connectivity
    if ping -I eth0 -c 1 google.com &> /dev/null; then
        ifmetric eth0 0  # Set lower metric to prioritize eth0
        ifmetric eth1 1
    else
        ifmetric eth0 1  # Set higher metric to deprioritize eth0
        ifmetric eth1 0
    fi
    sleep 10  # Adjust the sleep interval as needed
done

启用并启动服务

sudo systemctl enable switch-internet.service
sudo systemctl start switch-internet.service

相关内容