mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Add ByPass via server VPN support
This commit is contained in:
parent
2160d47f4f
commit
5427b7a40c
3 changed files with 84 additions and 16 deletions
|
@ -1,12 +1,12 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (C) 2018-2019 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
|
||||
# Copyright (C) 2018-2023 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
|
||||
# Released under GPL 3. See LICENSE for the full terms.
|
||||
|
||||
START=99
|
||||
|
||||
USE_PROCD=1
|
||||
|
||||
EXTRA_COMMANDS="set_pihole backup_send backup_get backup_list set_vps_firewall get_openvpn_key set_gre_tunnel token"
|
||||
EXTRA_COMMANDS="set_pihole backup_send backup_get backup_list set_vps_firewall get_openvpn_key set_gre_tunnel token set_bypass_ips"
|
||||
|
||||
. /usr/lib/unbound/iptools.sh
|
||||
|
||||
|
@ -944,6 +944,22 @@ _set_lan_ip() {
|
|||
fi
|
||||
}
|
||||
|
||||
_set_bypass_ips() {
|
||||
local settings
|
||||
[ -z "$servername" ] && servername=$1
|
||||
bypassipv4s=$(ipset -q -o save list omr_dst_bypass_srv_vpn1 | awk '/add/ NF {print "\""$3"\""}' | tr '\n' ',' | sed 's/,$//')
|
||||
bypassipv6s=$(ipset -q -o save list omr6_dst_bypass_srv_vpn1 | awk '/add/ NF {print "\""$3"\""}' | tr '\n' ',' | sed 's/,$//')
|
||||
if [ "$bypassipv4s" != "" ] || [ "$bypassipv6s" != "" ]; then
|
||||
settings='{"ipv4s" : ['$bypassipv4s'],"ipv6s" : ['$bypassipv6s'],"intf" : "vpn1"}'
|
||||
result=$(_set_json "bypass" "$settings")
|
||||
fi
|
||||
}
|
||||
|
||||
set_bypass_ips() {
|
||||
config_load openmptcprouter
|
||||
config_foreach _set_bypass_ips server
|
||||
}
|
||||
|
||||
_set_vpn_ip() {
|
||||
local settings
|
||||
[ -z "$vps_config" ] && vps_config=$(_get_json "config")
|
||||
|
@ -997,7 +1013,7 @@ _set_client2client() {
|
|||
c2cid=$((c2cid+1))
|
||||
targetip=$(echo $lanip | awk -F '/' '{print $1}' | tr -d "\n")
|
||||
netmask=$(echo $lanip | awk -F '/' '{print $2}' | tr -d "\n")
|
||||
target=$(ipcalc.sh $targetip $netmask | grep NETWORK | awk -F '=' '{print $2}' | tr -d "\n")
|
||||
target=$(ipcalc.sh $targetip/$netmask | grep NETWORK | awk -F '=' '{print $2}' | tr -d "\n")
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set network.omr_client2client_${c2cid}=route
|
||||
set network.omr_client2client_${c2cid}.interface=omrvpn
|
||||
|
@ -2264,6 +2280,7 @@ _config_service() {
|
|||
config_foreach _get_lan_ip interface
|
||||
_set_lan_ip
|
||||
_set_sipalg
|
||||
_set_bypass_ips
|
||||
config_foreach _delete_client2client route
|
||||
if [ "$(uci -q get openmptcprouter.settings.vpn)" != "openvpn" ] && [ "$(echo "$vps_config" | jsonfilter -q -e '@.client2client.enabled')" == "true" ]; then
|
||||
_set_client2client
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue