From: Dmitry Fedotov Date: Mon, 8 Mar 2021 20:21:25 +0000 (+0300) Subject: Exclude VPN server ip from new default route. X-Git-Url: https://git.dmfe.net/?a=commitdiff_plain;h=ed82e25e9de24ec872cccd71af5f41c069d030a3;p=dotfiles Exclude VPN server ip from new default route. --- 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} }