Self-hosted private preview · multipath IP transport

Один системный IP‑туннель. Несколько физических путей.

PLY переносит системный IP-трафик macOS через несколько независимых сетей и выпускает его через Linux-сервер. TCP, UDP, ICMP — без SDK, SOCKS и переделки приложений.

  • TCPлюбой порт
  • UDPлюбой порт
  • IPICMP и другие
Схема маршрута · демонстрация Физические выходы
3 ACTIVE
Интерактивная схема multipath-туннеля PLY Mac отправляет системный IP-трафик по проводному, сотовому и спутниковому каналам на Linux-сервер с Forward и NAT. macOS · utun PLY SERVER TUN → NAT SATELLITE 5G WIRED SRC 10.240.0.2/32 FORWARD / MASQUERADE

Выключите путь: туннель сохранится на оставшихся подтверждённых выходах. Это схема поведения, не live-телеметрия.

L3

Системный IP-туннельНе прокси и не video-only

Несколько физических путейПровод, сотовая сеть, спутник

Linux Forward / NATОбычный выход приложений в сеть

14+

Нативный клиент macOSPacket Tunnel и UI в исходниках

От приложения до uplink

Один пакет. Четыре проверяемых перехода.

PLY не требует интеграции в приложение. macOS отдаёт целый IP-пакет системному Packet Tunnel, а сервер возвращает ответ тем же защищённым маршрутом.

  1. 01 CLIENT

    Приложение пишет в обычную сеть

    Браузер, терминал, звонок или собственный протокол видят системный интерфейс. TCP/UDP не разбираются и не подменяются.

  2. 02 PACKET FLOW

    Packet Tunnel передаёт raw IP

    Network System Extension и same-user relay проводят пакеты в Rust-клиент через аутентифицированный локальный bridge; signed release остаётся отдельным gate.

  3. 03 MULTIPATH

    Транспорт распределяет по доступным каналам

    Подтверждённые независимые пути получают зашифрованные UDP-датаграммы; scheduler, ACK, FEC и congestion control переживают смену условий.

  4. 04 EGRESS

    Linux маршрутизирует или делает NAT

    Persistent TUN выпускает разрешённый трафик в routed-сеть или через выбранный uplink с MASQUERADE в режиме Forward.

Что меняется в сети

Не приложение поверх туннеля. Сама сеть — поверх нескольких путей.

VPN / 01

Transparent VPN

Любой IP-трафик — без специального клиента у приложения

Full-tunnel или заданные маршруты проходят через `utun`. Внутри — IPv4/IPv6, TCP, UDP, DNS, ICMP и другие разрешённые IP-протоколы; внешний transport endpoint исключается из туннеля fail-closed.

  • Системный интерфейс вместо SOCKS/HTTP-прокси
  • Явный MTU и внутренняя фрагментация transport
  • Raw-IP TUN использует единый нейтральный недропаемый класс
PATH / 02

Multipath + failover

Путь считается живым только после проверки фактического выхода

Привязать socket к адресу недостаточно. PLY различает `PROBING`, `ACTIVE`, `MUTED` и `DEAD`, подтверждает независимость каналов и не выдаёт две записи за два физических пути.

ACTIVEPROBINGMUTEDDEAD
EGRESS / 03

Server Forward

Произвольные TCP и UDP выходят через адрес сервера

В `forward` Linux выпускает разрешённые пакеты с TUN через выбранный uplink и применяет MASQUERADE. В `tun` тот же тракт работает как routed/site-to-site без NAT.

FORWARDuplink + NAT
TUNroute, без NAT
POLICY / 04

Security + observability

Доступ к L3 выдаётся отдельно и проверяется на каждом пакете

Устройство получает статический lease, разрешённый режим и CIDR-политику. Source должен точно совпасть с lease; смена прав отзывает старую сессию.

  • Enrollment, fingerprint и rehandshake
  • Prometheus, события, trace и offline bundle
  • Без отправки crash-данных за периметр

Операторский клиент · macOS 14+

Интерфейс, который не называет два ряда двумя каналами.

Главный экран сначала показывает, подтверждён ли физический выход каждого пути, и только потом — задержку, потери, полосу и очередь. Непроведённая проверка не выглядит успехом.

  • 01
    Пути и приборы

    ACTIVE / PROBING / MUTED / DEAD, binding verdict, FEC, распределение полосы и запас до дедлайна.

  • 02
    Управляемый lifecycle

    Enrollment, Start / Stop / Restart, LaunchAgent и активация Network System Extension.

  • 03
    Диагностика без секретов

    Verify, trace, события и offline bundle; ключи не показываются и не экспортируются.

Private preview / build status

Self-hosted ядро работает. Публичная поставка ещё проходит внешние ворота.

Linux server и Rust transport собираются и тестируются из репозитория. Подписанный и нотарифицированный DMG нельзя честно предложить, пока не пройдены Apple signing, физический `utun` smoke и публичная end-to-end приёмка.

Документация в GitLab
Матрица готовностиPLY / RELEASE GATES
  • Linux server + TUN / ForwardReady/selfcheck и внутренний raw-IP TCP/UDP smoke
    ПРОЙДЕНО
  • Rust multipath transportWorkspace, release-safe и interop gates
    ПРОЙДЕНО
  • ·
    Подписанный клиент macOSRunner, Developer ID, notarization, physical utun
    ОЖИДАЕТ
  • ·
    Публичный end-to-endВходящий UDP/5555 и полевой smoke
    ОЖИДАЕТ
Локальная неподписанная сборкаmacOS 14+ · SOURCE
cd mac && PLY_SIGN=0 ./build-app.sh