最近项目有个需求,把移动服务器设备(Ubuntu14.04)安装4G模块,但如果连接有线时,可以自动切换到有线,以降低移动流量带来的费用。

以下是我实现的方法(经过一番痛苦的摸索)

1. 脚本/opt/AutoStartWiredNetwork.sh

#!/bin/bash

#设置访问博客园网关的route为有线网络的网关192.168.40.1
ip route add 42.121.252.0/ via 192.168.40.1

#探测博客园是否可以访问,如果是,则将路由设置为有线网卡路由,否则,删除此网关(系统会自动使用移动网关)
curl --interface eth0 -m -R -D- -o /dev/null -s cnblogs.com
if [[ $? == ]]; then
/sbin/route add -net 0.0.0.0/ netmask 0.0.0.0 gw 192.168.40.1
else
/sbin/route del -net 0.0.0.0/ netmask 0.0.0.0 gw 192.168.40.1
fi

2. 添加定时任务 sudo crontab -e

在最后添加一行 (每分钟执行一次脚本)

*/1 * * * * /opt/AutoStartWiredNetwork.sh

-------

3. 启动文件编辑

sudo gedit /etc/rc.local

# 添加默认路由
route add -net 0.0.0.0/ netmask 0.0.0.0 gw 192.168.40.1 & # 自动启动移动网络
(while :; do nmcli -t nm wwan on; sleep ; done)&
05-11 20:50