智享教程网
白蓝主题五 · 清爽阅读
首页  > 日常经验

动态网关设置:家庭网络也能灵活切换

家里装了两条宽带,一条是电信,一条是联通。平时用电信上网,但看视频时发现联通的线路更流畅。每次手动改网关地址太麻烦,后来干脆配了个支持动态网关设置的路由器,问题一下子解决了。

什么是动态网关设置

简单说,就是让设备能根据网络状况或规则,自动切换默认网关。不像传统设置里只能写死一个网关地址,动态设置可以根据策略变通。比如按时间段、目标地址,甚至当前网络延迟来决定走哪条路。

像我这种多宽带接入的场景,特别实用。白天工作用电信线路传文件,晚上追剧自动切到联通线路看4K视频,不用动一根线。

实际配置示例

我家用的是 OpenWrt 系统的路由器,支持通过策略路由实现动态网关。先在系统里添加两条默认路由,分别指向两个运营商的网关:

ip route add default via 192.168.1.1 dev eth0 table 100
ip route add default via 192.168.2.1 dev eth1 table 200

然后设置规则,让特定流量走不同表:

ip rule add from 192.168.1.100 lookup 100
ip rule add to 114.114.114.114 lookup 200

上面第一行意思是来自 IP 为 192.168.1.100 的设备走电信线路,第二行是访问 114.114.114.114(DNS)时强制走联通,避免某些 CDN 解析不准。

结合监控脚本更智能

光静态分配还不够。我写了个小脚本,每分钟 ping 一次常用网站,检测延迟和丢包率。一旦发现当前线路连续三次超时,就自动把默认路由切到备用线路。

#!/bin/sh
GATEWAY_A=192.168.1.1
GATEWAY_B=192.168.2.1
CURRENT=$(ip route | grep '^default' | awk '{print $3}')

if ! ping -c 3 -W 1 www.baidu.com > /dev/null; then
    if [ "$CURRENT" = "$GATEWAY_A" ]; then
        ip route replace default via $GATEWAY_B
    else
        ip route replace default via $GATEWAY_A
    fi
fi

这个脚本跑在路由器后台,配合 cron 每分钟执行一次。虽然不能秒级切换,但对日常使用完全够用。

现在家里的智能电视、手机、电脑都不用手动设置,谁需要稳定就指定走哪条线,其他人照常使用。偶尔电信抽风,刷网页卡顿,过一分钟再试就好了,根本感觉不到切换过程。

如果你也有多条宽带,或者对网络质量有不同需求,动态网关设置确实值得一试。不用换硬件,只要改改配置,就能让网络更懂你。”}