- Обсуждения: доступны в репозитории.
- Комнаты обратной связи в Matrix:
- Общие вопросы: https://matrix.to/#/#tlsp_public:matrix.org
- Конфигурация и оптимизация (поиск IP, смена режимов и т.п.): https://matrix.to/#/!WvZLqiyvvsVSCrsuWt:matrix.org?via=matrix.org
- Ошибки программы TLSFragment: https://matrix.to/#/!GvJhmmjpGqeNCPyMyE:matrix.org?via=matrix.org
- Вопросы по настройке прокси: https://matrix.to/#/!bRNRPJmWSBrWyuQbCd:matrix.org?via=matrix.org
Для приглашённых участников существует закрытая комната.
python -m build --wheel --no-isolation
python -m installer dist/*.whlПосле установки доступна команда tls_fragment (в данный момент отдельный entry‑point не поддерживается).
git clone https://github.com/maoist2009/TlsFragment.git
cd TlsFragment
pip install poetry
poetry install
python run.pyМожно собрать исполняемый файл для Windows и добавить его в автозапуск:
# Сборка для Windows
BUILD_WINDOWSСоздайте ярлык к dist/proxy.exe и поместите его в
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup.
Первый пакет от TCP‑клиента (обычно ClientHello TLS, который обычно не фрагментируется на уровне приложения) разбивается одновременно на уровне TLS и TCP. SNI делится на несколько пакетов, чтобы обойти инспекцию GFW.
Отправляются поддельные пакеты с подстроенными значениями TTL, чтобы запутать DPI‑систему GFW. Это позволяет обходиться без прав администратора/root:
- Windows – используется API
TransmitFile(ограничено двумя одновременными передачами, ниже производительность). - Linux – используется механизм pipe.
Поддельные пакеты переотправляются согласно обычной логике TCP‑ретрансляций.
- Основная реализация использует threading (много потоков ОС).
- Версия на
asyncioбыла удалена, потому что стандартная сборка не поддерживает самопрокси DoH.
- Установите Proxy SwitchyOmega и Gooreplacer.
- Импортируйте предоставленные файлы конфигураций:
OmegaOptions.bak→ SwitchyOmegagooreplacer.json→ Gooreplacer (Android‑пользователи могут воспользоваться Kiwi Browser и т.п.)
Рекомендуется разделять трафик (например, направлять только целевые домены через прокси).
| Параметр | Описание | Переопределение для конкретного домена |
|---|---|---|
output_data |
Логировать содержимое пакетов | Нет |
listen_PORT |
Порт, на котором слушает прокси | Нет |
DOH_PORT |
Порт DoH‑прокси | Нет |
my_socket_timeout |
Таймаут сокета (отправка/приём) | Нет |
doh_server |
DoH‑сервер (указать IP в domains) |
Нет |
DNS_log_every |
Интервал логирования DNS‑кеша | Нет |
TTL_log_every |
Интервал логирования TTL‑кеша | Нет |
num_TCP_fragment |
Количество TCP‑фрагментов без SNI | Да |
TCP_frag |
Приблизительный размер TCP‑фрагмента для сегмента SNI | Да |
method |
Режим работы (см. ниже) | Да |
IPtype |
Предпочтительный тип IP для DNS‑запросов (резерв, если нет) | Да |
| Параметр | Описание | Переопределение для конкретного домена |
|---|---|---|
num_TLS_fragment |
Количество TLS‑фрагментов без SNI | Да |
TLS_frag |
Размер TLS‑фрагмента для сегмента SNI | Да |
| Параметр | Описание | Переопределение для конкретного домена |
|---|---|---|
FAKE_packet |
Содержание поддельного пакета | Да |
FAKE_ttl |
TTL поддельного пакета; query — автоматический бинарный поиск |
Да |
FAKE_ttl_auto_timeout |
Таймаут кэша cookie | Да |
FAKE_sleep |
Задержка между отправкой поддельного и реального пакетов | Да |
Переопределения для конкретных доменов задаются в domains.xxx.com и имеют приоритет над глобальными значениями.
| Поле | Значение |
|---|---|
IP |
Целевой IP‑адрес |
port |
Порт (по умолчанию 443, если не указан) |
IPcache |
Кешировать IP |
TTLcache |
Кешировать TTL, связанный с IP |
SNI сравнивается с самым длинным суффиксом домена, присутствующим в конфигурации. При одинаковой длине решает порядок сортировки Python. Сопоставление реализовано через автомат Aho‑Corasick для скорости, например, хранится шаблон ^www.domain.genshin.mihoyo.com$. Поддерживаются как префиксные, так и суффиксные совпадения.
Рекомендуется использовать HTTPS_IP_finder: https://github.com/maoist2009/HTTPS_IP_finder. Автор поддерживает список сайтов, блокируемых по IP.
Поддерживается перенаправление IP (или диапазона IP) на другой IP. По умолчанию перенаправления цепочкой; чтобы отключить цепочку, добавьте ^ в начало строки целевого IP.