50 lines
2.0 KiB
Bash
50 lines
2.0 KiB
Bash
#! /bin/bash
|
||||
|
|
# Niftiest Software – www.niftiestsoftware.com
|
|||
|
|
# Modified version by HTPC Guides – www.htpcguides.com
|
|||
|
|
echo VPNUSER: $VPNUSER
|
|||
|
|
if [[ "$(grep $VPNUSER /etc/iproute2/rt_tables)" == "" ]]; then
|
|||
|
|
sudo sh -c 'echo "1 deluge-user" >> /etc/iproute2/rt_tables'
|
|||
|
|
fi
|
|||
|
|
if [ "$1" == "reverse" ]; then
|
|||
|
|
VPNUSER="$2"
|
|||
|
|
printf "reverse table for ${VPNUSER}\n"
|
|||
|
|
ip route flush table ${VPNUSER}
|
|||
|
|
ip route replace default via 127.0.0.1 table ${VPNUSER}
|
|||
|
|
ip route flush cache
|
|||
|
|
exit 0
|
|||
|
|
fi
|
|||
|
|
#${VPNIF}="tun+"
|
|||
|
|
#VPNUSER="deluge-user"
|
|||
|
|
#VPNIP="10.15.0.*"
|
|||
|
|
printf "${LOCALIP}\n${NETIF}\n${VPNIP}\n${VPNIF}\n${P2PIP}\n${VPNUSER}\n"
|
|||
|
|
printf "Flush old ${VPNUSER} table\n"
|
|||
|
|
ip route flush table ${VPNUSER}
|
|||
|
|
|
|||
|
|
#printf "Flush Main Table(Revert VPN Changes) and restore default\n"
|
|||
|
|
#ip route flush table main
|
|||
|
|
#ip route add 10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.2 metric 100
|
|||
|
|
#ip route add 37.48.66.67 via 10.0.0.138 dev eth0 proto static metric 100
|
|||
|
|
#ip route add 169.254.0.0/16 dev eth0 proto static scope link metric 1000
|
|||
|
|
#ip route add default via 10.0.0.138 dev eth0 proto static metric 100
|
|||
|
|
|
|||
|
|
printf "Add rule for marked packets\n"
|
|||
|
|
if [[ $(ip rule list | grep -c ${MARK_ID}) == 0 ]]; then
|
|||
|
|
ip rule add from all fwmark ${MARK_ID} lookup ${VPNUSER}
|
|||
|
|
fi
|
|||
|
|
printf "Replace Default, Append Default, Flush cache\n"
|
|||
|
|
ip route replace default via ${P2PIP} table ${VPNUSER}
|
|||
|
|
#ip route append default via 127.0.0.1 dev lo table ${VPNUSER}
|
|||
|
|
for PUB_IP_ADDR in ${PUBIP[@]}; do
|
|||
|
|
echo "ip route add ${PUB_IP_ADDR}/32 via ${P2PIP} dev ${VPNIF} table ${VPNUSER}"
|
|||
|
|
ip route add ${PUB_IP_ADDR}/32 via ${P2PIP} dev ${VPNIF} table ${VPNUSER}
|
|||
|
|
done
|
|||
|
|
#ip route add 0.0.0.0/1 via ${VPNIP} dev ${VPNIF} table ${VPNUSER}
|
|||
|
|
#ip route add 128.0.0.0/1 via 10.15.0.125 table ${VPNUSER}
|
|||
|
|
#ip route add 10.15.0.1/32 via ${VPNIP} dev ${VPNIF} table ${VPNUSER}
|
|||
|
|
#ip route add ${P2PIP} dev ${VPNIF} proto kernel scope link src ${VPNIP} table ${VPNUSER}
|
|||
|
|
ip route flush cache
|
|||
|
|
|
|||
|
|
printf "run update-resolv-conf script to set VPN DNS\n"
|
|||
|
|
/etc/openvpn/update-resolv-conf
|
|||
|
|
|
|||
|
|
exit 0
|