From 0ae4e7f5d87be7e8f777fe80f807d023dd97a916 Mon Sep 17 00:00:00 2001 From: Zeno Zeng Date: Fri, 26 Sep 2014 14:55:47 +0800 Subject: [PATCH] ip route del when -d --- install.sh | 2 +- vpn.sh | 36 +++++++++++++++++++++++++++++++++--- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index dff04be..f9dbd20 100755 --- a/install.sh +++ b/install.sh @@ -4,7 +4,7 @@ BASEDIR=$(dirname $0) mkdir -p /usr/local/lib/zjunet cp -rf $BASEDIR /usr/local/lib/zjunet echo "#!/bin/sh" > /usr/local/bin/zjunet -echo "/usr/local/lib/zjunet/zjunet.sh $@" >> /usr/local/bin/zjunet +echo '/usr/local/lib/zjunet/zjunet.sh "$@"' >> /usr/local/bin/zjunet chmod +x /usr/local/bin/zjunet echo "[INFO] Done." echo diff --git a/vpn.sh b/vpn.sh index ae66804..637e69a 100755 --- a/vpn.sh +++ b/vpn.sh @@ -21,18 +21,48 @@ # along with this program. If not, see # . +ip_route_del() { + count=$(ip route show $1 | wc -l) + if [ "${count}" -gt "0" ]; then + echo $1 + ip route del $1 + fi +} + set_up_routes() { echo "[INFO] Setting up ip route." - ip=$(ip route show 0/0 | cut -d " " -f 3) - gateway=$(ip route get 10.10.0.21 | grep via | awk '{print $3}') + devs_count=$(ip addr show | grep 'inet.*ppp' | grep ' 10.5.' | awk '{print $7}' | wc -l) + if [ "${devs_count}" -eq "0" ]; then + dev=$(ip route get 10.10.0.21 | head -n1 | awk '{print $5}') + + ip_route_del 10.0.0.0/8 + ip_route_del 58.196.192.0/19 + ip_route_del 58.196.224.0/20 + ip_route_del 58.200.100.0/24 + ip_route_del 210.32.0.0/20 + ip_route_del 210.32.128.0/19 + ip_route_del 210.32.160.0/21 + ip_route_del 210.32.168.0/22 + ip_route_del 210.32.172.0/23 + ip_route_del 210.32.176.0/20 + ip_route_del 222.205.0.0/17 + ip_route_del 10.5.1.0/24 + ip_route_del 10.10.0.0/24 + + ip route replace default via $gateway dev $dev + + ip route + return + fi + ip route replace 10.5.1.0/24 via $gateway # for LNS ip route replace 10.10.0.0/24 via $gateway # for DNS - case "$ip" in + case "$gateway" in 10.189.*) ;; 10.171.*)