Implementation of some DPI bypass methods. The program is a local SOCKS proxy server. Usage example: ``` ciadpi --disorder 1 --auto=torst --tlsrec 1+s ciadpi --fake -1 --ttl 8 ``` ------ ### Описание аргументов ``` -i, --ip Прослушиваемый IP, по умолчанию 0.0.0.0 -p, --port Прослушиваемый порт, по умолчанию 1080 -D, --daemon Запуск в режиме демона Поддерживается только в Linux и BSD системах -w, --pidfile Расположение PID-файла -E, --transparent Запуск в режиме прозрачного прокси, SOCKS работать не будет -c, --max-conn Максимальное количество клиентских подключений, по умолчанию 512 -I, --conn-ip Адрес, к которому будут привязаны исходящие соединения, по умолчанию :: При указании IPv4 адреса запросы на IPv6 будут отклоняться -b, --buf-size Максимальный размер данных, получаемых и отправляемых за один вызов recv/send Размер указывается в байтах, по умолчанию равен 16384 -g, --def-ttl Значение TTL для всех исходящий соединений Может быть полезен для обхода обнаружения нестандартного/уменьшенного TTL -N, --no-domain Отбрасывать запросы, если в качестве адреса указан домен Т.к. резолвинг выполняется синхронно, то он может замедлить или даже заморозить работу -U, --no-udp Не проксировать UDP -F, --tfo Включает TCP Fast Open Если сервер его поддерживает, то первый пакет будет отправлен сразу вместе с SYN Поддерживается только в Linux (4.11+) -A, --auto Автоматический режим Если произошло событие, похожее на блокировку или поломку, то будут применены параметры обхода, следующие за данной опцией Возможные события: torst : Вышло время ожидания или сервер сбросил подключение после первого запроса redirect: HTTP Redirect с Location, домен которого не совпадает с исходящим ssl_err : В ответ на ClientHello не пришел ServerHello или SH содержит некорректный session_id none : Предыдущая группа пропущена, например из-за ограничения по доменам или протоколам -L, --auto-mode <0-3> 0: кешировать IP только если имеется возможность переподключиться 1: кешировать IP также в том случае, если: torst - таймаут/соединение сброшено во время обмена пакетами (т.е. уже после первых данных от сервера) ssl_err - совершился лишь один круг обмена данными (запрос-ответ/запрос-ответ-запрос) 2: сортировать группы по количеству срабатываний триггера, от меньшего к большему 3: 1 и 2 одновременно -u, --cache-ttl Время жизни значения в кеше, по умолчанию 100800 (28 часов) -y, --cache-dump Выгрузить кеш в файл или stdout. Формат: