Trojan
имитация HTTPS · GitHub trojan-gfw · 2017
Что это
Trojan — прокси-протокол, задача которого одна: выглядеть неотличимо от обычного HTTPS. Разработан анонимным китайским разработчиком в 2017 году под ником trojan-gfw. Идея: если протокол выглядит как HTTPS, то и заблокировать его можно только заблокировав весь HTTPS.
Как работает
- На сервере Trojan слушает 443/tcp с реальным TLS-сертификатом (Let's Encrypt на реальном домене)
- Клиент подключается, делает нормальный TLS-handshake
- После TLS шлёт первый байт — SHA-224 хэш пароля
- Если пароль правильный — начинается прокси
- Если пароль неправильный или это скраипт-пробер — Trojan прозрачно проксирует запрос на реальный сайт (обычно nginx на 80 порту)
Итог: активный пробер видит обычный сайт. Даже DPI не различает Trojan от настоящего HTTPS.
Конфиг сервера
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 443,
"remote_addr": "127.0.0.1",
"remote_port": 80, // fallback на nginx
"password": ["your_password"],
"ssl": {
"cert": "/etc/letsencrypt/live/example.com/fullchain.pem",
"key": "/etc/letsencrypt/live/example.com/privkey.pem"
}
}
Требования
- Настоящий домен с валидным TLS-сертификатом (Let's Encrypt)
- Реальный сайт-заглушка на fallback-порту (nginx с чем-то смотрибельным)
- Прямой IPv4 (для Let's Encrypt)
Trojan-Go
Форк на Go с дополнениями:
- Поддержка WebSocket, Mux, Shadowsocks-обфускации
- Плагины (transport plugins)
- Лучший CDN-friendly режим
В РФ
Trojan работает — так же как работает HTTPS. ТСПУ не могут различить Trojan-туннель от обычного посещения сайта. Основные риски:
- Заезженные VPN-домены попадают в списки IP по жалобам
- Behavioral: если сервер отдаёт «слишком много» трафика на одну сессию — может подсветиться
- Активные проберы (те кто ходит на подозрительные IP и стучится с фейковыми хэндшейками) — от них защищает fallback на реальный сайт
Trojan vs VLESS+Reality
Trojan требует настоящий домен и сертификат. Reality не требует — он крадёт сертификат чужого популярного сайта (google.com, apple.com). Reality сейчас более гибкий, но Trojan — проверенный и стабильный.