Ground-Zerro / Phobos Public
Code Issues Pull requests Actions Releases View on GitHub ↗
Mirror — read-only view
bin
compat_net.h 435 B
config.c 22.4 KB
config.h 180 B
LICENSE 34.3 KB
Makefile 5.2 KB
masking.c 6.3 KB
masking.h 3.9 KB
masking_handlers.h 306 B
masking_media.c 4.7 KB
masking_media.h 246 B
masking_stun.c 8.8 KB
masking_stun.h 1.9 KB
mini_argp.h 2.6 KB
obfuscation.h 12.1 KB
README.md 3.1 KB
resolve.c 14.2 KB
resolve.h 1.2 KB
runtime.c 3.2 KB
runtime.h 213 B
socks5.c 54.3 KB
socks5.h 1.6 KB
socks5_mask.c 7.0 KB
socks5_mask.h 993 B
socks5_proto.c 5.6 KB
socks5_proto.h 1.9 KB
threading.c 22.7 KB
threading.h 1.2 KB
uthash.h 72.0 KB
wg-obfuscator.c 9.3 KB
wg-obfuscator.conf 6.5 KB
wg-obfuscator.h 4.6 KB
wg-obfuscator.service 245 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 за исходный проект и работу над инструментом.