Skip to content

Shadowsocks

Шифры, плагины, ссылки и возможности Shadowsocks, которые поддерживает Potatso.

Updated Открыть как Markdown

Сервер 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:// содержит весь сервер в одной строке (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)#name

Potatso принимает стандартный 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-user

Simple 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
Навигация

Type to search…

↑↓ navigate↵ selectEsc close