[教學]利用一個shell script更改VPN連線
通常因為工作的需要會以VPN的方式連回公司,但如果我們用MacOS的VPN連接上公司的VPN以後,就會無法上網,只能使用公司內部網路,主要的原因在於當我們撥接上VPN之後電腦上的default gateway被改公司VPN的IP
以下介紹一個簡單的shell script可以解決這個問題!
我們可以用Unix底下的vi建立一個檔案,例如檔名為vpn.sh,內如如下:
#!/bin/sh
OWN=`id | cut -c5`
#IP3G這裡是指中華電信3G撥上網的IP,如果是別家的3G這裡設定要改
IP3G=`ifconfig| grep 10.64 | awk '{print $2}'`
#IPVPN這裡設定公司VPN的IP位置
IPVPN="210.211.212.213"
#VPNLAN這裡設定公司內部的網段
VPNLAN="192.168.0.0/16"
DEFAULTGW這裡設定在家裡的Default gateway位置
DEFAULTGW="192.168.1.1"
if [ "$OWN" -ne 0 ] ; then
echo "Can't run this program (you must be root)."
exit 0
fi
case "$1" in
3g)
route delete default $IPVPN
route add default $IP3G
route add -net $VPNLAN $IPVPN
;;
home)
route delete default $IPVPN
route add default $DEFAULTGW
route add -net $VPNLAN $IPVPN
;;
*)
echo "Usage: $0 {3g|home}"
exit 1
esac
exit 0
執行的時候只要輸入sudo ./vpn.sh 3g or home即可,如果把vpn.sh放在/bin底下,可以不用執行./直接sudo vpn.sh home or 3g即可
PS.存檔後記得chmod 755 vpn.sh,然後把vpn.sh放在一個PATH讀得到的地方,例如/bin


最新回應
2 分鐘 41 秒前
5 分鐘 18 秒前
7 分鐘 40 秒前
19 分鐘 15 秒前
26 分鐘 28 秒前
44 分鐘 2 秒前
49 分鐘 18 秒前
1 小時 53 秒前
1 小時 33 分鐘前
1 小時 44 分鐘前