Реклама

YPtun

#YPtun #Xray #AmneziaWG #TrustTunnel #TURN
YPtun

Xray, sing‑box, Hysteria2, AmneziaWG, TrustTunnel, TURN‑транспорт, MasterDNS, OpenFlux и snolc в одном приложении, с одним Go‑рантаймом на весь процесс. А ещё VLESS с Reality и XHTTP, VMess, Trojan, Shadowsocks, NaiveProxy и WireGuard, всё под Android, Windows, Linux и iOS. Внутри: почему два gomobile‑AAR роняют процесс, как bsdiff упёрся в 2 ГиБ, почему пинг в уведомлении всегда показывал ноль и как перенести данные на новый applicationId, чтобы ими не воспользовалось чужое приложение. Читать далее

Xray, sing‑box, WireGuard и DNS‑туннель в одном процессе: как устроен YPtun изнутри

Проект начинался как Olcbox, маленький конфигуратор для одного экспериментального транспорта. Следы того времени до сих пор живут в коде: версия передаётся в Gradle флагом -Polcbox.version, пакеты называются org.olcbox.app, а главный сервис называется OlcboxVpnService. Переименовывать всё это ни у кого не поднимается рука, и ниже будет понятно почему: одно только переименование applicationId заняло два релиза.

Сейчас это YPtun, открытый сетевой клиент под Android, Windows и Linux, версия для iOS в бете. Внутри Xray и sing‑box, Hysteria2, AmneziaWG, TrustTunnel, TURN‑транспорт, DNS‑туннель и ещё несколько экспериментальных протоколов. Лицензия GPL-3.0, на момент написания актуальна версия 3.6.9.

Сравнивать протоколы по скорости мы не будем. Эта статья про внутренности: как заставить полдюжины Go‑библиотек жить в одном процессе, почему десктопная сборка весила четверть гигабайта, как bsdiff упёрся в предел массива Java на 2 ГиБ, почему пинг в уведомлении всегда показывал ноль и как мы переносили данные пользователей между двумя разными applicationId так, чтобы этим не смогло воспользоваться чужое приложение.