Skip to content

Shadowsocks

Le cifrature, i plugin, i link e le funzioni di Shadowsocks supportati da Potatso.

Updated Visualizza come Markdown

Un server Shadowsocks è descritto da una cifratura e da una password, e facoltativamente da un plugin che maschera la connessione. Potatso si connette a un server quando supporta la cifratura e, se presente, il plugin. Usa le tabelle qui sotto per controllare le impostazioni del tuo server, come le indica il tuo provider o come compaiono nel suo link ss://.

Puoi aggiungere un server Shadowsocks a mano, con un link ss://, oppure importando:

  • una sottoscrizione Clash o Mihomo,
  • una configurazione online SIP008, da un file o da un link,
  • un config.json di shadowsocks-rust o shadowsocks-libev,
  • una configurazione Surge, oppure una configurazione Xray o V2Ray.

Cifrature

Preferisci una cifratura 2022 se il tuo server ne offre una, poi una cifratura AEAD. Le cifrature a flusso (stream) hanno debolezze note: usale solo con server che non offrono altro.

Cifratura Tipo Supportata
2022-blake3-aes-128-gcm, 2022-blake3-aes-256-gcm 2022 ✅ Con più utenti
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 Stream ✅
aes-128-cfb, aes-192-cfb, aes-256-cfb (scritta anche -cfb128) Stream ✅
aes-128-cfb1, aes-192-cfb1, aes-256-cfb1 Stream ✅
aes-128-cfb8, aes-192-cfb8, aes-256-cfb8 Stream ✅
aes-128-ofb, aes-192-ofb, aes-256-ofb Stream ✅
camellia-128-ctr, camellia-192-ctr, camellia-256-ctr Stream ✅
camellia-128-cfb, camellia-192-cfb, camellia-256-cfb (scritta anche -cfb128) Stream ✅
camellia-128-cfb1, camellia-192-cfb1, camellia-256-cfb1 Stream ✅
camellia-128-cfb8, camellia-192-cfb8, camellia-256-cfb8 Stream ✅
camellia-128-ofb, camellia-192-ofb, camellia-256-ofb Stream ✅
chacha20-ietf, chacha20, salsa20 Stream ✅
bf-cfb, rc4-md5, rc4, table Stream ✅
none (scritta anche plain) Nessuna cifratura ✅
cast5-cfb, des-cfb, idea-cfb, rc2-cfb, seed-cfb, rc4-md5-6 Stream ❌ Solo ShadowsocksR
xchacha20, xsalsa20 Stream ❌

I nomi non distinguono maiuscole e minuscole, quindi AES-256-GCM funziona come aes-256-gcm.

none invia il tuo traffico senza cifratura. Usala solo con un plugin che cifra da sé la connessione, come v2ray-plugin con TLS.

Ogni cifratura supportata è testata con almeno un server Shadowsocks reale: shadowsocks-rust, sing-box o il server Python originale. Tra le cifrature AEAD qui sopra, solo i server shadowsocks-rust offrono aes-*-ccm, aes-*-gcm-siv e sm4-*, e pochi provider le usano.

Chiavi 2022

Le cifrature 2022 (SIP022) non usano una password. Usano una chiave: byte casuali, codificati in Base64, della lunghezza richiesta dalla cifratura. 2022-blake3-aes-128-gcm richiede una chiave di 16 byte e le altre cifrature 2022 una chiave di 32 byte. Usa la chiave esattamente come l'ha il tuo server.

Potatso non si connette con una chiave della lunghezza sbagliata, né con una password che non è in Base64. Per creare una nuova chiave per il tuo server, esegui openssl rand -base64 16 per 2022-blake3-aes-128-gcm, oppure openssl rand -base64 32 per le altre cifrature 2022.

Server con più utenti

Un server 2022 può condividere una porta tra più utenti (SIP023). Ogni utente ha la propria chiave. Per questi server, imposta la password sulla chiave del server e sulla tua chiave utente, separate da due punti:

server-key:user-key

Solo 2022-blake3-aes-128-gcm e 2022-blake3-aes-256-gcm supportano i server con più utenti.

Plugin

Un plugin avvolge la connessione Shadowsocks per renderla più difficile da rilevare. Potatso li ha integrati, quindi non c'è nient'altro da installare.

