Skip to content

VMess

Шифри, транспорти, посилання та можливості VMess, які підтримує Potatso.

Updated Відкрити як Markdown

Сервер VMess описують UUID, шифр, що шифрує трафік, і транспорт, що передає з’єднання, наприклад WebSocket чи gRPC, з TLS або без нього. Potatso під’єднується до сервера, коли підтримує шифр, транспорт і параметри TLS сервера. Скористайтеся таблицями нижче, щоб перевірити параметри свого сервера, як їх показує ваш постачальник або вказано в його посиланні vmess://.

Сервер VMess можна додати вручну, через посилання vmess:// або імпортом:

  • підписки Clash чи Mihomo,
  • конфігурації Xray чи V2Ray,
  • конфігурації Surge.

Potatso поки не імпортує сервери VMess із конфігурації sing-box. Натомість використайте посилання vmess:// сервера.

Шифри

Шифр Підтримується
auto ✅ Potatso вибирає aes-128-gcm, який кожен пристрій Apple виконує апаратно.
aes-128-gcm ✅
chacha20-poly1305 ✅
none ✅
zero ❌
aes-128-cfb (застарілий) ❌

none і zero надсилають ваш трафік без шифрування. Використовуйте none лише з TLS, який тоді шифрує з’єднання. Potatso не під’єднується з zero, який також знімає захист від підміни: виберіть на своєму сервері інший шифр.

alterId

Potatso завжди використовує поточну автентифікацію VMess, що відповідає alterId 0. Сервери, чий користувач усе ще має alterId більше 0, приймають її теж, тож сервер можна залишити як є. Potatso не підтримує стару автентифікацію, яку використовував лише alterId більше 0 і яку сервери вважають застарілою з 2022 року.

Транспорти

Транспорт net / type у посиланні Підтримується Перевірено з
Немає (чистий TCP) tcp або нічого ✅ З TLS або без нього Xray, sing-box, V2Ray
WebSocket ws ✅ З TLS або без нього та з ранніми даними Xray, sing-box, V2Ray
gRPC grpc ✅ З TLS або без нього Xray, sing-box, V2Ray
HTTP/2 h2 або http ✅ З TLS sing-box, V2Ray
HTTP Upgrade httpupgrade ✅ З TLS або без нього Xray, sing-box
TCP із заголовком HTTP tcp з type=http ❌
XHTTP xhttp ❌
mKCP, QUIC kcp, quic ❌

Кожен підтримуваний транспорт працює з UDP. Potatso не імпортує сервер, транспорт якого він не підтримує.

Ранні дані WebSocket надсилають перші байти з’єднання разом із рукостисканням WebSocket, заощаджуючи один обмін. Їх задає ?ed=2048 у кінці шляху посилання або max-early-data у підписці Clash.

Xray більше не пропонує HTTP/2: сервери Xray, які його використовували, тепер використовують XHTTP, який Potatso поки не підтримує.

TLS

Параметр Ключ Clash Поле посилання Підтримується
Назва сервера (SNI) servername sni ✅ Без неї Potatso використовує адресу сервера.
ALPN alpn alpn ✅ Без нього Potatso надсилає http/1.1 для WebSocket і h2 для gRPC та HTTP/2.
Пропустити перевірку сертифіката skip-cert-verify allowInsecure ✅
Відбиток браузера client-fingerprint fp ✅ chrome, firefox, safari, ios, android, edge і random. З іншими назвами з’єднання встановлюється зі стандартним рукостисканням.
Закріплення сертифіката fingerprint pcs ❌
REALITY reality-opts security=reality ❌
Encrypted Client Hello (ECH) ech-opts ech ❌
Власний сертифікат CA ❌

Вимкнення перевірки сертифіката дозволяє будь-кому між вами та сервером читати ваш трафік. Potatso не під’єднується до сервера VMess, якому потрібні REALITY, ECH або закріплення сертифіката, бо під’єднання без них не дало б захисту, якого просить сервер. Для REALITY використовуйте VLESS або Trojan.

Відбиток браузера робить рукостискання TLS схожим на рукостискання цього браузера. Він не змінює того, що має підтримувати сервер.

UDP

