mirror of
https://github.com/bol-van/zapret.git
synced 2025-04-21 14:32:57 +03:00
Compare commits
7 Commits
aa3cf9b97b
...
5265995768
Author | SHA1 | Date | |
---|---|---|---|
|
5265995768 | ||
|
c6058a4ea9 | ||
|
27ffe77243 | ||
|
3eb969cdaf | ||
|
73040bb156 | ||
|
c2bda9388f | ||
|
92ba6b439e |
@ -119,7 +119,7 @@ You need to run them with the necessary parameters and redirect certain traffic
|
|||||||
when blocked domains are queried. If this is the case change DNS to public ones, such as 8.8.8.8 or 1.1.1.1.Sometimes ISP hijacks queries to any DNS server. Dnscrypt or dns-over-tls help.
|
when blocked domains are queried. If this is the case change DNS to public ones, such as 8.8.8.8 or 1.1.1.1.Sometimes ISP hijacks queries to any DNS server. Dnscrypt or dns-over-tls help.
|
||||||
* If blocking is done by IP.
|
* If blocking is done by IP.
|
||||||
* If a connection passes through a filter capable of reconstructing a TCP connection, and which
|
* If a connection passes through a filter capable of reconstructing a TCP connection, and which
|
||||||
follows all standards. For example, we are routed to squid. Connection goes through the full OS tcpip stack, fragmentation disappears immediately as a means of circumvention. Squid is correct, it will find everything as it should, it is useless to deceive him. BUT. Only small providers can afford using squid, since it is very resource intensive. Large companies usually use DPI, which is designed for much greater bandwidth.
|
follows all standards. For example, we are routed to squid. Connection goes through the full OS tcpip stack. This project targets DPI only, not full OS stack and not server applications.
|
||||||
|
|
||||||
## nfqws
|
## nfqws
|
||||||
|
|
||||||
|
@ -144,14 +144,9 @@ DPI. Все больше становится внереестровых бло
|
|||||||
* Если подменяется DNS. С этой проблемой легко справиться.
|
* Если подменяется DNS. С этой проблемой легко справиться.
|
||||||
* Если блокировка осуществляется по IP.
|
* Если блокировка осуществляется по IP.
|
||||||
* Если соединение проходит через фильтр, способный реконструировать TCP соединение, и который следует всем стандартам.
|
* Если соединение проходит через фильтр, способный реконструировать TCP соединение, и который следует всем стандартам.
|
||||||
Например, нас заворачивают на squid. Соединение идет через полноценный стек tcpip операционной системы, фрагментация
|
Например, нас заворачивают на squid. Соединение идет через полноценный стек tcpip операционной системы.
|
||||||
отпадает сразу как средство обхода. Squid правильный, он все найдет как надо, обманывать его бесполезно. НО.
|
Проект нацелен на обман DPI, который всилу ограниченности ресурсов и большого трафика вынужден интерпретировать его лишь ограниченно.
|
||||||
Заворачивать на squid могут позволить себе лишь небольшие провайдеры, поскольку это очень ресурсоемко. Большие
|
Обмануть полноценный стек ОС и полноценные серверные приложения не получится.
|
||||||
компании обычно используют DPI, который рассчитан на гораздо большую пропускную способность. Может применяться
|
|
||||||
комбинированный подход, когда на DPI заворачивают только IP из "плохого" списка, и дальше уже DPI решает пропускать
|
|
||||||
или нет. Так можно снизить нагрузку на DPI в десятки, если не сотни раз, а следовательно не покупать очень дорогие
|
|
||||||
решения, обойдясь чем-то существенно более дешевым. Мелкие провайдеры могут покупать услугу фильтрации у вышестоящих,
|
|
||||||
чтобы самим не морочиться, и они уже будут применять DPI.
|
|
||||||
|
|
||||||
## nfqws
|
## nfqws
|
||||||
|
|
||||||
@ -2072,17 +2067,18 @@ adb push tpws /data/local/tmp/zapret
|
|||||||
chmod 755 /data/local/tmp/zapret /data/local/tmp/zapret/tpws
|
chmod 755 /data/local/tmp/zapret /data/local/tmp/zapret/tpws
|
||||||
chcon u:object_r:system_file:s0 /data/local/tmp/zapret/tpws
|
chcon u:object_r:system_file:s0 /data/local/tmp/zapret/tpws
|
||||||
```
|
```
|
||||||
Как найти стратегию обхода сотового оператора: проще всего раздать инет на комп с linux.
|
Как найти стратегию обхода сотового оператора: проще всего раздать инет на комп.
|
||||||
Можно записать live image linux на флэшку и загрузиться с нее или запустить виртуалку с linux
|
Для этого подойдет любая поддерживаемая ОС. Подключите android через USB кабель к компу и включите режим модема.
|
||||||
и пробросить в нее usb устройство от режима модема с телефона.
|
Прогоните стандартную процедуру blockcheck. При переносе правил на телефон уменьшить TTL на 1,
|
||||||
На компе с linux прогнать стандартную процедуру blockcheck. При переносе правил на телефон уменьшить TTL на 1,
|
если правила с TTL присутствуют в стратегии. Если проверялось на windows, убрать параметры `--wf-*`.
|
||||||
если правила с TTL присутствуют в стратегии.
|
|
||||||
Можно развернуть rootfs какого-нибудь дистрибутива linux прямо на телефоне, имея рута.
|
Работа blockcheck в android shell не поддерживается, но имея рута можно развернуть rootfs какого-нибудь дистрибутива linux.
|
||||||
Это лучше всего делать с компа через adb shell.
|
Это лучше всего делать с компа через adb shell.
|
||||||
Если компа нет, то это единственный вариант, хотя и неудобный.
|
Если компа нет, то развертка chroot - единственный вариант, хотя и неудобный.
|
||||||
Подойдет что-то легковесное, например, alpine или даже openwrt.
|
Подойдет что-то легковесное, например, alpine или даже openwrt.
|
||||||
Если это не эмулятор android, то универсальная архитектура - arm (любой вариант).
|
Если это не эмулятор android, то универсальная архитектура - arm (любой вариант).
|
||||||
Если вы точно знаете, что ОС у вас 64-разрядная, то лучше вместо arm - aarch64.
|
Если вы точно знаете, что ОС у вас 64-разрядная, то лучше вместо arm - aarch64.
|
||||||
|
Выяснить архитектуру можно командой `uname -a`.
|
||||||
|
|
||||||
```
|
```
|
||||||
mount --bind /dev /data/linux/dev
|
mount --bind /dev /data/linux/dev
|
||||||
|
40
ipset/get_antifilter_domains.sh
Normal file
40
ipset/get_antifilter_domains.sh
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
IPSET_DIR="$(dirname "$0")"
|
||||||
|
IPSET_DIR="$(cd "$IPSET_DIR"; pwd)"
|
||||||
|
|
||||||
|
. "$IPSET_DIR/def.sh"
|
||||||
|
|
||||||
|
TMPLIST="$TMPDIR/list.txt"
|
||||||
|
|
||||||
|
URL="https://antifilter.download/list/domains.lst"
|
||||||
|
|
||||||
|
dl()
|
||||||
|
{
|
||||||
|
# $1 - url
|
||||||
|
# $2 - file
|
||||||
|
# $3 - minsize
|
||||||
|
# $4 - maxsize
|
||||||
|
curl -L -H "Accept-Encoding: gzip" -k --fail --max-time 60 --connect-timeout 10 --retry 4 --max-filesize 251658240 -o "$TMPLIST" "$1" ||
|
||||||
|
{
|
||||||
|
echo list download failed : $1
|
||||||
|
exit 2
|
||||||
|
}
|
||||||
|
dlsize=$(LANG=C wc -c "$TMPLIST" | xargs | cut -f 1 -d ' ')
|
||||||
|
if test $dlsize -lt $3; then
|
||||||
|
echo list is too small : $dlsize bytes. can be bad.
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
zzcat "$TMPLIST" | tr -d '\015' | zz "$2"
|
||||||
|
rm -f "$TMPLIST"
|
||||||
|
}
|
||||||
|
|
||||||
|
# useful in case ipban set is used in custom scripts
|
||||||
|
FAIL=
|
||||||
|
getipban || FAIL=1
|
||||||
|
"$IPSET_DIR/create_ipset.sh"
|
||||||
|
[ -n "$FAIL" ] && exit
|
||||||
|
|
||||||
|
dl "$URL" "$ZHOSTLIST" 32768 4194304
|
||||||
|
|
||||||
|
exit 0
|
Loading…
x
Reference in New Issue
Block a user