mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Fix and add automatic LAN as ifname source for proxy
This commit is contained in:
parent
2feffb2c1e
commit
79380e9c83
3 changed files with 31 additions and 8 deletions
|
@ -1,4 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
. /lib/functions.sh
|
||||||
|
. /lib/functions/network.sh
|
||||||
|
|
||||||
for schedule_bin in /usr/share/omr/schedule.d/*; do
|
for schedule_bin in /usr/share/omr/schedule.d/*; do
|
||||||
[ -x "$schedule_bin" ] && (
|
[ -x "$schedule_bin" ] && (
|
||||||
|
|
|
@ -137,19 +137,34 @@ restart_omrtracker() {
|
||||||
sleep 10
|
sleep 10
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set_lan_ips() {
|
||||||
|
config_get ip4table "$1" ip4table
|
||||||
|
config_get device "$1" device
|
||||||
|
config_get proto "$1" proto
|
||||||
|
if [ "$ip4table" = "lan" ] && [ -n "$device" ] && ([ "$proto" = "dhcp" ] || [ "$proto" = "static" ]); then
|
||||||
|
[ -z "$(uci -q get shadowsocks-libev.ss_rules.ifnames | grep $device)" ] && {
|
||||||
|
uci -q add_list shadowsocks-libev.ss_rules.ifnames="$device"
|
||||||
|
uci -q add_list shadowsocks-rust.ss_rules.ifnames="$device"
|
||||||
|
}
|
||||||
|
elif [ -n "$device" ] && [ -n "$(uci -q get shadowsocks-libev.ss_rules.ifnames | grep $device)" ]; then
|
||||||
|
uci -q del_list shadowsocks-libev.ss_rules.ifnames="$device"
|
||||||
|
uci -q del_list shadowsocks-rust.ss_rules.ifnames="$device"
|
||||||
|
fi
|
||||||
|
}
|
||||||
config_load network
|
config_load network
|
||||||
config_foreach restart_omrtracker interface
|
config_foreach restart_omrtracker interface
|
||||||
|
config_foreach set_lan_ips interface
|
||||||
mutlipath_fix() {
|
uci -q commit shadowsocks-libev.ss_rules
|
||||||
|
uci -q commit shadowsocks-rust.ss_rules
|
||||||
|
multipath_fix() {
|
||||||
config_get multipath "$1" multipath
|
config_get multipath "$1" multipath
|
||||||
[ "$multipath" != "off" ] && return
|
[ "$multipath" != "off" ] && return
|
||||||
interface="$(ifstatus $1 | jsonfilter -q -e '@.l3_device' | tr -d '\n')"
|
interface="$(ifstatus $1 | jsonfilter -q -e '@.l3_device' | tr -d '\n')"
|
||||||
[ -n "$interface"] && [ -z "$(multipath $interface | grep deactivated)" ] && /etc/init.d/mptcp reload $interface 2>&1 >/dev/null
|
[ -n "$interface" ] && [ -z "$(multipath $interface | grep deactivated)" ] && /etc/init.d/mptcp reload $interface 2>&1 >/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
config_load network
|
config_load network
|
||||||
config_foreach multipath_fix interface
|
config_foreach multipath_fix interface
|
||||||
|
|
||||||
if [ -f /etc/init.d/shadowsocks-libev ] && [ "$(uci -q get shadowsocks-libev.sss0.disabled)" != "1" ] && [ "$(uci -q get shadowsocks-libev.sss0.key)" != "" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "192.18.1.3" ] && [ "$(pgrep -f omr-tracker-ss)" = "" ] && [ "$(pgrep -f '/etc/init.d/omr-tracker')" = "" ]; then
|
if [ -f /etc/init.d/shadowsocks-libev ] && [ "$(uci -q get shadowsocks-libev.sss0.disabled)" != "1" ] && [ "$(uci -q get shadowsocks-libev.sss0.key)" != "" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "192.18.1.3" ] && [ "$(pgrep -f omr-tracker-ss)" = "" ] && [ "$(pgrep -f '/etc/init.d/omr-tracker')" = "" ]; then
|
||||||
_log "Can't find omr-tracker-ss for Shadowsocks libev, restart omr-tracker..."
|
_log "Can't find omr-tracker-ss for Shadowsocks libev, restart omr-tracker..."
|
||||||
/etc/init.d/omr-tracker restart 2>&1 >/dev/null
|
/etc/init.d/omr-tracker restart 2>&1 >/dev/null
|
||||||
|
|
|
@ -1,9 +1,15 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
bypassipvs4s=$(ipset -o save list omr_dst_bypass_srv_vpn1_4)
|
bypassipvs4s=$(ipset -o save list omr_dst_bypass_vpn1_4 2>/dev/null)
|
||||||
[ -z "$bypassipvs4s" ] && bypassipv4s=$(nft -j list set inet fw4 "omr_dst_bypass_srv_vpn1_4" | jsonfilter -e @.nftables[1].set.elem[*].prefix | awk '{gsub(/"/,"",$3);gsub(/,/,"/",$3); print $3 $5}')
|
[ -z "$bypassipvs4s" ] && {
|
||||||
bypassipvs6s=$(ipset -o save list omr_dst_bypass_srv_vpn1_6)
|
ipv4set=$(nft -j list set inet fw4 "omr_dst_bypass_vpn1_4" 2>/dev/null)
|
||||||
[ -z "$bypassipvs6s" ] && bypassipv6s=$(nft -j list set inet fw4 "omr_dst_bypass_srv_vpn1_6" | jsonfilter -e @.nftables[1].set.elem[*].prefix | awk '{gsub(/"/,"",$3);gsub(/,/,"/",$3); print $3 $5}')
|
[ -n "$ipv4set" ] && bypassipv4s=$(echo "$ipv4set" | jsonfilter -e @.nftables[1].set.elem[*].prefix | awk '{gsub(/"/,"",$3);gsub(/,/,"/",$3); print $3 $5}')
|
||||||
|
}
|
||||||
|
bypassipvs6s=$(ipset -o save list omr_dst_bypass_vpn1_6 2>/dev/null)
|
||||||
|
[ -z "$bypassipvs6s" ] && {
|
||||||
|
ipv6set=$(nft -j list set inet fw4 "omr_dst_bypass_vpn1_6" 2>/dev/null)
|
||||||
|
[ -n "$ipv6set" ] && bypassipv6s=$(echo "$ipv6set" | jsonfilter -e @.nftables[1].set.elem[*].prefix | awk '{gsub(/"/,"",$3);gsub(/,/,"/",$3); print $3 $5}')
|
||||||
|
}
|
||||||
#"
|
#"
|
||||||
vpnipv4md5=$(echo "${bypassipv4s}" | md5sum | awk '{print $1}' | tr -d "\n")
|
vpnipv4md5=$(echo "${bypassipv4s}" | md5sum | awk '{print $1}' | tr -d "\n")
|
||||||
vpnipv6md5=$(echo "${bypassipv6s}" | md5sum | awk '{print $1}' | tr -d "\n")
|
vpnipv6md5=$(echo "${bypassipv6s}" | md5sum | awk '{print $1}' | tr -d "\n")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue