| 123456789101112131415161718192021222324252627282930313233343536 |
- #!/bin/sh
- set -eu
- umask 002
- : "${VPN_IP:?VPN_IP must be set to the VPN server address}"
- LOCAL_NET="${LOCAL_NET:-192.168.0.0/16}"
- DNS_SERVER="${DNS_SERVER:-8.8.8.8}"
- VPN_GW=$(ip route | awk '/^default/ { print $3; exit }')
- if [ -z "$VPN_GW" ]; then
- echo "No default gateway found" >&2
- exit 1
- fi
- echo "Saving gateway $VPN_GW"
- echo "Deleting default gateway"
- ip route del default
- echo "Routing only $VPN_IP through $VPN_GW"
- ip route replace "$VPN_IP" via "$VPN_GW"
- echo "Routing $LOCAL_NET through $VPN_GW"
- ip route replace "$LOCAL_NET" via "$VPN_GW"
- echo "nameserver $DNS_SERVER" > /etc/resolv.conf
- ip route
- echo "Starting openvpn"
- cd /vpn
- until openvpn --config vpn; do
- echo "Openvpn crashed, respawning"
- sleep 10
- done
|