[教學]利用一個shell script更改VPN連線

由 hanzo 在 2007-04-05 22:07 發表

通常因為工作的需要會以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

瀏覽次數至09年2月: 
2831
Drupal theme by Kiwi Themes.