mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-08-01 23:19:33 +08:00
40 lines
1.1 KiB
Bash
Executable File
40 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
count=$(iptables -n -L INPUT 2>/dev/null | grep -c "TROJAN-SERVER")
|
|
if [ -n "$count" ]; then
|
|
until [ "$count" = 0 ]
|
|
do
|
|
rules=$(iptables -n -L INPUT --line-num 2>/dev/null | grep "TROJAN-SERVER" | awk '{print $1}')
|
|
for rule in $rules
|
|
do
|
|
iptables -D INPUT $rule 2>/dev/null
|
|
break
|
|
done
|
|
count=$(expr $count - 1)
|
|
done
|
|
fi
|
|
|
|
iptables -F TROJAN-SERVER 2>/dev/null && iptables -X TROJAN-SERVER 2>/dev/null
|
|
|
|
enable=$(uci -q get trojan_server.@global[0].enable)
|
|
if [ $enable -eq 1 ]; then
|
|
iptables -N TROJAN-SERVER
|
|
iptables -I INPUT -j TROJAN-SERVER
|
|
|
|
count=$(uci show trojan_server | grep "@user" | sed -n '$p' | cut -d '[' -f 2 | cut -d ']' -f 1)
|
|
[ -n "$count" ] && [ "$count" -ge 0 ] && {
|
|
u_get() {
|
|
local ret=$(uci -q get trojan_server.@user[$1].$2)
|
|
echo ${ret:=$3}
|
|
}
|
|
for i in $(seq 0 $count); do
|
|
enable=$(u_get $i enable 0)
|
|
[ $enable -eq 0 ] && continue
|
|
remarks=$(u_get $i remarks)
|
|
port=$(u_get $i port)
|
|
iptables -A TROJAN-SERVER -p tcp --dport $port -m comment --comment "$remarks" -j ACCEPT
|
|
iptables -A TROJAN-SERVER -p udp --dport $port -m comment --comment "$remarks" -j ACCEPT
|
|
done
|
|
}
|
|
fi
|