Shadowsocks hè un protocolu proxy criptatu ligeru, basatu annantu à SOCKS5, cuncipitu à l'origine per aggirà a furmazione è u bloccu di u trafficu nantu à e rete ordinarie. À u cuntrariu di una VPN cumpleta, trasmette solu u trafficu chì una applicazione li manda esplicitamente, ùn hà guasi nisun overhead di protocolu è funziona bè ancu nantu à cunnessione vincolate. Ùn prova micca à imità una vera stretta di manu TLS cum'è VLESS+Reality - a so forza hè a simplicità, l'ampiu supportu per i clienti (router, telefoni, navigatori) è una latenza assai bassa, à u costu di esse un pocu più faciule da rilevà per mudellu di trafficu nantu à una rete assai ispezionata.
Ci sò duie implementazioni di servitore mantenute attivamente:
- shadowsocks-rust — l'implementazione di riferimentu muderna di l'urganizazione shadowsocks, scritta in Rust. Supporta a nova famiglia di cifrari AEAD-2022, hè sviluppata attivamente, è hè l'implementazione chì sta guida installa è cunfigura in dettagliu.
- shadowsocks-libev — l'implementazione C più vechja. Hè sempre mantenuta per e correzioni di bug, hè spedita cum'è un pacchettu apt prontu à l'usu cù e so unità systemd, è hè una bona scelta sè vulete l'installazione più simplice senza gestione manuale di i binarii. Questa guida a copre cum'è un percorsu d'installazione alternativu in a Sezione 3.
Questa guida descrive cumu cunfigurà manualmente u servitore via a linea di cummanda, senza aduprà un pannellu web o Docker. Induve appare u campu "indirizzu IP", sustituitelu cù l'indirizzu IP attuale di u vostru VPS.
Ciò chì vi serve: un VPS cù Ubuntu 22.04/24.04 o Debian 11/12, accessu root, l'indirizzu IP di u vostru VPS è una porta UDP/TCP gratuita (sta guida usa 8388, a porta predefinita di Shadowsocks).
Ùn avete ancu un servitore ? Vede Cumu urdinà un servitore è pagà per ellu.
Vulete prima paragunà questu cù altre opzioni auto-ospitate? Vede a Guida di Realtà Xray VLESS per una alternativa basata nantu à u camouflage TLS, a Guida di implementazione di u servitore AmneziaWG per una opzione basata nantu à WireGuard, o a cunfigurazione di Hysteria2 è TUIC per altri dui protokolli proxy muderni.
Cunnessu à u Servitore
Finestre (PuTTY)
Aprite PuTTY, inserite u vostru indirizzu IP VPS in u campu Nome Host, impostate u portu à 22, è cunnettatevi cum'è root cù a password chì u vostru fornitore VPS vi hà mandatu per email.
Indirizzu IP di u servitore: u vostru indirizzu IP
login cum'è: root
Parola d'accessu: a vostra password
Per una guida dettagliata di cunnessione via PuTTY/SSH, vede Cumu cunnette si à un servitore Linux via SSH.
Linux / macOS (terminale)
ssh root@your_IP_address
Tutti i cumandamenti quì sottu sò eseguiti nant'à u servitore, in a listessa sessione SSH - chì copre e Sezzioni da 2 à 7, più i cuntrolli lato servitore in a Sezzione 13. E Sezzioni 8-12 (installazione è cunfigurazione di l'applicazioni client) si facenu invece nant'à u vostru propiu dispositivu Windows/macOS/Linux/Android/iOS, postu chì hè quellu dispositivu nant'à u quale u proxy deve esse eseguitu; ognuna di queste sezzioni dice esplicitamente quali linee, s'ellu ci n'hè, toccanu sempre u servitore.
Preparazione di u Servitore
Aghjurnà u sistema
Prima di installà qualcosa, rinfrescate a lista di pacchetti è aghjurnate i pacchetti installati:
apt update -y && apt upgrade -y
Sè questu aghjurnà u kernel, un riavviu hè una bona idea prima di cuntinuà. (Per un rinfrescante nantu à apt è cumu funzionanu i gestori di pacchetti Linux, vede Gestori di pacchetti Linux .) Verificate cù:
cat /var/run/reboot-required
Sè u schedariu esiste, riavviate prima cù 'reboot', aspettate ~30 secondi, poi ricunnettetevi.
Installate l'arnesi chì sta guida usa
apt install -y curl wget tar xz-utils ufw qrencode
curl/wget è tar/xz-utils sò necessarii per recuperà è spacchettà l'archiviu di liberazione shadowsocks-rust; ufw hè u firewall cunfiguratu quì sottu; qrencode trasforma u ligame client finitu in un codice QR scansionabile in a Sezione 7.
Cunfigurà u firewall (UFW)
Per sapenne di più nantu à e regule UFW, vede Configurazione di u Firewall in Linux.
Apri i dui porti chì ti serviranu: 22/tcp per SSH (salta sta regula è risicate di perde l'accessu à u servitore) è 8388, tramindui tcp è udp — Shadowsocks face u proxy sia di e cunnessione TCP sia di l'associazioni UDP (utile per DNS è certi ghjochi/applicazioni), dunque e duie direzzione di u portu devenu esse aperte.
ufw allow 22/tcp
ufw allow 8388/tcp
ufw allow 8388/udp
ufw --force enable
ufw status
Tutte e trè regule devenu esse affissate cum'è ALLOW in l'output di statutu ufw. Sè dopu cambiate u portu in config.json, aghjurnate queste regule per chì currispondenu.
Installazione di u Software di u Servitore
Sceglite una di e duie opzioni quì sottu. L'opzione A (shadowsocks-rust) hè cunsigliata: hè l'implementazione sviluppata attivamente è supporta i cifrari AEAD-2022 muderni utilizati più tardi in questa guida. L'opzione B (shadowsocks-libev) hè una bona scelta sè preferite aduprà un pacchettu apt semplice cù una unità systemd pronta è ùn avete micca bisognu di AEAD-2022.
Opzione A — shadowsocks-rust (cunsigliata)
Shadowsocks-rust ùn furnisce micca un pacchettu apt cù e versioni attuali, dunque hè installatu scaricendu u binariu staticu precustruitu da e versioni GitHub di u prugettu. Recuperate l'ultima tag di versione da l'API GitHub è scaricate l'archiviu Linux x86_64 currispundente:
SS_VER=$(curl -s https://api.github.com/repos/shadowsocks/shadowsocks-rust/releases/latest | grep -Po '"tag_name": "\K[^"]*')
echo "Latest version: $SS_VER"
cd /root
wget "https://github.com/shadowsocks/shadowsocks-rust/releases/download/${SS_VER}/shadowsocks-${SS_VER}.x86_64-unknown-linux-gnu.tar.xz"
Sè u vostru VPS hè arm64 invece di x86_64 (verificate cù `uname -m`), rimpiazzate x86_64-unknown-linux-gnu cù aarch64-unknown-linux-gnu in u nome di u schedariu sopra.
Estrae l'archiviu è installate i binari in tuttu u sistema:
tar -xf shadowsocks-*.tar.xz
install -m 755 ssserver ssservice ssmanager ssurl /usr/local/bin/
rm -f shadowsocks-*.tar.xz ssserver ssservice ssmanager ssurl sslocal 2>/dev/null
Verificate chì u binariu sia in piazza è verificate a versione installata:
ssserver --version
Crea u cartulare induve u schedariu di cunfigurazione si truvarà:
mkdir -p /etc/shadowsocks-rust
Questa guida installa una versione fissa invece di mandà un script d'installazione in bash. Per fà l'aghjurnamentu dopu, eseguite di novu i dui cumandamenti sopra cù una nova ricerca SS_VER, fermate u serviziu, rimpiazzate u binariu è riavviatelu (Sezione 6).
Opzione B — shadowsocks-libev (alternativa, pacchettu apt)
Shadowsocks-libev hè inclusu in u repositoriu universu di Ubuntu (Ubuntu 16.10+) è in u repositoriu principale di Debian (Debian 8+), dunque ùn hè necessariu alcun PPA di terze parti in 22.04/24.04 o Debian 11/12:
apt install -y shadowsocks-libev
Sè apt segnala chì u pacchettu ùn hè micca truvatu, u repositoriu di l'universu hè disattivatu; attivatelu è pruvate di novu:
add-apt-repository universe && apt update && apt install -y shadowsocks-libev
U pacchettu installa e so unità systemd (shadowsocks-libev.service per a cunfigurazione predefinita, più [email protected] per e cunfigurazioni per istanza nominate) è crea /etc/shadowsocks-libev/config.json automaticamente - E sezioni 4-6 indicanu i cumandamenti è i percorsi di file specifichi di libev accantu à quelli rust. U restu di e sezioni client di sta guida (7-13) s'applicanu in modu identicu à entrambe l'implementazioni di u servitore, postu chì tramindui parlanu u listessu protocolu Shadowsocks/SIP002 nantu à u filu.
Generà a password è sceglie un cifrariu
L'autentificazione di Shadowsocks hè una sola password spartuta più un cifrariu (metodu di crittografia) chì e duie parti devenu accunsentì - ùn ci hè micca un UUID separatu, una coppia di chjave o un certificatu da gestisce.
Famiglie di cifratura
- AEAD-2022 (cunsigliatu, solu shadowsocks-rust): 2022-blake3-aes-128-gcm, 2022-blake3-aes-256-gcm, 2022-blake3-chacha20-poly1305. Design più recente (SIP022) cù una prutezzione di replay più forte è supportu per parechji utilizatori chì spartenu un portu. A password deve esse una stringa base64 di a lunghezza di a chjave di u cifrariu (16 byte per e varianti di 128 bit, 32 byte per a variante di 256 bit).
- AEAD classicu (supportatu da rust è libev): aes-256-gcm, aes-128-gcm, chacha20-ietf-poly1305. Largamente cumpatibile cù i clienti più vechji è cù shadowsocks-libev; a password pò esse qualsiasi passphrase, postu chì hè alimentata per mezu di una funzione di derivazione di chjave invece di esse aduprata direttamente cum'è materiale di chjave.
Questa guida usa 2022-blake3-aes-256-gcm per u servitore shadowsocks-rust, postu chì hè l'opzione più forte è a più attuale è ogni cliente cunsigliatu dopu (v2rayN, v2rayNG, Shadowrocket, Streisand, ShadowsocksX-NG) a supporta. Sè avete installatu shadowsocks-libev in a Sezione 3, aduprate chacha20-ietf-poly1305 o aes-256-gcm invece, postu chì libev ùn implementa micca AEAD-2022.
Generà una chjave (shadowsocks-rust)
ssservice genkey -m "2022-blake3-aes-256-gcm"
Questu stampa una stringa base64 - hè a vostra password. Copiatela in un locu sicuru; a incollarete sia in a cunfigurazione di u servitore in a Sezione 5 sia in u ligame di u cliente in a Sezione 7.
Sceglite una frase secreta (shadowsocks-libev)
Per i cifrari AEAD classici utilizati da shadowsocks-libev, ogni stringa aleatoria abbastanza longa funziona, postu chì hè eseguita attraversu PBKDF/HKDF invece di esse aduprata cum'è una chjave grezza. Generatene unu cù:
openssl rand -base64 32
Scrittura di a cunfigurazione di u servitore
Calzini d'ombra-ruggine
Apri u schedariu di cunfigurazione per a so mudificazione:
nano /etc/shadowsocks-rust/config.json
Incollate u mudellu quì sottu, sustituendu a vostra propria password da a Sezione 4 (è u portu da a Sezione 2, s'è vo l'avete cambiatu da 8388):
{
"server": "0.0.0.0",
"server_port": 8388,
"password": "YOUR-GENERATED-KEY-HERE",
"method": "2022-blake3-aes-256-gcm",
"mode": "tcp_and_udp",
"timeout": 300,
"nofile": 51200
}
Appughjà Ctrl+O (WriteOut) per salvà u schedariu, Enter per cunfirmà u nome di u schedariu, dopu Ctrl+X per esce da nano.
I campi impurtanti: u servitore ascolta tutte l'interfacce (0.0.0.0); server_port hè u portu apertu in a Sezione 2; password/method sò e credenziali è u cifrariu di a Sezione 4; mode permette a trasmissione TCP è UDP; timeout hè u timeout di cunnessione inattiva in seconde; nofile aumenta u limite di descrittore di file per i servitori occupati.
Validate u JSON è chì u binariu l'accetta prima di cunnettelu à systemd:
ssserver -c /etc/shadowsocks-rust/config.json --help >/dev/null && echo "binary OK"
python3 -m json.tool /etc/shadowsocks-rust/config.json >/dev/null && echo "JSON OK"
Crea l'unità systemd (shadowsocks-rust)
A versione binaria ùn include micca un'unità systemd, dunque creane una:
nano /etc/systemd/system/ssserver.service
[Unit]
Description=Shadowsocks-Rust Server
Documentation=https://github.com/shadowsocks/shadowsocks-rust
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks-rust/config.json
Restart=on-failure
RestartSec=5s
LimitNOFILE=51200
User=root
[Install]
WantedBy=multi-user.target
Salvà è esce cum'è sopra, dopu dì à systemd di piglià u novu schedariu d'unità:
systemctl daemon-reload
Shadowsocks-libev
U pacchettu apt hà digià creatu /etc/shadowsocks-libev/config.json cù una cunfigurazione predefinita (solu loopback, password aleatoria) è a so propria unità systemd. Apritelu per mudificà:
nano /etc/shadowsocks-libev/config.json
Rimpiazzà u cuntenutu cù:
{
"server":"0.0.0.0",
"server_port":8388,
"password":"YOUR-PASSPHRASE-HERE",
"method":"chacha20-ietf-poly1305",
"mode":"tcp_and_udp",
"timeout":300
}
A cunfigurazione predefinita usa u servitore: ["::1", "127.0.0.1"] (solu loopback); cambià lu à "0.0.0.0" hè ciò chì rende u servitore accessibile da l'IP publicu - ùn saltate micca questu se avete copiatu u schedariu stock invece di u mudellu sopra.
Avvio di u serviziu è attivazione di l'avviu automaticu
Calzini d'ombra-ruggine
systemctl enable --now ssserver
systemctl status ssserver --no-pager
U statutu duveria mustrà attivu (in esecuzione). Cunfirmate chì qualcosa hè veramente in ascoltu nantu à u portu (tramindui i protokolli):
ss -lntp | grep ':8388'
ss -lunp | grep ':8388'
Sè u serviziu ùn riesce micca à principià, u modu u più veloce per vede perchè hè u ghjurnale systemd (per una infurmazione generale nantu à a lettura di i logs Linux, vede Cumu leghje i logs Linux è induve truvalli ):
journalctl -u ssserver -n 50 --no-pager
Shadowsocks-libev
systemctl restart shadowsocks-libev
systemctl enable shadowsocks-libev
systemctl status shadowsocks-libev --no-pager
Verificate u portu è i logs in u listessu modu cum'è per shadowsocks-rust, sustituendu u nome di u serviziu:
ss -lntp | grep ':8388'
ss -lunp | grep ':8388'
journalctl -u shadowsocks-libev -n 50 --no-pager
Custruisce u ligame di cunnessione di u cliente
I clienti Shadowsocks impurtanu un unicu ligame di spartera ss:// (u furmatu URL SIP002) piuttostu chè un schedariu di cunfigurazione. U ligame codifica u cifrariu è a password cum'è base64 in a parte userinfo di l'URL:
ss://base64(method:password)@your_IP_address:port#label
Custruite a parte base64 nant'à u servitore (questu evita ogni errore di battitura da a codificazione manuale):
METHOD="2022-blake3-aes-256-gcm"
PASSWORD="YOUR-GENERATED-KEY-HERE"
USERINFO=$(echo -n "${METHOD}:${PASSWORD}" | base64 -w0)
echo "ss://${USERINFO}@your_IP_address:8388#My-SS-Server"
Esempiu di output (cù chjave placeholder):
ss://MjAyMi1ibGFrZTMtYWVzLTI1Ni1nY206eHl6X2V4YW1wbGVfa2V5X2hlcmU=@your_IP_address:8388#My-SS-Server
U testu dopu à # hè solu un'etichetta di visualizazione chì pudete rinominà liberamente in ogni cliente. Per un servitore shadowsocks-libev, sustituite METHOD="chacha20-ietf-poly1305" (o aes-256-gcm) è a so frase secreta da a Sezione 4 invece.
Trasfurmallu in un codice QR per chì i clienti mobili possinu scansionallu direttamente:
qrencode -o ~/ss-client.png "ss://${USERINFO}@your_IP_address:8388#My-SS-Server"
Cupiate u PNG nant'à u vostru urdinatore cù scp, eseguite da u terminal di u vostru urdinatore (o PowerShell nant'à Windows), micca da u servitore:
scp root@your_IP_address:~/ss-client.png .
Cunnessione da Windows
Tuttu ciò chì hè in questa sezione accade nantu à u vostru PC Windows, micca via SSH - u cliente deve esse eseguitu nantu à u dispusitivu chì aduprerà in realtà u proxy.
Installà v2rayN
v2rayN hè un cliente GUI gratuitu è mantinutu attivamente cù supportu nativu di Shadowsocks accantu à VLESS, VMess, Trojan è altri. Scaricate l'ultima versione da a pagina di u prugettu.
Pigliate l'asset .zip di Windows 64-bit (una compilazione autonoma ùn hà bisognu di un runtime .NET separatu cum'è e versioni recenti di v2rayN), estraitelu in ogni locu è eseguite v2rayN.exe.
Impurtà u servitore
Cupiate u ligame ss:// custruitu in a Sezione 7 in u vostru clipboard (o cupiate u QR PNG cù scp è apritelu), dopu in v2rayN sceglite Servers → Import bulk URL from clipboard (o scansionate u codice QR via u scanner integratu). U novu prufilu di servitore appare in a lista cù l'etichetta chì avete impostu dopu à u #.
Cliccate cù u dirittu nant'à u prufilu è selezziunatelu cum'è attivu, dopu attivate u proxy di sistema (o a modalità TUN, per u routing di tutta a macchina) da a barra di strumenti di a finestra principale.
Cunnessione da macOS
Tuttu ciò chì hè in questa sezione accade nant'à u vostru Mac, micca via SSH.
Installà ShadowsocksX-NG
ShadowsocksX-NG hè u cliente GUI macOS nativu di longa durata per Shadowsocks; a linea di versioni attuale include una versione nativa di Apple Silicon accantu à Intel. Scaricate l'ultimu .dmg da a pagina di e versioni.
Aprite u .dmg è trascinate ShadowsocksX-NG in Applicazioni, dopu lanciatelu - appare cum'è una icona in a barra di menu.
Impurtà u servitore
Cupiate u ligame ss:// da a Sezione 7 in u vostru appunti, dopu cliccate nantu à l'icona di a barra di menu → Servers → Server Preferences → u + in fondu à manca, è sceglite "Import From Pasteboard" (o scansionate u codice QR cù "Scan QR Code From Screen" dopu avè apertu u PNG). Selezziunate u novu prufilu da u menu a tendina di a barra di menu, dopu attivate "Shadowsocks: On" è sceglite a modalità di routing "PAC Auto" o "Global" da u listessu menu.
Cunnessione da un desktop Linux
Tuttu ciò chì hè in questa sezione accade nantu à a vostra propria macchina Linux, micca u VPS.
Installà u cliente lucale
Sè avete installatu shadowsocks-rust nant'à u servitore in a Sezione 3, u listessu archiviu di versione cuntene sslocal, un cliente proxy lucale SOCKS5/HTTP. Scaricate è installate lu in u listessu modu cum'è u binariu di u servitore (aghjustate u suffissu OS/arch per u vostru desktop s'ellu ùn hè micca x86_64-unknown-linux-gnu):
SS_VER=$(curl -s https://api.github.com/repos/shadowsocks/shadowsocks-rust/releases/latest | grep -Po '"tag_name": "\K[^"]*')
wget "https://github.com/shadowsocks/shadowsocks-rust/releases/download/${SS_VER}/shadowsocks-${SS_VER}.x86_64-unknown-linux-gnu.tar.xz"
tar -xf shadowsocks-*.tar.xz
sudo install -m 755 sslocal /usr/local/bin/
Cunfigurà è eseguisce
Crea una piccula cunfigurazione lucale chì ascolta 127.0.0.1:1080 cum'è proxy SOCKS5:
mkdir -p ~/.config/shadowsocks-rust
cat > ~/.config/shadowsocks-rust/local.json << 'EOF'
{
"server": "your_IP_address",
"server_port": 8388,
"password": "YOUR-GENERATED-KEY-HERE",
"method": "2022-blake3-aes-256-gcm",
"local_address": "127.0.0.1",
"local_port": 1080,
"mode": "tcp_and_udp"
}
EOF
sslocal -c ~/.config/shadowsocks-rust/local.json
Puntate i paràmetri di rete di u vostru navigatore o di u sistema versu un proxy SOCKS5 in 127.0.0.1:1080. Per una GUI, i fork di stile Nekoray o ShadowsocksX-Qt5 ponu impurtà u listessu ligame ss:// da a Sezione 7 è gestisce sslocal per voi invece di eseguisce lu manualmente.
Cunnessione da Android
Tuttu quì accade nant'à u vostru dispusitivu Android, micca via SSH.
Installà un cliente
Dui bone opzioni:
- Shadowsocks per Android — u cliente ufficiale di l'urganizazione shadowsocks. Installatelu da Google Play (cercate "Shadowsocks"), o scaricate l'APK direttamente da a pagina di versioni di u prugettu se Play ùn hè micca dispunibule in u vostru Rigioni.
- v2rayNG — a contraparte Android di v2rayN, chì supporta Shadowsocks accantu à VLESS/VMess/Trojan; utile sè vulete una sola app per parechji protokolli tipi.
Impurtà u servitore
In una di e duie app: toccate u buttone +, sceglite "Impurtà da u clipboard" dopu avè copiatu u ligame ss:// da a Sezione 7, o "Scansionà u codice QR" è puntate a camera versu u PNG. Toccate u prufilu impurtatu per selezziunallu, dopu toccate u buttone di cunnessione. Android dumanderà l'autorizazione VPN a prima volta - appruvatelu per stabilisce u tunnel.
Cunnessione da iOS
Tuttu quì accade nant'à u vostru iPhone o iPad, micca via SSH.
Installà un cliente compatibile cù Shadowsocks
Shadowrocket hè u cliente iOS u più utilizatu cù u supportu di Shadowsocks; hè un'applicazione pagata in a maiò parte di i negozii. Cercatela in l'App Store, o apritela.
Streisand hè un'alternativa gratuita è open-source chì supporta ancu Shadowsocks accantu à VLESS, Trojan è altri protokolli.
I cataloghi di l'App Store varianu secondu a vetrina/regione è ponu cambià cù u tempu; s'è nimu di i dui ùn hè visibile in u vostru, cercate "Shadowsocks" o "V2Box" in l'App Store.
Impurtà u servitore
Cupiate u ligame ss:// in u vostru appunti, aprite u cliente è aduprate a so opzione Aggiungi/Impurta da l'appunti, o scansionate u codice QR da a Sezione 7 cù u scanner integratu di u cliente. Attivate u novu prufilu; iOS vi dumanderà l'autorizazione di cunfigurazione VPN a prima volta, chì duverete appruvà via Face ID, Touch ID o u vostru codice d'accessu.
Verificà a cunnessione
Cù u tunnel attivu da a Sezione 8, 9, 10, 11, o 12, vultate à u vostru propiu dispositivu (micca a sessione SSH) è aprite qualsiasi verificatore "chì hè u mo IP" in un navigatore - l'indirizzu mostratu deve currisponde à l'indirizzu IP di u vostru VPS, u vostru_indirizzu_IP.
Per verificà da u latu di u servitore invece, verificate u ghjurnale systemd per l'attività di cunnessione è cunfirmate e sessioni stabilite nantu à u portu (utilizate ssserver per u ghjurnale rust, o shadowsocks-libev per u ghjurnale libev):
journalctl -u ssserver -n 50 --no-pager
ss -tnp | grep ':8388'
didáctica:
|
campu |
Value |
|
indirizzo |
l'indirizzu IP publicu di u vostru VPS |
|
Port |
8388 (u listessu portu apertu in a Sezione 2) |
|
Codice |
a chjave/frase chjave generata in a Sezione 4 |
|
Appruntera |
2022-blake3-aes-256-gcm (ruggine) o chacha20-ietf-poly1305 (libev) — deve currisponde esattamente da i dui lati |
|
moda |
tcp_and_udp — permette sia u proxy TCP sia u relay UDP (DNS, certi ghjochi) |
|
Cunnettà si |
nimu hè adupratu in questa guida — Shadowsocks ùn hà bisognu di SNI, certificatu, o plugin di trasportu per funziunà |
cunchiusioni
Seguendu sta guida, u vostru VPS esegue u so propiu servitore Shadowsocks - sia shadowsocks-rust cù un cifrariu AEAD-2022 mudernu, sia shadowsocks-libev da u repositoriu di Ubuntu/Debian - cum'è un serviziu systemd chì sopravvive à un riavviu senza alcuna azzione da a vostra parte.
Aghjunghjendu più utilizatori:
- U più simplice: generà una seconda password (Sezione 4) è eseguisce una seconda istanza ssserver/shadowsocks-libev nantu à un portu diversu cù u so propiu schedariu di cunfigurazione è unità systemd, dopu ripetite a Sezione 5-7 per quellu portu.
- shadowsocks-rust cù un cifrariu AEAD-2022 supporta ancu parechji utilizatori chì spartenu una chjave di portu è di derivazione di password via l'array "users" in config.json (Extensible Identity Headers, SIP022) - vede a sezione di cunfigurazione di shadowsocks-rust README per a sintassi esatta se avete bisognu di a contabilità di u trafficu per utilizatore nantu à un unicu portu.
Uni pochi abitudini chì vale a pena di mantene una volta chì u servitore hè in funzione:
- Mantene u servitore aggiornatu. Per shadowsocks-rust, eseguite periodicamente i passi di scaricamentu è installazione da a Sezione 3 cù una ricerca di versione fresca, dopu systemctl riavviate ssserver. Per shadowsocks-libev, u semplice apt upgrade copre u prublema.
- Fate una copia di salvezza di config.json in qualchì locu privatu fora di u servitore. Contene a password di ogni cliente; perde la significa rigenerà e credenziali per ogni dispositivu.
- Ruotate a password s'è un dispositivu hè persu o un cliente hè cumprumessu: generate una nova (Sezione 4), aghjurnate config.json, riavviate u serviziu è ricustruite u ligame di u cliente (Sezione 7) per ogni dispositivu restante.
Sè a cunnessione ùn si stabilisce micca, verificate in questu ordine:
- u statutu di u serviziu (systemctl status ssserver --no-pager, o shadowsocks-libev) è u ghjurnale (journalctl -u ssserver -n 50 --no-pager)
- e regule di u firewall (statu ufw - u portu deve esse apertu sia per tcp sia per udp)
- chì u portu ùn hè micca digià ligatu da un altru serviziu (ss -lntp | grep ':8388' deve mustrà solu ssserver/ss-server)
- chì a password, u metudu è u portu in u cliente currispondenu esattamente à config.json - un unicu caratteru micca currispundente falla l'handshake in silenziu, di solitu mustrendu si cum'è un timeout di cunnessione piuttostu chè un errore esplicitu
- Quella modalità hè impostata à tcp_and_udp nant'à u servitore s'è u cliente hà bisognu di UDP (DNS-over-proxy, certi ghjochi/applicazioni) è micca solu tcp_only
Paragunà Shadowsocks cù altre opzioni? Vede a Guida di Realtà Xray VLESS per un protocolu basatu annantu à u camuflamentu TLS chì hè più difficiule da rilevà l'impronte digitali nantu à una rete assai filtrata, a Guida di Distribuzione di u Server AmneziaWG è Cumu cunfigurà Wireguard VPN nantu à u vostru servitore per alternative basate nantu à WireGuard, o a cunfigurazione Hysteria2 è TUIC per dui protocolli custruiti per reti cù perdita o assai filtrate. Sè avete bisognu solu di un proxy simplice invece di una cunfigurazione di tunneling cumpleta, a cunfigurazione 3proxy nantu à CentOS/ArchLinux hè un'alternativa assai più ligera, è a cunfigurazione di u servitore VPN più vechja nantu à Linux: PPTP o OpenVPN? copre protocolli chì sò più simplici da cunfigurà ma assai più faciuli da rilevà è bluccà per DPI. Per un rinforzu generale di u servitore una volta chì u proxy hè attivu, vede Utenti Linux: Gestione è Permessi.