Сервер 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://
Посилання 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%20TCPHTTP 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