ovpn-lb-socks5/script.sh.template
2020-05-29 19:46:23 -04:00

40 lines
1.5 KiB
Bash

#!/bin/sh
echo ============================== >> {{script_log_fp}}
env >> {{script_log_fp}}
iptable_check_add(){
iptables -C $@ 2>/dev/null || iptables -A $@
}
iptable_nat_check_add(){
iptables -t nat -C $@ 2>/dev/null || iptables -t nat -A $@
}
iptable_mangle_check_add(){
iptables -t mangle -C $@ 2>/dev/null || iptables -t mangle -A $@
}
# create route table if it does not exist
if [ $(cat /etc/iproute2/rt_tables | grep {{route_table_name}} | wc -l) -eq 0 ]; then
echo "{{route_table_id}} {{route_table_name}}" >> /etc/iproute2/rt_tables
fi
# create group if it does not exist
if [ $(getent group|grep {{route_table_name}} | wc -l) -eq 0 ]; then
groupadd {{route_table_name}}
fi
iptable_mangle_check_add OUTPUT -m owner --gid-owner {{route_table_name}} -j MARK --set-mark {{route_table_id}}
iptable_nat_check_add POSTROUTING -m owner --gid-owner {{route_table_name}} -o ${dev} -j MASQUERADE
# populate route table
ip route flush table {{route_table_name}}
ip route add ${route_vpn_gateway} dev ${dev} src ${ifconfig_local} table {{route_table_name}}
ip route add default via ${route_vpn_gateway} table {{route_table_name}}
# add vpn_gateway to main route table
ip route add ${route_vpn_gateway} dev ${dev} src ${ifconfig_local}
ip rule add fwmark {{route_table_id}} table {{route_table_name}} pref {{rule_pref}}
#ip rule add from ${ifconfig_local} table {{route_table_name}} pref {{rule_pref}}
iptable_check_add OUTPUT -m mark --mark {{route_table_id}} -j ACCEPT
exit 0