mirror of
https://github.com/bol-van/zapret.git
synced 2024-11-11 17:29:16 +05:00
readme: tpws multi-profile
This commit is contained in:
parent
4b0b562509
commit
719f7387c4
@ -313,3 +313,7 @@ v62:
|
|||||||
|
|
||||||
tpws: connection close logic rewrite. tcp user timeout parameters for local and remote leg.
|
tpws: connection close logic rewrite. tcp user timeout parameters for local and remote leg.
|
||||||
nfqws: multi-strategy
|
nfqws: multi-strategy
|
||||||
|
|
||||||
|
v63:
|
||||||
|
|
||||||
|
tpws: multi-strategy
|
||||||
|
@ -633,6 +633,10 @@ tpws is transparent proxy.
|
|||||||
; its worth to make a reserve with 1.5 multiplier. by default maxfiles is (X*connections)*1.5+16
|
; its worth to make a reserve with 1.5 multiplier. by default maxfiles is (X*connections)*1.5+16
|
||||||
--max-orphan-time=<sec> ; if local leg sends something and closes and remote leg is still connecting then cancel connection attempt after N seconds
|
--max-orphan-time=<sec> ; if local leg sends something and closes and remote leg is still connecting then cancel connection attempt after N seconds
|
||||||
|
|
||||||
|
--new ; begin new strategy
|
||||||
|
--filter-l3=ipv4|ipv6 ; L3 protocol filter. multiple comma separated values allowed.
|
||||||
|
--filter-tcp=[~]port1[-port2] ; TCP port filter. ~ means negation
|
||||||
|
|
||||||
--hostlist=<filename> ; only act on hosts in the list (one host per line, subdomains auto apply, gzip supported, multiple hostlists allowed)
|
--hostlist=<filename> ; only act on hosts in the list (one host per line, subdomains auto apply, gzip supported, multiple hostlists allowed)
|
||||||
--hostlist-exclude=<filename> ; do not act on hosts in the list (one host per line, subdomains auto apply, gzip supported, multiple hostlists allowed)
|
--hostlist-exclude=<filename> ; do not act on hosts in the list (one host per line, subdomains auto apply, gzip supported, multiple hostlists allowed)
|
||||||
--hostlist-auto=<filename> ; detect DPI blocks and build hostlist automatically
|
--hostlist-auto=<filename> ; detect DPI blocks and build hostlist automatically
|
||||||
@ -737,11 +741,17 @@ Server replies with it's own MSS in SYN,ACK packet. Usually servers lower their
|
|||||||
fit to supplied MSS. The greater MSS client sets the bigger server's packets will be.
|
fit to supplied MSS. The greater MSS client sets the bigger server's packets will be.
|
||||||
If it's enough to split TLS 1.2 ServerHello, it may fool DPI that checks certificate domain name.
|
If it's enough to split TLS 1.2 ServerHello, it may fool DPI that checks certificate domain name.
|
||||||
This scheme may significantly lower speed. Hostlist filter is possible only in socks mode if client uses remote resolving (firefox `network.proxy.socks_remote_dns`).
|
This scheme may significantly lower speed. Hostlist filter is possible only in socks mode if client uses remote resolving (firefox `network.proxy.socks_remote_dns`).
|
||||||
TLS version filters are not possible.
|
`--mss` is not required for TLS1.3. If TLS1.3 is negotiable then MSS make things only worse.
|
||||||
`--mss-pf` sets port filter for MSS. Use `mss-pf=443` to apply MSS only for https.
|
|
||||||
Likely not required for TLS1.3. If TLS1.3 is negotiable then MSS make things only worse.
|
|
||||||
Use only if nothing better is available. Works only in Linux, not BSD or MacOS.
|
Use only if nothing better is available. Works only in Linux, not BSD or MacOS.
|
||||||
|
|
||||||
|
### multiple strategies
|
||||||
|
|
||||||
|
`tpws` supports multiple strategies as well. They work mostly like with `nfqws` with minimal differences.
|
||||||
|
`filter-udp` is absent because `tpws` does not support udp. 0-phase desync methods (`--mss`) can work with hostlist in socks modes with remote hostname resolve.
|
||||||
|
This is the point where you have to plan profiles carefully. If you use `--mss` and hostlist filters, behaviour can be different depending on remote resolve feature enabled or not.
|
||||||
|
Use `--mss` both in hostlist profile and profile without hostlist.
|
||||||
|
Use `curl --socks5` and `curl --socks5-hostname` to issue two kinds of proxy queries.
|
||||||
|
See `--debug` output to test your setup.
|
||||||
|
|
||||||
## Ways to get a list of blocked IP
|
## Ways to get a list of blocked IP
|
||||||
|
|
||||||
@ -939,6 +949,12 @@ Its possible to change manipulation options used by tpws :
|
|||||||
|
|
||||||
`TPWS_OPT="--hostspell=HOST --split-http-req=method --split-pos=3"`
|
`TPWS_OPT="--hostspell=HOST --split-http-req=method --split-pos=3"`
|
||||||
|
|
||||||
|
Additional low priority desync profile for `MODE_FILTER=hostlist`.
|
||||||
|
With multiple profile support 0-phase desync methods are no more applied with hostlist !
|
||||||
|
To apply them additional profile is required without hostlist filter.
|
||||||
|
|
||||||
|
`TPWS_OPT_SUFFIX="--mss=88"`
|
||||||
|
|
||||||
nfqws options for DPI desync attack:
|
nfqws options for DPI desync attack:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
zapret v.62
|
zapret v.63
|
||||||
|
|
||||||
English
|
English
|
||||||
-------
|
-------
|
||||||
@ -774,6 +774,9 @@ tpws - это transparent proxy.
|
|||||||
--hostlist-auto-fail-threshold=<int> ; сколько раз нужно обнаружить ситуацию, похожую на блокировку, чтобы добавить хост в лист (по умолчанию: 3)
|
--hostlist-auto-fail-threshold=<int> ; сколько раз нужно обнаружить ситуацию, похожую на блокировку, чтобы добавить хост в лист (по умолчанию: 3)
|
||||||
--hostlist-auto-fail-time=<int> ; все эти ситуации должны быть в пределах указанного количества секунд (по умолчанию: 60)
|
--hostlist-auto-fail-time=<int> ; все эти ситуации должны быть в пределах указанного количества секунд (по умолчанию: 60)
|
||||||
--hostlist-auto-debug=<logfile> ; лог положительных решений по autohostlist. позволяет разобраться почему там появляются хосты.
|
--hostlist-auto-debug=<logfile> ; лог положительных решений по autohostlist. позволяет разобраться почему там появляются хосты.
|
||||||
|
--new ; начало новой стратегии
|
||||||
|
--filter-l3=ipv4|ipv6 ; фильтр версии ip для текущей стратегии
|
||||||
|
--filter-tcp=[~]port1[-port2] ; фильтр портов tcp для текущей стратегии. ~ означает инверсию.
|
||||||
|
|
||||||
|
|
||||||
--debug позволяет выводить подробный лог действий на консоль, в syslog или в файл.
|
--debug позволяет выводить подробный лог действий на консоль, в syslog или в файл.
|
||||||
@ -903,13 +906,12 @@ tpws поддерживает эту возможность асинхронно
|
|||||||
С фильтром по hostlist совместимо только в режиме socks при включенном удаленном ресолвинге хостов.
|
С фильтром по hostlist совместимо только в режиме socks при включенном удаленном ресолвинге хостов.
|
||||||
(firefox network.proxy.socks_remote_dns). Это единственный вариант, когда tpws может узнать имя хоста
|
(firefox network.proxy.socks_remote_dns). Это единственный вариант, когда tpws может узнать имя хоста
|
||||||
еще на этапе установления соединения.
|
еще на этапе установления соединения.
|
||||||
Невозможен фильтр по версии TLS.
|
|
||||||
Взамен имеется фильтр по портам --mss-pf. --mss-pf=443 применяет дурение только к https.
|
|
||||||
Применяя данную опцию к сайтам TLS1.3, если броузер тоже поддерживает TLS1.3, то вы делаете только хуже.
|
Применяя данную опцию к сайтам TLS1.3, если броузер тоже поддерживает TLS1.3, то вы делаете только хуже.
|
||||||
Но нет способа автоматически узнать когда надо применять, когда нет, поскольку MSS идет только в
|
Но нет способа автоматически узнать когда надо применять, когда нет, поскольку MSS идет только в
|
||||||
3-way handshake еще до обмена данными, а версию TLS можно узнать только по ответу сервера, который
|
3-way handshake еще до обмена данными, а версию TLS можно узнать только по ответу сервера, который
|
||||||
может привести к реакции DPI.
|
может привести к реакции DPI.
|
||||||
Использовать только когда нет ничего лучше или для отдельных ресурсов.
|
Использовать только когда нет ничего лучше или для отдельных ресурсов.
|
||||||
|
Для http использовать смысла нет, поэтому заводите отдельный desync profile с фильтром по порту 443.
|
||||||
Работает только на linux, не работает на BSD и MacOS.
|
Работает только на linux, не работает на BSD и MacOS.
|
||||||
|
|
||||||
--skip-nodelay может быть полезен, чтобы привести MTU к MTU системы, на которой работает tpws.
|
--skip-nodelay может быть полезен, чтобы привести MTU к MTU системы, на которой работает tpws.
|
||||||
@ -924,6 +926,20 @@ TCP_USER_TIMEOUT. Под таймаутом подразумевается вр
|
|||||||
что данных для передачи нет. Полезно для сокращения время закрытия подвисших соединений.
|
что данных для передачи нет. Полезно для сокращения время закрытия подвисших соединений.
|
||||||
Поддерживается только на Linux и MacOS.
|
Поддерживается только на Linux и MacOS.
|
||||||
|
|
||||||
|
МНОЖЕСТВЕННЫЕ СТРАТЕГИИ
|
||||||
|
Работают аналогично nfqws, кроме некоторых моментов.
|
||||||
|
Нет параметра --filter-udp, поскольку tpws udp не поддерживает.
|
||||||
|
Методы нулевой фазы (--mss) могут работать по хостлисту в одном единственном случае :
|
||||||
|
если используется режим socks и удаленный ресолвинг хостов через прокси.
|
||||||
|
То есть работоспособность вашей настройки в одном и том же режиме может зависеть от того,
|
||||||
|
применяет ли клиент удаленный ресолвинг. Это может быть неочевидно.
|
||||||
|
В одной программе работает, в другой - нет.
|
||||||
|
Если вы используете профиль с хостлистом , и вам нужен mss, укажите mss в профиле с хостлистом,
|
||||||
|
создайте еще один профиль без хостлиста, если его еще нет, и в нем еще раз укажите mss.
|
||||||
|
Тогда при любом раскладе будет выполняться mss.
|
||||||
|
Используйте `curl --socks5` и `curl --socks5-hostname` для проверки вашей стратегии.
|
||||||
|
Смотрите вывод --debug, чтобы убедиться в правильности настроек.
|
||||||
|
|
||||||
Способы получения списка заблокированных IP
|
Способы получения списка заблокированных IP
|
||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
|
|
||||||
@ -1369,6 +1385,12 @@ MODE_FILTER=none
|
|||||||
|
|
||||||
TPWS_OPT="--hostspell=HOST --split-http-req=method --split-pos=3"
|
TPWS_OPT="--hostspell=HOST --split-http-req=method --split-pos=3"
|
||||||
|
|
||||||
|
Дополнительный низкоприоритетный профиль десинхронизации для режимов с MODE_FILTER=hostlist.
|
||||||
|
После реализации поддержки множественных профилей режимы нулевой фазы десинхронизации больше не применяются с хостлистом !
|
||||||
|
Для их применения требуется дополнительный профиль без хостлист фильтра.
|
||||||
|
|
||||||
|
#TPWS_OPT_SUFFIX="--mss 88"
|
||||||
|
|
||||||
Опции nfqws для атаки десинхронизации DPI :
|
Опции nfqws для атаки десинхронизации DPI :
|
||||||
|
|
||||||
DESYNC_MARK=0x40000000
|
DESYNC_MARK=0x40000000
|
||||||
|
Loading…
Reference in New Issue
Block a user