Как читать ссылку vmess://, vless://, ss:// или trojan://

Что означает каждая часть ссылки конфига V2Ray: примеры с условными данными для VLESS, VMess, Shadowsocks и Trojan и почему ссылка — это учётные данные.

Проверено:

Ссылка конфига упаковывает всё, что нужно клиенту, в одну строку: сервер, ключ и настройки транспорта. Если уметь её читать, видно, что вам выдали и почему конфиг не работает. Во всех примерах ниже условные данные, а не настоящие серверы.

VLESS

vless://[email protected]:443?encryption=none&security=reality&sni=site.example&fp=chrome&pbk=PUBLIC_KEY&sid=SHORT_ID&type=tcp&flow=xtls-rprx-vision#my-config
ЧастьЗначение
00000000-…Идентификатор пользователя (UUID). Это ключ: кто его знает, тот может пользоваться сервером.
server.example:443Адрес и порт сервера.
encryption=noneVLESS сам ничего не шифрует; трафик защищает слой защиты.
securitynone, tls или reality.
sniИмя сервера в TLS-рукопожатии. В REALITY это настоящий сайт, который имитируется.
fpОтпечаток TLS, который имитирует клиент, например chrome.
pbk, sidПубличный ключ REALITY и короткий идентификатор. Оба должны точно совпадать с сервером.
typeТранспорт: tcp, ws (WebSocket), grpc и другие.
flowxtls-rprx-vision — поток Vision, используется с REALITY или TLS поверх TCP.
path, host, serviceNameНастройки транспорта WebSocket или gRPC, если он используется.
#my-configНазвание, которое показывается в списке.

VMess

Ссылка vmess:// — это префикс и Base64 небольшого JSON-документа. После декодирования она выглядит так:

{"v":"2","ps":"my-config","add":"server.example","port":"443","id":"00000000-0000-0000-0000-000000000000","aid":"0","scy":"auto","net":"ws","type":"none","host":"server.example","path":"/path","tls":"tls","sni":"server.example"}

add и port — сервер, id — UUID, aid — устаревший alter ID (должен быть 0), net — транспорт, host и path относятся к WebSocket, tls включает TLS, а ps — название. Чтобы расшифровать вручную, возьмите текст после vmess:// и пропустите его через base64 -d.

Shadowsocks

ss://BASE64(method:password)@server.example:8388#my-config

Часть до @ — шифр и пароль в кодировке Base64. Берите AEAD-шифр. Старые потоковые шифры вроде rc4-md5 или aes-256-cfb слабы. Некоторые старые ссылки кодируют в Base64 целиком method:password@host:port.

Trojan

trojan://[email protected]:443?security=tls&sni=server.example&type=tcp#my-config

Часть до @ — пароль. Trojan нужен TLS для защиты трафика, поэтому security=tls должно быть.

Подписки

Адрес подписки возвращает список ссылок, обычно в Base64, по одной в строке. Приложение скачивает его, декодирует и добавляет каждую ссылку. Когда провайдер заменяет заблокированные серверы, обновление подписки приносит новые.

Ошибки, которые ломают ссылку

Декодер ссылок проверяет самые частые:

  • неверный UUID или порт;
  • REALITY без публичного ключа или имени сервера;
  • VLESS или Trojan без TLS;
  • включённый allowInsecure, который отключает проверку сертификатов;
  • устаревший шифр Shadowsocks;
  • ненулевой alter ID у VMess.

Одна неверная буква в pbk или sid приводит к тому, что конфиг REALITY молча не работает. См. почему соединение может подключиться и всё равно ничего не загрузить.

Ссылка — это учётные данные

UUID или пароль внутри ссылки — ключ к серверу. Любой, у кого есть ссылка, может ею пользоваться, а на общем сервере это может съедать вашу квоту. Не публикуйте ссылки в открытых чатах: к тому же открытую ссылку блокируют скорее.

Декодер на этом сайте разбирает ссылку прямо на странице и никуда ничего не отправляет: при декодировании страница не делает сетевых запросов. Всё равно будьте осторожны с любым онлайн-инструментом, в который вставляете ссылку. Расшифровать её всегда можно и офлайн с помощью base64 -d, как показано выше.

Источники

Принесите свои конфигурации. Оставьте догадки.

Бесплатно в App Store для iPhone, iPad и Mac.