HTTPS и SSH остаются базовыми транспортами. HTTP/3 и SOCKS5 включаются отдельно
на каждом HTTPS-хосте и используют существующий GOST и пользователей users.https.
По умолчанию оба выключены.
hosts:
proxy_example:
# address и admin как у обычного прокси
services:
https:
title: EXAMPLE
endpoint: proxy.example.com
certificate: domain
acme_email: admin@example.com
http3: true
masque_profiles: false
socks5:
enabled: false
port: 1080
udp_port_min: 40000
udp_port_max: 40100http3: true добавляет GOST MASQUE с listener http3, TLS 1.3 и HTTP Datagrams.
Это отдельный UDP-listener, обычный HTTPS/TCP продолжает работать. На прямом
маршруте UDP использует тот же номер порта, что HTTPS, обычно 443. Firewall открывает
нужный UDP-порт. Контейнеру добавляется только capability NET_BIND_SERVICE,
необходимая для привязки низких портов.
API подписок и MegaProxy JSON выставляют proxy.preferHttp3: true только когда
HTTPS и MASQUE доступны на одном hostname и номере порта. Android пробует QUIC,
а при поддерживаемых контрактом ошибках возвращается к HTTPS/TCP. Ошибки проверки
сертификата и аутентификации остаются отказами.
masque_profiles: true дополнительно публикует отдельные профили type: MASQUE.
Этот параметр требует http3: true; он не нужен для HTTPS с preferHttp3.
Отдельный MASQUE-профиль требует HTTP/3 и не переключается на HTTPS.
Профили получают логин и пароль текущего авторизованного пользователя.
HTTP/3 включается только на прямых маршрутах. Серверные SNI-цепочки остаются HTTPS/TCP
и не получают MASQUE или preferHttp3: GOST 3.3.0 передаёт некорректный Extended CONNECT
при собственном исходящем CONNECT-UDP. Это ограничение не разрешает превращать
цепочку в прямой маршрут. http3: true требует direct: true на хосте;
серверные chain-маршруты этого хоста по-прежнему работают только через TCP.
Клиентские HTTPS_JUMP-профили могут описывать два прямых HTTPS/MASQUE endpoint;
их поддержку и fallback реализует клиент согласно контракту MegaProxyConfig.
Такие профили генерируются из settings.https_jump_pairs; preferHttp3 включается
только когда HTTP/3 предпочитается на обоих узлах. См. настройку jump-пар.
Маскировка GOST (probe_resistance) относится к HTTPS/TCP. Она сохраняет сайт-приманку,
robots.txt и настроенные knock-хосты. На UDP/MASQUE knock и сайт-приманка не применяются.
HTTP/3/MASQUE в GOST и клиентах остаются экспериментальными. Browser-проекции API
сохраняют совместимые HTTPS/SOCKS5; MASQUE доступен в полном и Android-ответе.
SOCKS5 не рекомендуется из-за проблем с безопасностью: протокол не шифрует транспорт. RFC 1929 передаёт логин и пароль без шифрования, а незашифрованный трафик приложений также доступен наблюдателю. HTTPS приложения защищает содержимое своего соединения, но не защищает SOCKS5-аутентификацию. Используйте HTTPS/MASQUE или SSH.
Для явного включения задайте services.https.socks5.enabled: true. Сервер требует
логин и пароль из users.https, не разрешает анонимный доступ и поддерживает TCP
CONNECT и UDP ASSOCIATE. Реквизиты ограничены 255 UTF-8 байт каждый.
SOCKS5 публикуется на прямом endpoint хоста; серверные HTTPS-цепочки к нему не применяются.
Firewall открывает TCP port и заданный диапазон UDP-relay. Число одновременно
выделенных relay-портов ограничено размером диапазона; измените диапазон, если его
недостаточно. После отключения SOCKS5 и применения настроек listener удаляется;
роль firewall удаляет ранее записанные управляемые правила.
API автоматически выдаёт SOCKS5-профили только для включённых хостов. Firefox и Android получают профили с реквизитами; Chromium их пропускает, поскольку не поддерживает SOCKS5-аутентификацию. ProxyList/SuperProxy/FoxyProxy остаются HTTPS-экспортами; новые транспорты и клиентский HTTPS Jump включаются в MegaProxy JSON v8. Без HTTP/3, SOCKS5 и HTTPS Jump файловый экспорт остаётся v7; API всегда выдаёт v8.
./mega-proxy validate
./mega-proxy plan --limit proxy_example
./mega-proxy apply --limit proxy_example
./mega-proxy verify --limit proxy_exampleИзменения флагов нужно применить и на прокси, и на серверах конфигов. --limit
обновляет только выбранные машины. Отключение listener прекращает доступ; роль
firewall добавляет необходимые правила и удаляет устаревшие управляемые правила.
При использовании тегов включите firewall, например apply --tags https,firewall.
Первый apply после обновления записывает текущие порты в /etc/megaproxy/firewall.json:
ранее открытые, но уже отсутствующие в inventory порты автоматически не обнаруживаются.
Тесты генерации и совместимости входят в ./mega-proxy check. Проверка реального
GOST 3.3.0 локально и в CI:
uv run --frozen python tests/integration/transports.py --gost /path/to/gost
uv run --frozen python tests/integration/https.py --gost /path/to/gostПервый тест проверяет SOCKS5 TCP/UDP, обязательную аутентификацию, диапазон relay-портов, MASQUE TCP/UDP, доверенный TLS и отказ при неверных реквизитах. Второй проверяет HTTPS knock, маскировку, серверные цепочки и TLS внутри HTTPS Jump, включая отказ при неверных машинных реквизитах, имени сертификата или недоступности выхода. В тестах используются временные ключи и реквизиты; публичные серверы не требуются.
Исходные настройки: MASQUE GOST, HTTP/3 listener, контракт MegaProxyConfig.