mirror of
https://github.com/bol-van/zapret.git
synced 2026-03-09 14:55:25 +00:00
launch system: support separate and multiple hostlists
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
zapret v.47
|
||||
zapret v.48
|
||||
|
||||
English
|
||||
-------
|
||||
@@ -226,7 +226,8 @@ nfqws
|
||||
--dpi-desync-fake-unknown-udp=<filename> ; файл, содержащий фейковый пейлоад неизвестного udp протокола для dpi-desync=fake, на замену стандартным нулям 64 байт
|
||||
--dpi-desync-udplen-increment=<int> ; насколько увеличивать длину udp пейлоада в режиме udplen
|
||||
--dpi-desync-cutoff=[n|d|s]N ; применять dpi desync только в исходящих пакетах (n), пакетах данных (d), относительных sequence (s) по номеру меньше N
|
||||
--hostlist=<filename> ; применять дурение только к хостам из листа
|
||||
--hostlist=<filename> ; применять дурение только к хостам из листа. может быть множество листов, они обьединяются. пустой обший лист = его отсутствие
|
||||
--hostlist-exclude=<filename> ; не применять дурение к хостам из листа. может быть множество листов, они обьединяются
|
||||
|
||||
Параметры манипуляции могут сочетаться в любых комбинациях.
|
||||
|
||||
@@ -586,11 +587,12 @@ tpws - это transparent proxy.
|
||||
--hostlist=<filename> ; действовать только над доменами, входящими в список из filename. поддомены автоматически учитываются.
|
||||
; в файле должен быть хост на каждой строке.
|
||||
; список читается 1 раз при старте и хранится в памяти в виде иерархической структуры для быстрого поиска.
|
||||
; для списка РКН может потребоваться система с 128 Mb памяти !
|
||||
; расчитывайте требование RAM для процесса как 3-5 кратный размер файла списка.
|
||||
; по сигналу HUP список будет перечитан при следующем принятом соединении
|
||||
; список может быть запакован в gzip. формат автоматически распознается и разжимается
|
||||
; списков может быть множество, они обьединяются. пустой общий лист = его отсутствие
|
||||
; хосты извлекаются из Host: хедера обычных http запросов и из SNI в TLS ClientHello.
|
||||
--hostlist-exclude=<filename> ; не применять дурение к доменам из листа. может быть множество листов, они обьединяются
|
||||
|
||||
|
||||
Параметры манипуляции могут сочетаться в любых комбинациях.
|
||||
|
||||
@@ -828,19 +830,36 @@ ip2net фильтрует входные данные, выкидывая неп
|
||||
----------------------------
|
||||
|
||||
Альтернативой ipset является использование tpws или nfqws со списком доменов.
|
||||
Может быть только один hostlist.
|
||||
Оба демона принимают неограниченное количество листов include (--hostlist) и exclude (--hostlist-exclude).
|
||||
Все листы одного типа обьединяются, и таким образом остаются только 2 листа.
|
||||
Прежде всего проверяется exclude list. При вхождении в него происходит отказ от дурения.
|
||||
Далее при наличии include list проверяется домен на вхождение в него. При невхождении в список отказ от дурения.
|
||||
Пустой список приравнивается к его отсутствию.
|
||||
В иных случаях происходит дурение.
|
||||
Нет ни одного списка - дурение всегда.
|
||||
Есть только exclude список - дурение всех, кроме.
|
||||
Есть только include список - дурение только их.
|
||||
Есть оба - дурение только include, кроме exclude.
|
||||
|
||||
Поддерживаются следующие варианты :
|
||||
1) Внесите домены для дурения в ipset/zapret-hosts-users.txt. Удалите ipset/zapret-hosts.txt.gz.
|
||||
Тогда init скрипт будет запускать tpws/nfqws с листом zapret-hosts-users.txt.
|
||||
В системе запуска это обыграно следующим образом.
|
||||
Присутствуют 2 include списка :
|
||||
ipset/zapret-hosts-users.txt.gz или ipset/zapret-hosts-users.txt
|
||||
ipset/zapret-hosts.txt.gz или ipset/zapret-hosts.txt
|
||||
и 1 exclude список
|
||||
ipset/zapret-hosts-users-exclude.txt.gz или ipset/zapret-hosts-users-exclude.txt
|
||||
|
||||
2) Список доменов РКН может быть получен скриптами ipset/get_reestr_hostlist.sh или ipset/get_antizapret_domains.sh
|
||||
При режиме фильтрации MODE_FILTER=hostlist система запуска передает nfqws или tpws все листы, файлы которых присутствуют.
|
||||
Если вдруг листы include присутствуют, но все они пустые, то работа аналогична отсутствию include листа.
|
||||
Файл есть, но не смотря на это дурится все, кроме exclude.
|
||||
Если вам нужен именно такой режим - не обязательно удалять zapret-hosts-users.txt. Достаточно сделать его пустым.
|
||||
|
||||
Поддомены учитываются автоматически. Например, строчка "ru" вносит в список "*.ru". Строчка "*.ru" в списке не сработает.
|
||||
|
||||
Список доменов РКН может быть получен скриптами ipset/get_reestr_hostlist.sh или ipset/get_antizapret_domains.sh
|
||||
- кладется в ipset/zapret-hosts.txt.gz.
|
||||
Этот скрипт автоматически добавляет к списку РКН домены из zapret-hosts-user.txt и исключает zapret-hosts-exclude.txt.
|
||||
init скрипт будет запускать tpws/nfqws с листом zapret-hosts.txt.gz.
|
||||
|
||||
При фильтрации по именам доменов демон должен запускаться без фильтрации по ipset.
|
||||
tpws и nfqws решают нужно ли применять дурение в зависимости от поля Host: в http запросе или SNI в TLS ClientHello.
|
||||
tpws и nfqws решают нужно ли применять дурение в зависимости от хоста, полученного из протокола прикладного уровня (http, tls, quic).
|
||||
При использовании больших списков, в том числе списка РКН, оцените объем RAM на роутере !
|
||||
Если после запуска демона RAM под завязку или случаются oom, значит нужно отказаться от таких больших списков.
|
||||
|
||||
@@ -1190,15 +1209,8 @@ tpws будет работать в любом случае, он не треб
|
||||
magisk : /data/adb/service.d
|
||||
supersu : /system/su.d
|
||||
|
||||
nfqws может иметь такой глюк. При запуске с uid по умолчанию (0x7FFFFFFF) при условии работы на сотовом интерфейсе
|
||||
и отключенном кабеле внешнего питания система может частично виснуть. Перестает работать тач и кнопки,
|
||||
но анимация на экране может продолжаться. Если экран был погашен, то включить его кнопкой power невозможно.
|
||||
Это, видимо, связано с переводом в suspend процессов с определенным UID. UID соответствует приложению или
|
||||
системному сервису. По UID android определяет политику power saving.
|
||||
Так же возможно, что глюк связан с кривым драйвером сотового интерфейса от китайцев, поскольку при использовании
|
||||
wifi такого не наблюдается. suspend обработчика nfqueue на обычном linux не вызывает подобных фатальных последствий.
|
||||
Изменение UID на низкий (--uid 1 подойдет) позволяет решить эту проблему.
|
||||
Глюк был замечен на android 8.1 на девайсе , основанном на платформе mediatek.
|
||||
Я не проверял не прибивают ли новые андроиды iptables по своей прихоти в процессе работы
|
||||
или при подключении/отключении wifi, mobile data, ...
|
||||
|
||||
Ответ на вопрос куда поместить tpws на android без рута, чтобы потом его запускать из приложений.
|
||||
Файл заливаем через adb shell в /data/local/tmp/, лучше всего в субфолдер.
|
||||
|
||||
Reference in New Issue
Block a user