Plugin Nomi del plugin Supportato UDP
Simple Obfs obfs-local, simple-obfs, obfs ✅ obfs=http e obfs=tls Inviato al server senza il plugin
v2ray-plugin v2ray-plugin ✅ WebSocket, con o senza TLS. La modalità QUIC non è supportata. ❌
gost-plugin gost-plugin ✅ WebSocket, con o senza TLS ❌
ShadowTLS shadow-tls ✅ Versioni 1, 2 e 3 ❌
Restls restls ✅ ❌
JLS jls ✅ ❌

Potatso non importa un server che richiede un altro plugin:

  • Cloak, xray-plugin e altri plugin sono programmi che il tuo dispositivo dovrebbe eseguire accanto a Potatso, cosa che iOS non consente.
  • kcptun ed ech-tls-tunnel non sono ancora disponibili in Potatso.

Impostare un plugin

Nelle impostazioni del server, scegli il plugin in Plugin, poi inserisci le sue opzioni in Parametro plugin. Le opzioni sono coppie chiave=valore separate da punti e virgola, come in questo esempio di Simple Obfs:

obfs=tls;obfs-host=cdn.example.com

Una chiave da sola, come tls, attiva quell'opzione. Ometti le opzioni che non ti servono; le tabelle qui sotto indicano il valore predefinito di ciascuna.

Quando importi un server, Potatso imposta per te il plugin e le sue opzioni:

  • Un link ss:// le contiene nel parametro plugin, dopo il nome del plugin: simple-obfs;obfs=tls;obfs-host=cdn.example.com.
  • Una sottoscrizione Clash o Mihomo le contiene in plugin e plugin-opts.
  • Una configurazione SIP008 o un config.json di shadowsocks-rust o shadowsocks-libev le contiene in plugin e plugin_opts.

Sono le stesse opzioni in ogni forma. Se il tuo provider le elenca una per riga, come in plugin-opts di Clash, scrivi ciascuna come chiave=valore e uniscile con punti e virgola.

Opzioni dei plugin

Simple Obfs

Opzione Descrizione
obfs Obbligatoria. http o tls.
obfs-host L'intestazione Host (http) o il nome del server inviato nell'handshake TLS (tls). Se è vuota, Potatso usa l'indirizzo del server.
obfs-uri Solo http. Il percorso della richiesta. Predefinito /.
http-method Solo http. Il metodo della richiesta. Predefinito GET.

v2ray-plugin

Opzione Descrizione
mode websocket, il valore predefinito. La modalità QUIC non è supportata.
tls Si connette tramite TLS. Disattivata per impostazione predefinita.
host L'intestazione Host e il nome del server per TLS. Se è vuota, Potatso usa l'indirizzo del server.
path Il percorso WebSocket. Predefinito /.
mux Multiplexing. Disattivato per impostazione predefinita. Attivalo solo se il tuo server lo usa.
skip-cert-verify Accetta qualsiasi certificato del server. Usala solo con un server di cui ti fidi.
header Un'intestazione di richiesta aggiuntiva, come header=Nome:Valore. Ripetila per altre intestazioni.

gost-plugin

Opzione Descrizione
mode Obbligatoria. websocket.
tls Si connette tramite TLS. Disattivata per impostazione predefinita.
host L'intestazione Host e il nome del server per TLS. Predefinito bing.com, come in gost.
path Il percorso WebSocket. Predefinito /.
mux Multiplexing. Attivo per impostazione predefinita.
skip-cert-verify Accetta qualsiasi certificato del server. Usala solo con un server di cui ti fidi.
fingerprint L'impronta SHA-256 del certificato del server, per accettare solo quel certificato.
header Un'intestazione di richiesta aggiuntiva, come header=Nome:Valore. Ripetila per altre intestazioni.

ShadowTLS

Opzione Descrizione
host Obbligatoria. Il nome del server del sito di copertura, come www.example.com.
version Obbligatoria. 1, 2 o 3.
password La password. Le versioni 2 e 3 la richiedono.
alpn L'elenco ALPN, separato da virgole. Predefinito h2,http/1.1.
skip-cert-verify Accetta qualsiasi certificato del sito di copertura.

Restls

Opzione Descrizione
host Obbligatoria. Il nome del server del sito di copertura.
password Obbligatoria. La password.
version-hint Obbligatoria. tls13 o tls12, in base alla configurazione del tuo server.
restls-script Lo script dei record, se il tuo provider ne fornisce uno.

