mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-01 16:44:23 +08:00
🗽 Sync 2026-04-04 08:46:19
This commit is contained in:
1 parent
cc48a1d6ad
commit
874bea09f4
10 files changed
+258
-105
No files matched your search
@@ -744,7 +744,7 @@ add_firewall_rule() {
|
||||
}
|
||||
$ipt_m -A PSW2_OUTPUT -m mark --mark 255 -j RETURN
|
||||
|
||||
ip rule add fwmark ${FWMARK} lookup 999 priority 999
|
||||
ip rule add fwmark ${FWMARK} table 999 priority 999
|
||||
ip route add local 0.0.0.0/0 dev lo table 999
|
||||
|
||||
[ "$accept_icmpv6" = "1" ] && {
|
||||
@@ -953,10 +953,10 @@ del_firewall_rule() {
|
||||
done
|
||||
done
|
||||
|
||||
ip rule del fwmark ${FWMARK} lookup 999 priority 999 2>/dev/null
|
||||
ip rule del fwmark ${FWMARK} 2>/dev/null
|
||||
ip route del local 0.0.0.0/0 dev lo table 999 2>/dev/null
|
||||
|
||||
ip -6 rule del fwmark ${FWMARK} table 999 priority 999 2>/dev/null
|
||||
ip -6 rule del fwmark ${FWMARK} 2>/dev/null
|
||||
ip -6 route del local ::/0 dev lo table 999 2>/dev/null
|
||||
|
||||
log_i18n 0 "Delete %s rules is complete." "iptables"
|
||||
|
||||
@@ -642,9 +642,35 @@ filter_direct_node_list() {
|
||||
done
|
||||
}
|
||||
|
||||
del_script_mwan3() {
|
||||
[ -s "/etc/init.d/mwan3" ] && sed -i "/${CONFIG}/d" /etc/init.d/mwan3 >/dev/null 2>&1
|
||||
}
|
||||
|
||||
add_script_mwan3() {
|
||||
del_script_mwan3
|
||||
[ -s "/etc/init.d/mwan3" ] && {
|
||||
sed -i '/start_service()/,/}/ s/^}/ \/usr\/share\/passwall2\/nftables.sh mwan3_start\n}/' /etc/init.d/mwan3
|
||||
sed -i '/stop_service().*{/a \ \/usr\/share\/passwall2\/nftables.sh mwan3_stop' /etc/init.d/mwan3
|
||||
}
|
||||
}
|
||||
|
||||
mwan3_stop() {
|
||||
local handles=$(nft -a list chain ip mangle mwan3_hook 2>/dev/null | grep "${FWMARK}" | awk -F '# handle ' '{print$2}')
|
||||
for handle in $handles; do
|
||||
nft delete rule ip mangle mwan3_hook handle ${handle} 2>/dev/null
|
||||
done
|
||||
}
|
||||
|
||||
mwan3_start() {
|
||||
mwan3_stop
|
||||
nft list chain ip mangle mwan3_hook >/dev/null 2>&1 && nft insert rule ip mangle mwan3_hook ct mark ${FWMARK} counter return >/dev/null 2>&1
|
||||
}
|
||||
|
||||
add_firewall_rule() {
|
||||
log_i18n 0 "Starting to load %s firewall rules..." "nftables"
|
||||
gen_nft_tables
|
||||
add_script_mwan3
|
||||
mwan3_start
|
||||
gen_nftset $NFTSET_WAN ipv4_addr 0 "-1"
|
||||
gen_nftset $NFTSET_LOCAL ipv4_addr 0 "-1"
|
||||
gen_nftset $NFTSET_LAN ipv4_addr 0 "-1" $(gen_lanlist)
|
||||
@@ -798,7 +824,7 @@ add_firewall_rule() {
|
||||
}
|
||||
unset WAN_IP
|
||||
|
||||
ip rule add fwmark ${FWMARK} lookup 999 priority 999
|
||||
ip rule add fwmark ${FWMARK} table 999 priority 999
|
||||
ip route add local 0.0.0.0/0 dev lo table 999
|
||||
|
||||
#ipv6 tproxy mode and udp
|
||||
@@ -974,10 +1000,10 @@ del_firewall_rule() {
|
||||
# Need to be removed at the end, otherwise it will show "Resource busy"
|
||||
nft delete chain $NFTABLE_NAME handle $(nft -a list chains | grep -E "PSW2_RULE" | awk -F '# handle ' '{print$2}') 2>/dev/null
|
||||
|
||||
ip rule del fwmark ${FWMARK} lookup 999 priority 999 2>/dev/null
|
||||
ip rule del fwmark ${FWMARK} 2>/dev/null
|
||||
ip route del local 0.0.0.0/0 dev lo table 999 2>/dev/null
|
||||
|
||||
ip -6 rule del fwmark ${FWMARK} table 999 priority 999 2>/dev/null
|
||||
ip -6 rule del fwmark ${FWMARK} 2>/dev/null
|
||||
ip -6 route del local ::/0 dev lo table 999 2>/dev/null
|
||||
|
||||
destroy_nftset $NFTSET_LOCAL
|
||||
@@ -990,6 +1016,8 @@ del_firewall_rule() {
|
||||
destroy_nftset $NFTSET_LAN6
|
||||
destroy_nftset $NFTSET_VPS6
|
||||
|
||||
del_script_mwan3
|
||||
|
||||
log_i18n 0 "Delete %s rules is complete." "nftables"
|
||||
}
|
||||
|
||||
@@ -1071,6 +1099,12 @@ insert_nftset)
|
||||
filter_direct_node_list)
|
||||
filter_direct_node_list
|
||||
;;
|
||||
mwan3_start)
|
||||
mwan3_start
|
||||
;;
|
||||
mwan3_stop)
|
||||
mwan3_stop
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
@@ -1079,3 +1113,7 @@ start)
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
reload_service() {
|
||||
restart
|
||||
}
|
||||
Reference in new issue
Block a user