Сервер 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 лише сервери shadowsocks-rust пропонують aes-*-ccm, aes-*-gcm-siv і sm4-*, і мало хто з постачальників їх використовує.
Ключі 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
UDP для серверів Shadowsocks типово ввімкнено, і він працює з кожним підтримуваним шифром. Вимкніть його в параметрах сервера, якщо ваш сервер не ретранслює UDP.
UDP не надсилається через плагін, тож із плагіном, відмінним від Simple Obfs, сервер передає лише TCP. Potatso не підтримує UDP-over-TCP (udp-over-tcp або uot у посиланні чи підписці) і не імпортує сервер, якому він потрібен.
Підтримка можливостей
| Можливість | Підтримується |
|---|---|
Посилання SIP002 ss:// |
✅ Зокрема старіша форма 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 приймає стандартний і URL-безпечний Base64, із доповненням = або без нього. Коли Potatso ділиться сервером, він пропонує форми SIP002 у Base64 і з відсотковим кодуванням та старішу форму.
Приклади
Кожен приклад показує посилання для імпорту. Пароль у прикладах 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