Сервер 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