Сервер Shadowsocks описывается шифром и паролем, а при необходимости еще и плагином, который маскирует соединение. Potatso подключается к серверу, если поддерживает его шифр и, при наличии, плагин. Используйте таблицы ниже, чтобы проверить настройки своего сервера, показанные провайдером или в его ссылке ss://.
Сервер Shadowsocks можно добавить вручную, с помощью ссылки ss:// или импортом:
- подписки Clash или Mihomo,
- онлайн-конфигурации SIP008 из файла или по ссылке,
config.jsonот shadowsocks-rust или shadowsocks-libev,- конфигурации Surge либо конфигурации Xray или V2Ray.
Шифры
Если сервер предлагает шифр 2022, выбирайте его, затем шифр AEAD. У потоковых шифров есть известные слабости: используйте их только с серверами, которые не предлагают ничего другого.
| Шифр | Вид | Поддержка |
|---|---|---|
2022-blake3-aes-128-gcm, 2022-blake3-aes-256-gcm |
2022 | ✅ С несколькими пользователями |
2022-blake3-chacha20-poly1305, 2022-blake3-chacha8-poly1305 |
2022 | ✅ |
aes-128-gcm, aes-192-gcm, aes-256-gcm |
AEAD | ✅ |
chacha20-ietf-poly1305, xchacha20-ietf-poly1305 |
AEAD | ✅ |
aes-128-ccm, aes-256-ccm, aes-128-gcm-siv, aes-256-gcm-siv |
AEAD | ✅ |
sm4-gcm, sm4-ccm |
AEAD | ✅ |
aes-128-ctr, aes-192-ctr, aes-256-ctr |
Потоковый | ✅ |
aes-128-cfb, aes-192-cfb, aes-256-cfb (также пишется -cfb128) |
Потоковый | ✅ |
aes-128-cfb1, aes-192-cfb1, aes-256-cfb1 |
Потоковый | ✅ |
aes-128-cfb8, aes-192-cfb8, aes-256-cfb8 |
Потоковый | ✅ |
aes-128-ofb, aes-192-ofb, aes-256-ofb |
Потоковый | ✅ |
camellia-128-ctr, camellia-192-ctr, camellia-256-ctr |
Потоковый | ✅ |
camellia-128-cfb, camellia-192-cfb, camellia-256-cfb (также пишется -cfb128) |
Потоковый | ✅ |
camellia-128-cfb1, camellia-192-cfb1, camellia-256-cfb1 |
Потоковый | ✅ |
camellia-128-cfb8, camellia-192-cfb8, camellia-256-cfb8 |
Потоковый | ✅ |
camellia-128-ofb, camellia-192-ofb, camellia-256-ofb |
Потоковый | ✅ |
chacha20-ietf, chacha20, salsa20 |
Потоковый | ✅ |
bf-cfb, rc4-md5, rc4, table |
Потоковый | ✅ |
none (также пишется plain) |
Без шифрования | ✅ |
cast5-cfb, des-cfb, idea-cfb, rc2-cfb, seed-cfb, rc4-md5-6 |
Потоковый | ❌ Только ShadowsocksR |
xchacha20, xsalsa20 |
Потоковый | ❌ |
Регистр в названиях не важен, поэтому AES-256-GCM работает так же, как aes-256-gcm.
none отправляет ваш трафик без шифрования. Используйте его только с плагином, который сам шифрует соединение, например v2ray-plugin с TLS.
Каждый поддерживаемый шифр проверен как минимум на одном настоящем сервере Shadowsocks: shadowsocks-rust, sing-box или оригинальном сервере на Python. Из перечисленных выше шифров AEAD aes-*-ccm, aes-*-gcm-siv и sm4-* предлагают только серверы shadowsocks-rust, и пользуются ими немногие провайдеры.
Ключи 2022
Шифры 2022 (SIP022) используют не пароль, а ключ: случайные байты в кодировке Base64 той длины, которая нужна шифру. Для 2022-blake3-aes-128-gcm нужен 16-байтовый ключ, а для остальных шифров 2022 — 32-байтовый. Используйте ключ точно таким, как он записан на вашем сервере.
Potatso не подключается с ключом неверной длины или с паролем, который не в Base64. Чтобы создать новый ключ для сервера, выполните openssl rand -base64 16 для 2022-blake3-aes-128-gcm или openssl rand -base64 32 для остальных шифров 2022.
Серверы с несколькими пользователями
Сервер 2022 может делить один порт между несколькими пользователями (SIP023). У каждого пользователя свой ключ. Для таких серверов задайте в качестве пароля ключ сервера и свой ключ пользователя через двоеточие:
server-key:user-keyСерверы с несколькими пользователями поддерживают только 2022-blake3-aes-128-gcm и 2022-blake3-aes-256-gcm.
Плагины
Плагин оборачивает соединение Shadowsocks, чтобы его было труднее обнаружить. Эти плагины встроены в Potatso, так что больше ничего устанавливать не нужно.
| Плагин | Имена плагина | Поддержка | UDP |
|---|---|---|---|
| Simple Obfs | obfs-local, simple-obfs, obfs |
✅ obfs=http и obfs=tls |
Отправляется на сервер без плагина |
| v2ray-plugin | v2ray-plugin |
✅ WebSocket с TLS или без. Режим QUIC не поддерживается. | ❌ |
| gost-plugin | gost-plugin |
✅ WebSocket с TLS или без | ❌ |
| ShadowTLS | shadow-tls |
✅ Версии 1, 2 и 3 | ❌ |
| Restls | restls |
✅ | ❌ |
| JLS | jls |
✅ | ❌ |
Potatso не импортирует сервер, которому нужен другой плагин:
- Cloak, xray-plugin и другие плагины — это программы, которые устройству пришлось бы запускать рядом с Potatso, а iOS этого не позволяет.
- kcptun и ech-tls-tunnel в Potatso пока недоступны.
Настройка плагина
В настройках сервера выберите плагин в поле Плагин, затем введите его параметры в Параметр плагина. Параметры — это пары key=value, разделенные точками с запятой, как в этом примере для Simple Obfs:
obfs=tls;obfs-host=cdn.example.comКлюч без значения, например tls, включает этот параметр. Опускайте параметры, которые вам не нужны; значения по умолчанию указаны в таблицах ниже.
При импорте сервера Potatso сам задает плагин и его параметры:
- Ссылка
ss://содержит их в параметреpluginпосле имени плагина:simple-obfs;obfs=tls;obfs-host=cdn.example.com. - Подписка Clash или Mihomo содержит их в
pluginиplugin-opts. - Конфигурация SIP008 или
config.jsonот shadowsocks-rust либо shadowsocks-libev содержит их вpluginиplugin_opts.
Во всех видах это одни и те же параметры. Если провайдер перечисляет их по одному в строке, как в plugin-opts Clash, запишите каждый как key=value и соедините точками с запятой.
Параметры плагинов
Simple Obfs
| Параметр | Описание |
|---|---|
obfs |
Обязательный. http или tls. |
obfs-host |
Заголовок Host (http) или имя сервера, отправляемое при TLS-рукопожатии (tls). Если пусто, Potatso использует адрес сервера. |
obfs-uri |
Только для http. Путь запроса. По умолчанию /. |
http-method |
Только для http. Метод запроса. По умолчанию GET. |
v2ray-plugin
| Параметр | Описание |
|---|---|
mode |
websocket, по умолчанию. Режим QUIC не поддерживается. |
tls |
Подключается по TLS. По умолчанию выключен. |
host |
Заголовок Host и имя сервера для TLS. Если пусто, Potatso использует адрес сервера. |
path |
Путь WebSocket. По умолчанию /. |
mux |
Мультиплексирование. По умолчанию выключено. Включайте, только если его использует ваш сервер. |
skip-cert-verify |
Принимает любой сертификат сервера. Используйте только с сервером, которому доверяете. |
header |
Дополнительный заголовок запроса в виде header=Name:Value. Повторите его для других заголовков. |
gost-plugin
| Параметр | Описание |
|---|---|
mode |
Обязательный. websocket. |
tls |
Подключается по TLS. По умолчанию выключен. |
host |
Заголовок Host и имя сервера для TLS. По умолчанию bing.com, как в gost. |
path |
Путь WebSocket. По умолчанию /. |
mux |
Мультиплексирование. По умолчанию включено. |
skip-cert-verify |
Принимает любой сертификат сервера. Используйте только с сервером, которому доверяете. |
fingerprint |
Отпечаток SHA-256 сертификата сервера, чтобы принимать только этот сертификат. |
header |
Дополнительный заголовок запроса в виде header=Name:Value. Повторите его для других заголовков. |
ShadowTLS
| Параметр | Описание |
|---|---|
host |
Обязательный. Имя сервера сайта-прикрытия, например www.example.com. |
version |
Обязательный. 1, 2 или 3. |
password |
Пароль. Нужен для версий 2 и 3. |
alpn |
Список ALPN через запятую. По умолчанию h2,http/1.1. |
skip-cert-verify |
Принимает любой сертификат сайта-прикрытия. |
Restls
| Параметр | Описание |
|---|---|
host |
Обязательный. Имя сервера сайта-прикрытия. |
password |
Обязательный. Пароль. |
version-hint |
Обязательный. tls13 или tls12, в зависимости от настройки вашего сервера. |
restls-script |
Сценарий записей, если его предоставляет провайдер. |
JLS
| Параметр | Описание |
|---|---|
host |
Обязательный. Имя сервера сайта-прикрытия. |
username |
Обязательный. Имя пользователя. |
password |
Обязательный. Пароль. |
alpn |
Список ALPN через запятую. По умолчанию h2,http/1.1. |
Potatso не подключается к серверу, если не хватает обязательного параметра или значение недопустимо.
UDP
Для серверов Shadowsocks UDP включен по умолчанию и работает со всеми поддерживаемыми шифрами. Выключите его в настройках сервера, если ваш сервер не ретранслирует UDP.
UDP не отправляется через плагин, поэтому с любым плагином, кроме Simple Obfs, сервер передает только TCP. Potatso не поддерживает UDP-over-TCP (udp-over-tcp или uot в ссылке или подписке) и не импортирует сервер, которому он нужен.
Поддержка возможностей
| Возможность | Поддержка |
|---|---|
Ссылки ss:// по SIP002 |
✅ Включая старую форму Base64 |
| Плагины SIP003 | Только встроенные плагины |
| SIP003u (UDP через плагин) | ❌ |
| Шифры AEAD (SIP004) | ✅ |
| Онлайн-конфигурация SIP008 | ✅ |
| Шифры 2022 по SIP022 | ✅ TCP и UDP |
| Заголовки идентификации нескольких пользователей SIP023 | ✅ Для шифров AES 2022 |
| Потоковые шифры | ✅ См. Шифры |
| UDP-over-TCP | ❌ |
| TCP Fast Open, MPTCP | ❌ |
Некоторые возможности shadowsocks-rust — это настройки его собственной клиентской программы sslocal, а Potatso решает ту же задачу по-своему:
- Локальные серверы SOCKS5, HTTP, tunnel, redir, DNS и TUN: Potatso сам перехватывает трафик вашего устройства.
- Списки контроля доступа (ACL): используйте правила в своем профиле.
- Выбор самого быстрого из нескольких серверов: используйте группу прокси в своем профиле.
Ссылки ss://
Ссылка ss:// содержит весь сервер в одной строке (SIP002):
ss://userinfo@host:port/?plugin=…#name| Часть | Описание |
|---|---|
userinfo |
Шифр и пароль в виде cipher:password в кодировке Base64 или с процентным кодированием. Шифр 2022 должен использовать форму с процентным кодированием. |
host |
Адрес сервера. Адрес IPv6 заключайте в квадратные скобки, например [2001:db8::1]. |
port |
Порт сервера. |
plugin |
Необязательный. Имя плагина и его параметры через точку с запятой, с процентным кодированием, например simple-obfs;obfs=tls;obfs-host=cdn.example.com. |
name |
Необязательный. Название сервера в Potatso. |
Potatso также импортирует старую форму, где всё до # закодировано в Base64:
ss://base64(cipher:password@host:port)#namePotatso принимает стандартный Base64 и Base64 для URL, с дополнением = и без него. Когда Potatso делится сервером, он предлагает формы Base64 и с процентным кодированием по SIP002, а также старую форму.
Примеры
В каждом примере показана ссылка для импорта. Пароль в примерах с AEAD — secret.
Обычный сервер с aes-256-gcm:
ss://YWVzLTI1Ni1nY206c2VjcmV0@ss.example.com:8388#BasicСервер 2022 с 16-байтовым ключом MTIzNDU2Nzg5MDEyMzQ1Ng==:
ss://2022-blake3-aes-128-gcm:MTIzNDU2Nzg5MDEyMzQ1Ng%3D%3D@ss.example.com:8388#2022Сервер 2022 с несколькими пользователями: ключ сервера и ключ пользователя разделены двоеточием (%3A):
ss://2022-blake3-aes-256-gcm:MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI%3D%3AYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU%3D@ss.example.com:8388#Multi-userSimple Obfs с TLS, имя сервера — cdn.example.com:
ss://YWVzLTI1Ni1nY206c2VjcmV0@ss.example.com:443/?plugin=simple-obfs%3Bobfs%3Dtls%3Bobfs-host%3Dcdn.example.com#ObfsСтарая форма обычного сервера:
ss://YWVzLTI1Ni1nY206c2VjcmV0QHNzLmV4YW1wbGUuY29tOjgzODg#LegacyСервер с адресом IPv6:
ss://YWVzLTI1Ni1nY206c2VjcmV0@[2001:db8::1]:8388#IPv6