mirror of
https://github.com/bol-van/zapret.git
synced 2025-12-31 03:48:10 +03:00
tpws: multi thread resolver
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
zapret v.55
|
||||
zapret v.56
|
||||
|
||||
English
|
||||
-------
|
||||
@@ -642,6 +642,7 @@ tpws - это transparent proxy.
|
||||
--bind-wait-only ; подождать все бинды и выйти. результат 0 в случае успеха, иначе не 0.
|
||||
--socks ; вместо прозрачного прокси реализовать socks4/5 proxy
|
||||
--no-resolve ; запретить ресолвинг имен через socks5
|
||||
--resolve-threads ; количество потоков ресолвера
|
||||
--port=<port> ; на каком порту слушать
|
||||
--maxconn=<max_connections> ; максимальное количество соединений от клиентов к прокси
|
||||
--maxfiles=<max_open_files> ; макс количество файловых дескрипторов (setrlimit). мин требование (X*connections+16), где X=6 в tcp proxy mode, X=4 в режиме тамперинга.
|
||||
@@ -756,13 +757,13 @@ tpws можно использовать на мобильном устройс
|
||||
Поддерживаются версии socks 4 и 5 без авторизации. Версия протокола распознается автоматически.
|
||||
Подключения к IP того же устройства, на котором работает tpws, включая localhost, запрещены.
|
||||
socks5 позволяет удаленно ресолвить хосты (curl : --socks5-hostname firefox : socks_remote_dns=true).
|
||||
tpws поддерживает эту возможность, однако используется блокирующий ресолвинг. Пока система
|
||||
ресолвит хост (это может занять секунды), вся активность останавливается.
|
||||
tpws полностью работает на асинхронных сокетах, но ресолвинг может попортить эту модель.
|
||||
С ним возможны атаки DoS на tpws. Если tpws обслуживает множество клиентов, то из-за частого
|
||||
ресолвинга качество обслуживания может существенно ухудшиться.
|
||||
Если удаленный ресолвинг создает проблемы, настройте клиенты на локальный ресолвинг, включите опцию
|
||||
--no-resolve на стороне tpws.
|
||||
tpws поддерживает эту возможность асинхронно, не блокируя процессинг других соединений, используя
|
||||
многопоточный пул ресолверов. Количество потоков определяется автоматически в зависимости от "--maxconn",
|
||||
но можно задать и вручную через параметр "--resolver-threads".
|
||||
Запрос к socks выставляется на паузу, пока домен не будет преобразован в ip адрес в одном из потоков
|
||||
ресолвера. Ожидание может быть более длинным, если все потоки заняты.
|
||||
Если задан параметр "--no-resolve", то подключения по именам хостов запрещаются, а пул ресолверов не создается.
|
||||
Тем самым экономятся ресурсы.
|
||||
|
||||
Параметр --hostpad=<bytes> добавляет паддинг-хедеров перед Host: на указанное количество байтов.
|
||||
Если размер <bytes> слишком большой, то идет разбивка на разные хедеры по 2K.
|
||||
@@ -802,8 +803,11 @@ tpws полностью работает на асинхронных сокет
|
||||
все равно не вписываются в низкий MSS, указанный клиентом. Обычно чем больше указал клиент, тем больше
|
||||
шлет сервер. На TLS 1.2 если сервер разбил заброс так, чтобы домен из сертификата не попал в первый пакет,
|
||||
это может обмануть DPI, секущий ответ сервера.
|
||||
Схема может значительно снизить скорость и сработать не на всех сайтах.
|
||||
Несовместимо с фильтром по hostlist. Невозможен фильтр по версии TLS.
|
||||
Схема может значительно снизить скорость и сработать не на всех сайтах.
|
||||
С фильтром по hostlist совместимо только в режиме socks при включенном удаленном ресолвинге хостов.
|
||||
(firefox network.proxy.socks_remote_dns). Это единственный вариант, когда tpws может узнать имя хоста
|
||||
еще на этапе установления соединения.
|
||||
Невозможен фильтр по версии TLS.
|
||||
Взамен имеется фильтр по портам --mss-pf. --mss-pf=443 применяет дурение только к https.
|
||||
Применяя данную опцию к сайтам TLS1.3, если броузер тоже поддерживает TLS1.3, то вы делаете только хуже.
|
||||
Но нет способа автоматически узнать когда надо применять, когда нет, поскольку MSS идет только в
|
||||
|
||||
Reference in New Issue
Block a user