From ed82e25e9de24ec872cccd71af5f41c069d030a3 Mon Sep 17 00:00:00 2001 From: Dmitry Fedotov Date: Mon, 8 Mar 2021 23:21:25 +0300 Subject: [PATCH] Exclude VPN server ip from new default route. --- scripts/vpn/l2tp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/scripts/vpn/l2tp b/scripts/vpn/l2tp index 06f458c..32217d0 100755 --- a/scripts/vpn/l2tp +++ b/scripts/vpn/l2tp @@ -7,6 +7,18 @@ print_help() { printf 'l2tp --vpn_name vpn-name [--connect|--disconnect|-c|-d]\n' } +find_vpn_ip() { + local vpn_name=$1 + + ip=$(cat ~/.local/share/vpns | grep ${vpn_name} | awk '{print $3}') + echo $ip +} + +find_gw_ip() { + ip=$(ip route | awk '/^default via/ {print $3; exit}') + echo $ip +} + connect() { local vpn_name=$1 echo "connecting (VPN Name: $1)..." @@ -14,6 +26,7 @@ connect() { sudo ipsec up ${vpn_name} echo "c ${vpn_name}" | sudo tee /var/run/xl2tpd/l2tp-control sleep 5 + sudo route add "$(find_vpn_ip ${vpn_name})" gw "$(find_gw_ip)" sudo route add default dev ppp0 } @@ -22,6 +35,7 @@ disconnect() { echo "disconnecting (VPN Name: ${vpn_name})..." sudo route del default dev ppp0 + sudo route del "$(find_vpn_ip ${vpn_name})" gw "$(find_gw_ip)" echo "d ${vpn_name}" | sudo tee /var/run/xl2tpd/l2tp-control sudo ipsec down ${vpn_name} } -- 2.39.5