Для серверів VMess UDP типово вимкнено. Увімкніть Ретрансляція UDP в параметрах сервера або задайте udp: true у підписці Clash.

Potatso надсилає кожен потік UDP через власне з’єднання VMess, що приймає кожен сервер VMess. Він не підтримує кодування XUDP і PacketAddr (packetEncoding у посиланні, packet-encoding або xudp у підписці Clash), які передають багато потоків UDP через одне з’єднання: сервер, налаштований із ними, усе одно працює, а Potatso під час імпорту повідомляє, що натомість використовує власний UDP. Програми, яким потрібен full-cone NAT, як-от деякі ігри, можуть з ним не працювати.

Коли ввімкнено мультиплексування, UDP натомість іде через спільне з’єднання.

Мультиплексування

Potatso може пропускати кілька з’єднань через одне з’єднання VMess, що задається через smux у підписці Clash:

Протокол protocol у smux Сервери
Mux.Cool muxcool Xray, V2Ray і sing-box, без параметра на сервері
sing-mux h2mux, smux, yamux sing-box з увімкненим мультиплексуванням

TCP і UDP працюють обидва. Mux.Cool закриває обидва напрямки з’єднання разом, тож програмі, яка припиняє надсилати й чекає відповіді, слід використовувати сервер без мультиплексування.

Параметри запиту

Клієнт VMess вибирає кілька параметрів для кожного з’єднання, і кожен сервер приймає будь-які з них. Potatso завжди надсилає свій трафік зашифрованими фрагментами та позначає кінець кожного вивантаження, а інших не задає:

Параметр Ключ Clash Potatso
Потік фрагментів Завжди ввімкнено
Маскування фрагментів Вимкнено
Глобальне доповнення global-padding Вимкнено. Potatso попереджає, коли ви імпортуєте сервер, що його задає.
Автентифікована довжина authenticated-length Вимкнено. Potatso попереджає, коли ви імпортуєте сервер, що її задає.

Маскування фрагментів і глобальне доповнення приховують розмір кожного фрагмента від стороннього спостерігача. Без них ваш трафік усе одно не можна прочитати, але його шаблон легше розпізнати.

Великі вивантаження

Одне з’єднання VMess може вивантажити приблизно 1 ГіБ. VMess нумерує свої зашифровані фрагменти лічильником, який вичерпується після цього, а продовження послабило б шифрування, тож Potatso натомість закриває з’єднання. Для завантажень обмежень немає. Для вивантажень понад 1 ГіБ в одному з’єднанні використовуйте сервер VLESS чи Trojan.

Підтримка можливостей

Можливість Підтримується
Автентифікація AEAD (alterId 0) ✅
Стара автентифікація MD5 (alterId більше 0) ❌ Сервери з alterId більше 0 приймають автентифікацію AEAD.
Шифри aes-128-gcm, chacha20-poly1305, none, auto ✅
Шифри zero і застарілий aes-128-cfb ❌
Потік фрагментів, позначка кінця вивантаження ✅
Маскування фрагментів, глобальне доповнення, автентифікована довжина ❌ Сервери приймають з’єднання без них
UDP ✅ Одне з’єднання на потік
Вивантаження понад приблизно 1 ГіБ в одному з’єднанні ❌ Див. Великі вивантаження
XUDP, PacketAddr ❌
Mux.Cool ✅ TCP і UDP
sing-mux (h2mux, smux, yamux) ✅ TCP і UDP
Транспорти Див. Транспорти
TLS Див. TLS
Посилання v2rayN (версія 2) ✅
Посилання Xray ✅
Посилання Shadowrocket Лише імпорт

Посилання vmess:// містить цілий сервер в одному рядку. Potatso імпортує три форми, а поширює перші дві.

Форма v2rayN, найпоширеніша, — це об’єкт JSON, закодований у Base64:

