luci-app-passwall: sync upstream

last commit: c14a0544b7
This commit is contained in:
gitea-action 2024-11-14 23:30:23 +08:00
parent b302eb1c61
commit a699a82434
2 changed files with 54 additions and 44 deletions

View File

@ -743,12 +743,14 @@ add_firewall_rule() {
ipset -! create $IPSET_BLOCKLIST6 nethash family inet6 maxelem 1048576 timeout 172800
#分流规则的IP列表
local node_protocol=$(config_n_get $TCP_NODE protocol)
process_shunt_rules() {
local _node=$1
local node_protocol=$(config_n_get $_node protocol)
if [ "$node_protocol" = "_shunt" ]; then
local default_node_id=$(config_n_get $TCP_NODE default_node "_direct")
local default_node_id=$(config_n_get $_node default_node "_direct")
local shunt_ids=$(uci show $CONFIG | grep "=shunt_rules" | awk -F '.' '{print $2}' | awk -F '=' '{print $1}')
for shunt_id in $shunt_ids; do
local _node_id=$(config_n_get $TCP_NODE $shunt_id "nil")
local _node_id=$(config_n_get $_node $shunt_id "nil")
[ "$_node_id" != "nil" ] && {
[ "$_node_id" = "_default" ] && _node_id=$default_node_id
if [ "$_node_id" = "_direct" ]; then
@ -763,6 +765,9 @@ add_firewall_rule() {
}
done
fi
}
[ "$TCP_NODE" ] && process_shunt_rules $TCP_NODE
[ "$UDP_NODE" ] && [ "$TCP_UDP" = "0" ] && process_shunt_rules $UDP_NODE
cat $RULES_PATH/chnroute | tr -s '\n' | grep -v "^#" | sed -e "/^$/d" | sed -e "s/^/add $IPSET_CHN &/g" -e "s/$/ timeout 0/g" | awk '{print $0} END{print "COMMIT"}' | ipset -! -R
cat $RULES_PATH/proxy_ip | tr -s '\n' | grep -v "^#" | sed -e "/^$/d" | grep -E "(\.((2(5[0-5]|[0-4][0-9]))|[0-1]?[0-9]{1,2})){3}" | sed -e "s/^/add $IPSET_BLACKLIST &/g" -e "s/$/ timeout 0/g" | awk '{print $0} END{print "COMMIT"}' | ipset -! -R
@ -1228,7 +1233,7 @@ del_firewall_rule() {
destroy_ipset $IPSET_LANLIST
destroy_ipset $IPSET_VPSLIST
#destroy_ipset $IPSET_SHUNTLIST
destroy_ipset $IPSET_SHUNTLIST
#destroy_ipset $IPSET_GFW
#destroy_ipset $IPSET_CHN
#destroy_ipset $IPSET_BLACKLIST
@ -1237,7 +1242,7 @@ del_firewall_rule() {
destroy_ipset $IPSET_LANLIST6
destroy_ipset $IPSET_VPSLIST6
#destroy_ipset $IPSET_SHUNTLIST6
destroy_ipset $IPSET_SHUNTLIST6
#destroy_ipset $IPSET_GFW6
#destroy_ipset $IPSET_CHN6
#destroy_ipset $IPSET_BLACKLIST6

View File

@ -829,12 +829,14 @@ add_firewall_rule() {
gen_nftset $NFTSET_SHUNTLIST6 ipv6_addr "2d" 0
#分流规则的IP列表
local node_protocol=$(config_n_get $TCP_NODE protocol)
process_shunt_rules() {
local _node=$1
local node_protocol=$(config_n_get $_node protocol)
if [ "$node_protocol" = "_shunt" ]; then
local default_node_id=$(config_n_get $TCP_NODE default_node "_direct")
local default_node_id=$(config_n_get $_node default_node "_direct")
local shunt_ids=$(uci show $CONFIG | grep "=shunt_rules" | awk -F '.' '{print $2}' | awk -F '=' '{print $1}')
for shunt_id in $shunt_ids; do
local _node_id=$(config_n_get $TCP_NODE $shunt_id "nil")
local _node_id=$(config_n_get $_node $shunt_id "nil")
[ "$_node_id" != "nil" ] && {
[ "$_node_id" = "_default" ] && _node_id=$default_node_id
if [ "$_node_id" = "_direct" ]; then
@ -849,6 +851,9 @@ add_firewall_rule() {
}
done
fi
}
[ "$TCP_NODE" ] && process_shunt_rules $TCP_NODE
[ "$UDP_NODE" ] && [ "$TCP_UDP" = "0" ] && process_shunt_rules $UDP_NODE
# 忽略特殊IP段
local lan_ifname lan_ip
@ -1295,7 +1300,7 @@ del_firewall_rule() {
destroy_nftset $NFTSET_LANLIST
destroy_nftset $NFTSET_VPSLIST
#destroy_nftset $NFTSET_SHUNTLIST
destroy_nftset $NFTSET_SHUNTLIST
#destroy_nftset $NFTSET_GFW
#destroy_nftset $NFTSET_CHN
#destroy_nftset $NFTSET_BLACKLIST
@ -1304,7 +1309,7 @@ del_firewall_rule() {
destroy_nftset $NFTSET_LANLIST6
destroy_nftset $NFTSET_VPSLIST6
#destroy_nftset $NFTSET_SHUNTLIST6
destroy_nftset $NFTSET_SHUNTLIST6
#destroy_nftset $NFTSET_GFW6
#destroy_nftset $NFTSET_CHN6
#destroy_nftset $NFTSET_BLACKLIST6