mirror of https://github.com/bol-van/zapret/
4 changed files with 119 additions and 0 deletions
@ -0,0 +1,35 @@ |
|||||
|
#!/system/bin/busybox sh |
||||
|
|
||||
|
# download hostlist from http(s) (need curl, its absent by default), |
||||
|
# feed it to zapret. save flash write cycles |
||||
|
|
||||
|
u="https://your.host.com/censorship/hoslist.txt" |
||||
|
|
||||
|
SCRIPT=$(readlink -f "$0") |
||||
|
EXEDIR=$(dirname "$SCRIPT") |
||||
|
|
||||
|
d=/data/censorship |
||||
|
[ -d $d ] || mkdir $d |
||||
|
f=$d/hostlist.txt |
||||
|
t=/hostlist.txt |
||||
|
|
||||
|
curl -k --fail --max-time 10 -o "$t" "$u" && { |
||||
|
if [ -s "$t" ]; then |
||||
|
m1=$(md5sum "$t" | cut -d ' ' -f 1) |
||||
|
m2=$(md5sum "$f" | cut -d ' ' -f 1) |
||||
|
echo $m1 $m2 |
||||
|
if [ -z "$m2" ] || [ "$m1" != "$m2" ]; then |
||||
|
echo updating hostlist |
||||
|
cp -f "$t" "$f" |
||||
|
else |
||||
|
echo hostlist was not changed. keeping old copy |
||||
|
fi |
||||
|
else |
||||
|
echo downloaded hostlist is empty. disabling zapret |
||||
|
rm "$f" |
||||
|
fi |
||||
|
} |
||||
|
|
||||
|
rm -f "$t" |
||||
|
"$EXEDIR/unzapret" |
||||
|
[ -s "$f" ] && exec "$EXEDIR/zapret" "--hostlist=$f" |
@ -0,0 +1,39 @@ |
|||||
|
#!/system/bin/busybox sh |
||||
|
|
||||
|
# download hostlist from http(s) (need curl, its absent by default), |
||||
|
# resolve to ip list, feed to zapret-ip. save flash write cycles |
||||
|
|
||||
|
u="https://your.host.com/censorship/hoslist.txt" |
||||
|
|
||||
|
SCRIPT=$(readlink -f "$0") |
||||
|
EXEDIR=$(dirname "$SCRIPT") |
||||
|
|
||||
|
d=/data/censorship |
||||
|
[ -d $d ] || mkdir $d |
||||
|
f=$d/hostlist.txt |
||||
|
t=/hostlist.txt |
||||
|
i=/iplist.txt |
||||
|
|
||||
|
curl -k --fail --max-time 10 -o "$t" "$u" && { |
||||
|
if [ -s "$t" ]; then |
||||
|
m1=$(md5sum "$t" | cut -d ' ' -f 1) |
||||
|
m2=$(md5sum "$f" | cut -d ' ' -f 1) |
||||
|
echo $m1 $m2 |
||||
|
if [ -z "$m2" ] || [ "$m1" != "$m2" ]; then |
||||
|
echo updating hostlist |
||||
|
cp -f "$t" "$f" |
||||
|
else |
||||
|
echo hostlist was not changed. keeping old copy |
||||
|
fi |
||||
|
else |
||||
|
echo downloaded hostlist is empty. disabling zapret |
||||
|
rm "$f" |
||||
|
fi |
||||
|
} |
||||
|
|
||||
|
rm -f "$t" |
||||
|
"$EXEDIR/unzapret-ip" |
||||
|
[ -s "$f" ] && { |
||||
|
mdig --threads=10 --family=4 <"$f" >"$i" |
||||
|
[ -s "$i" ] && exec "$EXEDIR/zapret-ip" "$i" |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
#!/system/bin/busybox sh |
||||
|
|
||||
|
rule="PREROUTING -t nat -i br0 -p tcp -m multiport --dports 80,443 -j tpws" |
||||
|
iptables -C $rule 2>/dev/null && iptables -D $rule |
||||
|
iptables -F tpws -t nat |
||||
|
iptables -X tpws -t nat |
||||
|
killall tpws |
||||
|
|
||||
|
rule="OUTPUT -t mangle -o wan0 -p tcp -m multiport --dports 80,443 -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 200 --queue-bypass" |
||||
|
iptables -C $rule 2>/dev/null && iptables -D $rule |
||||
|
killall nfqws |
@ -0,0 +1,34 @@ |
|||||
|
#!/system/bin/busybox sh |
||||
|
|
||||
|
# $1 - ip list file. create individual rules for tpws redirection. ipset is not available |
||||
|
|
||||
|
[ -z "$1" ] && { |
||||
|
echo need iplist file as parameter |
||||
|
exit 1 |
||||
|
} |
||||
|
|
||||
|
insmod /online/modules/unfuck_nfqueue.ko 2>/dev/null |
||||
|
|
||||
|
tpws --maxconn=1024 --uid 1:3003 --port=1 --daemon |
||||
|
|
||||
|
|
||||
|
REDIR="-j REDIRECT --to-port 1" |
||||
|
|
||||
|
iptables -F tpws -t nat |
||||
|
iptables -X tpws -t nat |
||||
|
iptables -N tpws -t nat |
||||
|
iptables -A tpws -t nat -d 192.168.0.0/16 -j RETURN |
||||
|
|
||||
|
while read ip; do |
||||
|
echo redirecting $ip |
||||
|
iptables -A tpws -t nat -d $ip -p tcp $REDIR |
||||
|
done <"$1" |
||||
|
|
||||
|
|
||||
|
rule="PREROUTING -t nat -i br0 -p tcp -m multiport --dports 80,443 -j tpws" |
||||
|
iptables -C $rule 2>/dev/null || iptables -I $rule |
||||
|
|
||||
|
nfqws --uid 2 --qnum=200 --dpi-desync=disorder --dpi-desync-ttl=8 --dpi-desync-fooling=md5sig --daemon |
||||
|
|
||||
|
rule="OUTPUT -t mangle -o wan0 -p tcp -m multiport --dports 80,443 -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 200 --queue-bypass" |
||||
|
iptables -C $rule 2>/dev/null || iptables -I $rule |
Loading…
Reference in new issue