vmess://base64({"v":"2","ps":"name","add":"host","port":"443","id":"uuid",…})
Поле Опис
v Версія формату, 2.
ps Необов’язково. Назва сервера в Potatso.
add Адреса сервера.
port Порт сервера.
id UUID.
aid alterId. Див. alterId.
scy Шифр. Без нього auto.
net Транспорт: tcp, ws, grpc, h2 або httpupgrade.
type none або http для заголовка HTTP у TCP, який Potatso не підтримує.
host Заголовок Host для WebSocket, HTTP/2 і HTTP Upgrade.
path Шлях для WebSocket, HTTP/2 і HTTP Upgrade або назва сервісу для gRPC. Шлях WebSocket може закінчуватися ?ed=2048 для ранніх даних.
tls tls, щоб використовувати TLS, або порожнє.
sni, alpn, fp Назва сервера TLS, список ALPN і відбиток браузера.

Форма Xray — це URL, де шифр указано в encryption, а транспорт і параметри TLS — як параметри запиту:

vmess://uuid@host:port?type=ws&security=tls&sni=…&host=…&path=…&encryption=auto#name
Параметр Опис
type Транспорт.
encryption Шифр. Без нього auto.
security tls або none.
sni, alpn, fp Назва сервера TLS, список ALPN і відбиток браузера.
host, path Заголовок Host і шлях, як у формі v2rayN.
serviceName Назва сервісу gRPC.
ed Ранні дані WebSocket, у байтах.

Potatso також імпортує форму Shadowrocket, vmess://base64(cipher:uuid@host:port)?remarks=…&obfs=websocket&….

Кожен приклад показує посилання для імпорту. UUID — b831381d-6324-4d53-ad4f-8cda48b30811.

WebSocket з TLS і ранніми даними, через cdn.example.com, з відбитком Chrome:

vmess://eyJ2IjoiMiIsInBzIjoiV1MgVExTIiwiYWRkIjoidm1lc3MuZXhhbXBsZS5jb20iLCJwb3J0IjoiNDQzIiwiaWQiOiJiODMxMzgxZC02MzI0LTRkNTMtYWQ0Zi04Y2RhNDhiMzA4MTEiLCJhaWQiOiIwIiwic2N5IjoiYXV0byIsIm5ldCI6IndzIiwidHlwZSI6Im5vbmUiLCJob3N0IjoiY2RuLmV4YW1wbGUuY29tIiwicGF0aCI6Ii9yYXk/ZWQ9MjA0OCIsInRscyI6InRscyIsInNuaSI6ImNkbi5leGFtcGxlLmNvbSIsImFscG4iOiJodHRwLzEuMSIsImZwIjoiY2hyb21lIn0=

gRPC з TLS і aes-128-gcm, назва сервісу vmess-grpc:

vmess://eyJ2IjoiMiIsInBzIjoiZ1JQQyIsImFkZCI6InZtZXNzLmV4YW1wbGUuY29tIiwicG9ydCI6IjQ0MyIsImlkIjoiYjgzMTM4MWQtNjMyNC00ZDUzLWFkNGYtOGNkYTQ4YjMwODExIiwiYWlkIjoiMCIsInNjeSI6ImFlcy0xMjgtZ2NtIiwibmV0IjoiZ3JwYyIsInBhdGgiOiJ2bWVzcy1ncnBjIiwidGxzIjoidGxzIiwic25pIjoidm1lc3MuZXhhbXBsZS5jb20ifQ==

Чистий TCP з chacha20-poly1305, у формі Xray:

vmess://b831381d-6324-4d53-ad4f-8cda48b30811@vmess.example.com:8080?type=tcp&encryption=chacha20-poly1305#Plain%20TCP

HTTP Upgrade з TLS, у формі Xray:

vmess://b831381d-6324-4d53-ad4f-8cda48b30811@vmess.example.com:443?type=httpupgrade&security=tls&sni=cdn.example.com&host=cdn.example.com&path=%2Fupgrade&encryption=auto#HTTP%20Upgrade

У підписці Clash

proxies:
  - name: VMess WS
    type: vmess
    server: vmess.example.com
    port: 443
    uuid: b831381d-6324-4d53-ad4f-8cda48b30811
    alterId: 0
    cipher: auto
    udp: true
    tls: true
    servername: cdn.example.com
    network: ws
    ws-opts:
      path: /ray
      headers:
        Host: cdn.example.com
      max-early-data: 2048
      early-data-header-name: Sec-WebSocket-Protocol
Навігація

Type to search…

↑↓ navigate↵ selectEsc close