Ground-Zerro / Phobos Public
Code Issues Pull requests Actions Releases View on GitHub ↗
Mirror — read-only view
bin
config.c 22.0 KB
config.h 189 B
LICENSE 35.0 KB
Makefile 5.4 KB
masking.c 6.4 KB
masking.h 4.0 KB
masking_handlers.h 321 B
masking_media.c 4.7 KB
masking_media.h 246 B
masking_stun.c 9.0 KB
masking_stun.h 2.0 KB
mini_argp.h 2.7 KB
obfuscation.h 11.7 KB
README.md 3.2 KB
resolve.c 6.2 KB
resolve.h 248 B
runtime.c 3.2 KB
runtime.h 213 B
socks5.c 49.1 KB
socks5.h 1.5 KB
socks5_mask.c 7.0 KB
socks5_mask.h 993 B
socks5_proto.c 3.8 KB
socks5_proto.h 1.5 KB
threading.c 22.7 KB
threading.h 1.2 KB
uthash.h 73.1 KB
wg-obfuscator.c 7.5 KB
wg-obfuscator.conf 6.7 KB
wg-obfuscator.h 4.4 KB
wg-obfuscator.service 259 B
README.md

wg-obfuscator Alexey Cluster - оптимизированная сборка для домашних роутеров

Форк проекта wg-obfuscator с оптимизацией производительности для архитектур mips, mipsel, aarch64.


Файлы репозитория

  • оригинальные скрипты и вспомогательные файлы — находятся в репозитории и не включают сторонние бинарники.

Режимы обфускации

Обфускатор выбирается флагом -M / --mode (или ключом mode в конфиге). Значение по умолчанию — wireguard.

  • wireguard (wg) — UDP-релей, обфусцирующий трафик WireGuard. К этому режиму относятся маскировка (STUN/MEDIA), статические привязки и опции media-*.

  • socks5 — TCP-релей для SOCKS5-прокси на тот случай, когда UDP заблокирован. Разворачивается симметричной парой: клиентская сторона слушает локальный SOCKS5-клиент и форвардит на серверную сторону (target), которая форвардит деобфусцированный поток на реальный SOCKS5-сервер (свой target). Ключ (key) и режим (mode) должны совпадать на обеих сторонах. Маскировка masking тоже работает: STUN — поток как звонок (STUN-сессия), MEDIA — как RTP/H.264-стрим (для надёжного детекта задайте media-ssrc), TLS — как HTTPS (TLS application_data). Значение — одинаковое на обеих сторонах.

    Роли (-R/--role, только socks5):

    • relay (по умолчанию) — прозрачный обфусцирующий релей на реальный SOCKS5-сервер; поддерживает несколько TCP-маршрутов через static-bindings (<listen_port>:<target_host>:<target_port>,...).
    • client — локальный SOCKS5-сервер: терминирует SOCKS5 приложения (CONNECT и UDP ASSOCIATE) и туннелирует на server-роль.
    • server — выход: набирает запрошенные цели напрямую (встроенная терминация SOCKS5, внешний демон не нужен), target не требуется. UDP ASSOCIATE туннелируется поверх обфусцированного TCP.

Концепция и детали реализации: docs/SOCKS5-obfuscation-concept.md.

Благодарности

Особая благодарность мэйнтейнеру Alexey Cluster за исходный проект и работу над инструментом.