最近項目有個需求,把移動服務器設備(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)&