Протоколы туннеля (Xray / LibXray)
Поддерживаемые исходящие протоколы
Туннель строится через XrayConfigBuilder.buildJSON → LibXray RunXrayFromJSON. Для выбранного узла формируется outbound с тегом proxy:
| Источник узла | Протоколы |
|---|---|
| Share-ссылки | vless://, vmess://, trojan://, ss:// (Shadowsocks), hy2:// / hysteria2:// (Hysteria2) |
| JSON подписки (sing-box / xray, в т.ч. Remnawave) | vless, vmess, trojan, shadowsocks, hysteria (v2) — outbound целиком кодируется как sharx-xray-outbound:… без потери полей |
Тип unknown или неподдерживаемый outbound по-прежнему приводит к ошибке при генерации конфига.
Hysteria2 и TLS-фрагментация: для QUIC/Hysteria2 режим фрагментации TLS не применяется (нет дополнительного freedom dialer и dialerProxy на proxy).
Версия ядра: outbound hysteria и транспорты вроде xhttp требуют достаточно новой сборки Xray-core внутри LibXray; пересоберите Vendor/LibXrayLocal скриптом Scripts/build-libxray-ios.sh при необходимости.
Inbound и ядро
Генерируется inbound tun со stack: system, сеть 198.18.0.1/30, MTU 9000. Запуск в расширении — LibXray RunXrayFromJSON с конфигом из App Group.
Версия ядра, на которую ссылается UI настроек: см. экран «Ядро и открытый код» и репозиторий Xray-core (включая указанный релиз).
Разбор VLESS URL
Из vless://uuid@host:port?...#name:
| Query (регистр имён не важен) | Использование |
|---|---|
security |
tls, reality или иное → none |
sni |
serverName в TLS/Reality |
fp |
fingerprint (по умолчанию chrome) |
type |
Транспорт: tcp (по умолчанию), ws, grpc, xhttp |
path |
Для ws путь (по умолчанию /) |
host |
Для ws: заголовок Host (иначе sni/хост) |
serviceName |
Для grpc |
pbk, sid, spx |
Для reality: publicKey, shortId, spiderX (по умолчанию spx = /) |
flow |
Поле flow пользователя VLESS (если непусто) |
UUID — компонент user URL; поле пользователя VLESS, где задаётся метод, в клиенте всегда none.
Для type=xhttp используются path, host, при необходимости mode и extra (как в share-ссылках XHTTP).
Кратко: другие схемы
- VMess — классический
vmess://+ Base64 JSON (поляadd,port,id,net,tls,path,hostи т.д.). - Trojan —
trojan://password@host:port?...(как VLESS по query для TLS/Reality/WS/gRPC/xhttp). - Shadowsocks —
ss://(в т.ч. base64 userinfo@host:port). - Hysteria2 —
hy2:///hysteria2://с querysni,insecure,alpnи паролем в userinfo.
DNS и routing в конфиге
Если активный профиль маршрутизации выключен или не выбран, DNS по умолчанию — 1.1.1.1 и 8.8.8.8, трафик идёт в outbound с тегом proxy без split-правил.
См. routing-profile-schema.md для полей профиля.