JLS

Opzione Descrizione
host Obbligatoria. Il nome del server del sito di copertura.
username Obbligatoria. Il nome utente.
password Obbligatoria. La password.
alpn L'elenco ALPN, separato da virgole. Predefinito h2,http/1.1.

Potatso non si connette a un server quando manca un'opzione obbligatoria o un valore non è valido.

UDP

UDP è attivo per impostazione predefinita per i server Shadowsocks e funziona con ogni cifratura supportata. Disattivalo nelle impostazioni del server se il tuo server non inoltra UDP.

UDP non viene inviato tramite un plugin, quindi con un plugin diverso da Simple Obfs il server trasporta solo TCP. Potatso non supporta UDP-over-TCP (udp-over-tcp o uot in un link o in una sottoscrizione) e non importa un server che lo richiede.

Funzioni supportate

Funzione Supportata
Link ss:// SIP002 ✅ Compresa la vecchia forma Base64
Plugin SIP003 Solo i plugin integrati
SIP003u (UDP tramite un plugin) ❌
Cifrature AEAD (SIP004) ✅
Configurazione online SIP008 ✅
Cifrature 2022 SIP022 ✅ TCP e UDP
Intestazioni di identità multiutente SIP023 ✅ Per le cifrature AES 2022
Cifrature stream ✅ Vedi Cifrature
UDP-over-TCP ❌
TCP Fast Open, MPTCP ❌

Alcune funzioni di shadowsocks-rust sono impostazioni del suo programma client, sslocal, e Potatso svolge lo stesso compito a modo suo:

  • Server locali SOCKS5, HTTP, tunnel, redir, DNS e TUN: Potatso cattura da sé il traffico del tuo dispositivo.
  • Elenchi di controllo degli accessi (ACL): usa le regole del tuo profilo.
  • Scegliere il più veloce tra più server: usa un gruppo proxy nel tuo profilo.

Un link ss:// contiene un intero server in una riga (SIP002):

ss://userinfo@host:port/?plugin=…#name
Parte Descrizione
userinfo La cifratura e la password come cipher:password, codificate in Base64 o con percent-encoding. Una cifratura 2022 deve usare la forma con percent-encoding.
host Indirizzo del server. Metti un indirizzo IPv6 tra parentesi quadre, come [2001:db8::1].
port Porta del server.
plugin Facoltativo. Il nome del plugin e le sue opzioni, separati da punti e virgola e con percent-encoding, come simple-obfs;obfs=tls;obfs-host=cdn.example.com.
name Facoltativo. Il nome del server in Potatso.

Potatso importa anche la vecchia forma, in cui tutto ciò che precede il # è codificato in Base64:

ss://base64(cipher:password@host:port)#name

Potatso accetta Base64 standard e URL-safe, con o senza il padding =. Quando Potatso condivide un server, offre le forme Base64 e con percent-encoding di SIP002 e la vecchia forma.

Ogni esempio mostra il link da importare. La password negli esempi AEAD è secret.

Un server semplice con aes-256-gcm:

ss://YWVzLTI1Ni1nY206c2VjcmV0@ss.example.com:8388#Basic

Un server 2022 con la chiave di 16 byte MTIzNDU2Nzg5MDEyMzQ1Ng==:

ss://2022-blake3-aes-128-gcm:MTIzNDU2Nzg5MDEyMzQ1Ng%3D%3D@ss.example.com:8388#2022

Un server 2022 con più utenti, con la chiave del server e la chiave utente separate da due punti (%3A):

ss://2022-blake3-aes-256-gcm:MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI%3D%3AYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU%3D@ss.example.com:8388#Multi-user

Simple Obfs con TLS, usando cdn.example.com come nome del server:

ss://YWVzLTI1Ni1nY206c2VjcmV0@ss.example.com:443/?plugin=simple-obfs%3Bobfs%3Dtls%3Bobfs-host%3Dcdn.example.com#Obfs

La vecchia forma del server semplice:

ss://YWVzLTI1Ni1nY206c2VjcmV0QHNzLmV4YW1wbGUuY29tOjgzODg#Legacy

Un server con un indirizzo IPv6:

ss://YWVzLTI1Ni1nY206c2VjcmV0@[2001:db8::1]:8388#IPv6
Navigazione

Type to search…

↑↓ navigate↵ selectEsc close