最近项目有个需求,把移动服务器设备(Ubuntu14.04)安装4G模块,但如果连接有线时,可以自动切换到有线,以降低移动流量带来的费用。
以下是我实现的方法(经过一番痛苦的摸索)
1. 脚本/opt/AutoStartWiredNetwork.sh
#!/bin/bash
#设置访问博客园网关的route为有线网络的网关192.168.40.1 ip route add 42.121.252.0/24 via 192.168.40.1
#探测博客园是否可以访问,如果是,则将路由设置为有线网卡路由,否则,删除此网关(系统会自动使用移动网关) curl --interface eth0 -m 3 -R 3 -D- -o /dev/null -s cnblogs.com if [[ $? == 0 ]]; then /sbin/route add -net 0.0.0.0/0 netmask 0.0.0.0 gw 192.168.40.1 else /sbin/route del -net 0.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/0 netmask 0.0.0.0 gw 192.168.40.1 &
# 自动启动移动网络 (while :; do nmcli -t nm wwan on; sleep 1; done)&