Shadowsocks je lahek, šifriran proxy protokol, ki temelji na SOCKS5 in je bil prvotno zasnovan za izogibanje oblikovanju in blokiranju prometa v običajnih omrežjih. Za razliko od polnega VPN-ja posreduje le promet, ki mu ga aplikacija izrecno pošlje, skoraj nima protokolnih stroškov in deluje dobro tudi na omejenih povezavah. Ne poskuša posnemati pravega TLS rokovanja, kot to počne VLESS+Reality – njegova prednost je preprostost, široka podpora odjemalcem (usmerjevalniki, telefoni, brskalniki) in zelo nizka latenca, za ceno nekoliko lažjega odkrivanja prstnih odtisov po vzorcu prometa v močno pregledanem omrežju.
Obstajata dve aktivno vzdrževani implementaciji strežnika:
- shadowsocks-rust — sodobna referenčna implementacija organizacije shadowsocks, napisana v Rustu. Podpira novejšo družino šifer AEAD-2022, je aktivno razvijana in je implementacija, ki jo ta priročnik podrobno namešča in konfigurira.
- shadowsocks-libev – starejša implementacija v jeziku C. Še vedno se vzdržuje zaradi popravkov napak, dobavlja se kot že pripravljen paket apt z lastnimi enotami systemd in je dobra izbira, če želite absolutno najpreprostejšo namestitev brez ročnega upravljanja binarnih datotek. Ta priročnik jo obravnava kot alternativno pot namestitve v 3. razdelku.
Ta priročnik opisuje, kako ročno konfigurirati strežnik prek ukazne vrstice – brez uporabe spletne plošče ali Dockerja. Kjer koli se prikaže polje »IP-naslov«, ga nadomestite z dejanskim IP-naslovom vašega VPS-ja.
Kaj boste potrebovali: VPS z operacijskim sistemom Ubuntu 22.04/24.04 ali Debian 11/12, root dostop, IP naslov vašega VPS-ja in prosta vrata UDP/TCP (ta priročnik uporablja 8388, privzeta vrata Shadowsocks).
Še nimate strežnika? Glejte Kako naročiti strežnik in ga plačati.
Najprej primerjate to z drugimi možnostmi samogostovanja? Za alternativo, ki temelji na kamuflaži TLS, glejte Vodnik za realnost Xray VLESS , za možnost, ki temelji na WireGuardu, Vodnik za uvajanje strežnika AmneziaWG ali nastavitev Hysteria2 in TUIC za dva druga sodobna protokola proxy.
Povezovanje s strežnikom
Windows (PuTTY)
Odprite PuTTY, v polje Ime gostitelja vnesite IP naslov svojega VPS-ja, nastavite vrata na 22 in se prijavite kot root z geslom, ki vam ga je ponudnik VPS-ja poslal po e-pošti.
IP naslov strežnika: vaš IP naslov
prijava kot: root
Geslo: vaše geslo
Za podroben postopek povezovanja prek PuTTY/SSH glejte Kako se povezati s strežnikom Linux prek SSH.
Linux / macOS (terminal)
ssh root@your_IP_address
Vsi spodnji ukazi se izvajajo na strežniku, v isti seji SSH – ki zajema razdelke od 2 do 7, ter preverjanja na strani strežnika v razdelku 13. Razdelki 8–12 (nameščanje in konfiguriranje odjemalskih aplikacij) se namesto tega izvajajo na vaši napravi Windows/macOS/Linux/Android/iOS, saj je to naprava, na kateri mora proxy delovati; vsak od teh razdelkov izrecno navaja, katere vrstice, če sploh, se še vedno dotikajo strežnika.
Priprava strežnika
Posodobite sistem
Preden karkoli namestite, osvežite seznam paketov in nadgradite nameščene pakete:
apt update -y && apt upgrade -y
Če s tem nadgradite jedro, je pred nadaljevanjem priporočljivo znova zagnati računalnik. (Za osvežitev znanja o apt in delovanju upravljalnikov paketov Linux glejte Upravitelji paketov Linux .) Preverite z:
cat /var/run/reboot-required
Če datoteka obstaja, najprej znova zaženite računalnik z ukazom »reboot«, počakajte približno 30 sekund in nato znova vzpostavite povezavo.
Namestite orodja, ki jih uporablja ta priročnik
apt install -y curl wget tar xz-utils ufw qrencode
Za pridobivanje in razpakiranje arhiva izdaje shadowsocks-rust sta potrebna utilita curl/wget in tar/xz-utils; ufw je spodaj konfiguriran požarni zid; qrencode v 7. razdelku pretvori končano povezavo odjemalca v kodo QR, ki jo je mogoče skenirati.
Konfigurirajte požarni zid (UFW)
Za več informacij o pravilih UFW glejte Konfiguriranje požarnega zidu v Linuxu.
Odprite dve potrebni vrati: 22/tcp za SSH (če preskočite to pravilo, tvegate izgubo dostopa do strežnika) in 8388, tako tcp kot udp – Shadowsocks posreduje tako TCP povezave kot UDP povezave (uporabno za DNS in nekatere igre/aplikacije), zato morata biti obe smeri vrat odprti.
ufw allow 22/tcp
ufw allow 8388/tcp
ufw allow 8388/udp
ufw --force enable
ufw status
Vsa tri pravila bi se morala v izpisu stanja ufw prikazati kot DOVOLJENA. Če kasneje spremenite vrata v datoteki config.json, posodobite ta pravila, da se ujemajo.
Namestitev strežniške programske opreme
Izberite eno od spodnjih dveh možnosti. Priporočljiva je možnost A (shadowsocks-rust): gre za aktivno razvito implementacijo, ki podpira sodobne šifre AEAD-2022, ki bodo uporabljene kasneje v tem priročniku. Možnost B (shadowsocks-libev) je dobra izbira, če raje uporabljate navaden paket apt z že pripravljeno enoto systemd in ne potrebujete AEAD-2022.
Možnost A – shadowsocks-rust (priporočeno)
Shadowsocks-rust ne dobavlja paketa apt s trenutnimi izdajami, zato ga namestite s prenosom vnaprej sestavljene statične binarne datoteke iz izdaj projekta na GitHubu. Pridobite najnovejšo oznako izdaje iz GitHub API-ja in prenesite ustrezen arhiv Linux x86_64:
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"
Če je vaš VPS arm64 namesto x86_64 (preverite z `uname -m`), v zgornjem imenu datoteke zamenjajte x86_64-unknown-linux-gnu z aarch64-unknown-linux-gnu.
Razpakirajte arhiv in namestite binarne datoteke v celoten sistem:
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
Preverite, ali je binarna datoteka na mestu in preverite nameščeno različico:
ssserver --version
Ustvarite imenik, v katerem bo shranjena konfiguracijska datoteka:
mkdir -p /etc/shadowsocks-rust
Ta priročnik namesti fiksno različico, namesto da bi namestitveni skript prenesel v bash. Za kasnejšo nadgradnjo ponovno zaženite zgornja dva ukaza s svežim iskanjem SS_VER, zaustavite storitev, zamenjajte binarno datoteko in jo znova zaženite (razdelek 6).
Možnost B — shadowsocks-libev (alternativa, paket apt)
Shadowsocks-libev je vključen v repozitorij vesolja Ubuntuja (Ubuntu 16.10+) in glavni repozitorij Debiana (Debian 8+), zato v različicah 22.04/24.04 ali Debian 11/12 ni potreben PPA tretje osebe:
apt install -y shadowsocks-libev
Če apt sporoči, da paketa ni mogoče najti, je repozitorij univerzuma onemogočen; omogočite ga in poskusite znova:
add-apt-repository universe && apt update && apt install -y shadowsocks-libev
Paket namesti lastne enote systemd (shadowsocks-libev.service za privzeto konfiguracijo in [email protected] za poimenovane konfiguracije na instanco) in samodejno ustvari datoteko /etc/shadowsocks-libev/config.json – razdelki 4–6 omenjajo ukaze in poti datotek, specifične za libev, poleg tistih za rust. Preostali razdelki o odjemalcih v tem priročniku (7–13) veljajo enako za obe strežniški implementaciji, saj obe na omrežju govorita isti protokol Shadowsocks/SIP002.
Ustvarjanje gesla in izbira šifre
Avtentikacija Shadowsocks je eno samo skupno geslo in šifra (metoda šifriranja), o kateri se morata strinjati obe strani – ni ločenega UUID-ja, para ključev ali potrdila za upravljanje.
Družine šifer
- AEAD-2022 (priporočeno, samo shadowsocks-rust): 2022-blake3-aes-128-gcm, 2022-blake3-aes-256-gcm, 2022-blake3-chacha20-poly1305. Novejša zasnova (SIP022) z močnejšo zaščito pred ponovnim predvajanjem in podporo za več uporabnikov, ki si delijo ena vrata. Geslo mora biti niz base64, ki je natančno enak dolžini ključa šifre (16 bajtov za 128-bitne različice, 32 bajtov za 256-bitno različico).
- Klasični AEAD (podprt tako v Rustu kot v Libevu): aes-256-gcm, aes-128-gcm, chacha20-ietf-poly1305. Široko združljiv s starejšimi odjemalci in s shadowsocks-libev; geslo je lahko katero koli geslo, saj se posreduje prek funkcije za izpeljavo ključa in se ne uporablja neposredno kot ključni material.
Ta priročnik uporablja 2022-blake3-aes-256-gcm za strežnik shadowsocks-rust, saj je to najmočnejša in najnovejša možnost, ki jo podpirajo vsi kasneje priporočeni odjemalci (v2rayN, v2rayNG, Shadowrocket, Streisand, ShadowsocksX-NG). Če ste v 3. razdelku namestili shadowsocks-libev, namesto tega uporabite chacha20-ietf-poly1305 ali aes-256-gcm, saj libev ne izvaja AEAD-2022.
Generiraj ključ (shadowsocks-rust)
ssservice genkey -m "2022-blake3-aes-256-gcm"
To izpiše niz base64 – to je vaše geslo. Kopirajte ga na varno mesto; prilepili ga boste tako v konfiguracijo strežnika v 5. razdelku kot v povezavo odjemalca v 7. razdelku.
Izberite geslo (shadowsocks-libev)
Za klasične šifre AEAD, ki jih uporablja shadowsocks-libev, deluje kateri koli dovolj dolg naključni niz, saj se obdeluje skozi PBKDF/HKDF in se ne uporablja kot surov ključ. Ustvarite ga z:
openssl rand -base64 32
Pisanje konfiguracije strežnika
Shadowsocks-rje
Odprite konfiguracijsko datoteko za urejanje:
nano /etc/shadowsocks-rust/config.json
Prilepite spodnjo predlogo in nadomestite svoje geslo iz 4. razdelka (in vrata iz 2. razdelka, če ste jih spremenili iz 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
}
Pritisnite Ctrl+O (WriteOut), da shranite datoteko, Enter, da potrdite ime datoteke, nato Ctrl+X, da zaprete nano.
Pomembna polja: strežnik posluša na vseh vmesnikih (0.0.0.0); strežnik_port so vrata, odprta v 2. razdelku; geslo/metoda sta poverilnica in šifra iz 4. razdelka; način omogoča posredovanje TCP in UDP; timeout je časovna omejitev nedejavne povezave v sekundah; nofile poveča omejitev deskriptorjev datotek za zasedene strežnike.
Preden povežete JSON s systemd, preverite, ali binarna datoteka sprejema to vrednost:
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"
Ustvarite enoto systemd (shadowsocks-rust)
Binarna izdaja ne vsebuje enote systemd, zato jo ustvarite:
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
Shranite in zaprite kot zgoraj, nato pa naročite systemd, naj prevzame novo datoteko enote:
systemctl daemon-reload
Shadowsocks-libev
Paket apt je že ustvaril datoteko /etc/shadowsocks-libev/config.json s privzeto konfiguracijo (samo povratna zanka, naključno geslo) in lastno enoto systemd. Odprite jo za urejanje:
nano /etc/shadowsocks-libev/config.json
Vsebino zamenjajte z:
{
"server":"0.0.0.0",
"server_port":8388,
"password":"YOUR-PASSPHRASE-HERE",
"method":"chacha20-ietf-poly1305",
"mode":"tcp_and_udp",
"timeout":300
}
Privzeta konfiguracija uporablja strežnik: ["::1", "127.0.0.1"] (samo povratna zanka); če ga spremenite na "0.0.0.0", je strežnik dosegljiv z javnega IP-naslova – tega ne preskočite, če ste namesto zgornje predloge kopirali osnovno datoteko.
Zagon storitve in omogočanje samodejnega zagona
Shadowsocks-rje
systemctl enable --now ssserver
systemctl status ssserver --no-pager
Status bi moral biti aktiven (deluje). Potrdite, da nekaj dejansko posluša na vratih (oba protokola):
ss -lntp | grep ':8388'
ss -lunp | grep ':8388'
Če se storitev ne zažene, je najhitrejši način, da ugotovite, zakaj, dnevnik systemd (za ozadje branja dnevnikov Linuxa na splošno glejte Kako brati dnevnike Linuxa in kje jih najti ):
journalctl -u ssserver -n 50 --no-pager
Shadowsocks-libev
systemctl restart shadowsocks-libev
systemctl enable shadowsocks-libev
systemctl status shadowsocks-libev --no-pager
Preverite vrata in dnevnike na enak način kot za shadowsocks-rust, le da namesto tega uporabite ime storitve:
ss -lntp | grep ':8388'
ss -lunp | grep ':8388'
journalctl -u shadowsocks-libev -n 50 --no-pager
Gradnja povezave odjemalca
Odjemalci Shadowsocks uvozijo eno samo povezavo za deljenje ss:// (oblika URL-ja SIP002) namesto konfiguracijske datoteke. Povezava kodira šifro in geslo kot base64 v delu URL-ja z uporabniškimi informacijami:
ss://base64(method:password)@your_IP_address:port#label
Na strežniku zgradite del base64 (s tem se izognete morebitnim tipkarskim napakam zaradi ročnega kodiranja):
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"
Primer izhoda (z nadomestnim ključem):
ss://MjAyMi1ibGFrZTMtYWVzLTI1Ni1nY206eHl6X2V4YW1wbGVfa2V5X2hlcmU=@your_IP_address:8388#My-SS-Server
Besedilo za # je le oznaka za prikaz, ki jo lahko poljubno preimenujete v katerem koli odjemalcu. Za strežnik shadowsocks-libev namesto tega nadomestite METHOD="chacha20-ietf-poly1305" (ali aes-256-gcm) in njegovo geslo iz 4. razdelka.
Pretvorite jo v QR kodo, da jo lahko mobilne stranke neposredno skenirajo:
qrencode -o ~/ss-client.png "ss://${USERINFO}@your_IP_address:8388#My-SS-Server"
Kopirajte PNG na svoj računalnik z ukazom scp, zaženite ga iz terminala računalnika (ali PowerShell v sistemu Windows), ne s strežnika:
scp root@your_IP_address:~/ss-client.png .
Povezovanje iz sistema Windows
Vse v tem razdelku se dogaja na vašem računalniku z operacijskim sistemom Windows, ne prek SSH – odjemalec se mora zagnati na napravi, ki bo dejansko uporabljala proxy.
Namestite v2rayN
Pridobite 64-bitno datoteko .zip za Windows (samostojna gradnja ne potrebuje ločenega izvajalnega okolja .NET, kot v novejših različicah v2rayN), jo razpakirajte kamor koli in zaženite v2rayN.exe.
Uvozi strežnik
Kopirajte povezavo ss://, ki ste jo zgradili v 7. razdelku, v odložišče (ali pa kopirajte QR PNG s scp in ga odprite), nato pa v v2rayN izberite Strežniki → Uvozi URL-je v razsutem stanju iz odložišča (ali skenirajte QR kodo z vgrajenim skenerjem). Nov profil strežnika se prikaže na seznamu z oznako, ki ste jo nastavili za #.
Z desno miškino tipko kliknite profil in ga izberite kot aktivnega, nato pa v orodni vrstici glavnega okna omogočite sistemski proxy (ali način TUN za usmerjanje celotnega računalnika).
Povezovanje iz macOS-a
Vse v tem razdelku se dogaja na vašem Macu, ne prek SSH.
Namestitev ShadowsocksX-NG
ShadowsocksX-NG je dolgo delujoč izvorni odjemalec GUI za macOS za Shadowsocks; trenutna linija izdaj vključuje izvorno različico Apple Silicon poleg Intelove. Prenesite najnovejšo datoteko .dmg s strani z izdajami.
Odprite datoteko .dmg in povlecite ShadowsocksX-NG v Aplikacije, nato pa ga zaženite – prikaže se kot ikona v menijski vrstici.
Uvozi strežnik
Kopirajte povezavo ss:// iz 7. razdelka v odložišče, nato kliknite ikono v menijski vrstici → Strežniki → Nastavitve strežnika → + spodaj levo in izberite »Uvozi iz lepenke« (ali skenirajte kodo QR z možnostjo »Skeniraj kodo QR z zaslona« po odprtju datoteke PNG). V spustnem meniju v menijski vrstici izberite nov profil, nato preklopite na »Shadowsocks: Vklopljeno« in v istem meniju izberite način usmerjanja »PAC Auto« ali »Globalno«.
Povezovanje z namizja Linux
Vse v tem razdelku se dogaja na vašem Linux računalniku, ne na VPS-ju.
Namestitev lokalnega odjemalca
Če ste v 3. razdelku na strežnik namestili shadowsocks-rust, isti arhiv izdaje vsebuje sslocal, lokalnega proxy odjemalca SOCKS5/HTTP. Prenesite in namestite ga na enak način kot binarno datoteko strežnika (prilagodite pripono OS/arch za vaše namizje, če ni 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/
Konfiguriraj in zaženi
Ustvarite majhno lokalno konfiguracijo, ki bo poslušala na 127.0.0.1:1080 kot SOCKS5 proxy:
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
V nastavitvah brskalnika ali omrežnega sistema nastavite proxy SOCKS5 na 127.0.0.1:1080. Za grafični uporabniški vmesnik lahko razcepke v slogu Nekoray ali ShadowsocksX-Qt5 uvozijo isto povezavo ss:// iz 7. razdelka in upravljajo sslocal namesto vas, namesto da bi ga zagnali ročno.
Povezovanje iz Androida
Vse tukaj se dogaja na vaši napravi Android, ne prek SSH.
Namestitev odjemalca
Dve dobri možnosti:
- Shadowsocks za Android – uradni odjemalec organizacije shadowsocks. Namestite ga iz trgovine Google Play (poiščite »Shadowsocks«) ali prenesite APK neposredno s strani z izdajami projekta, če trgovina Play ni na voljo v vaši državi. regiji.
- v2rayNG — Androidov ekvivalent v2rayN, ki podpira Shadowsocks poleg VLESS/VMess/Trojan; uporaben, če želite eno aplikacijo za več protokolov vrste.
Uvozi strežnik
V kateri koli aplikaciji: tapnite gumb +, izberite »Uvozi iz odložišča« po kopiranju povezave ss:// iz 7. razdelka ali »Skeniraj kodo QR« in usmerite kamero na PNG. Tapnite uvoženi profil, da ga izberete, nato pa tapnite gumb za povezavo. Android bo prvič zahteval dovoljenje za VPN – odobrite ga za vzpostavitev tunela.
Povezovanje iz sistema iOS
Vse tukaj se dogaja na vašem iPhonu ali iPadu, ne prek SSH.
Namestite odjemalca, ki podpira Shadowsocks
Shadowrocket je najbolj razširjen odjemalec za iOS s podporo za Shadowsocks; gre za plačljivo aplikacijo, ki je na voljo v večini trgovin. Poiščite jo v trgovini App Store ali jo odprite.
Streisand je brezplačna odprtokodna alternativa, ki podpira tudi Shadowsocks, VLESS, Trojan in druge protokole.
Katalogi v trgovini App Store se razlikujejo glede na trgovino/regijo in se lahko sčasoma spreminjajo; če nobenega od njih ni mogoče najti v vaši trgovini, v trgovini App Store poiščite »Shadowsocks« ali »V2Box«.
Uvozi strežnik
Kopirajte povezavo ss:// v odložišče, odprite odjemalca in uporabite možnost Dodaj/Uvozi iz odložišča ali skenirajte kodo QR iz 7. razdelka z vgrajenim skenerjem odjemalca. Vklopite nov profil; iOS bo prvič zahteval dovoljenje za konfiguracijo VPN, ki ga boste morali odobriti prek Face ID-ja, Touch ID-ja ali gesla.
Preverjanje povezave
Ko je predor aktiven iz razdelkov 8, 9, 10, 11 ali 12, se vrnite na svojo napravo (ne na sejo SSH) in v brskalniku odprite poljubno orodje za preverjanje »kakšen je moj IP« – prikazani naslov se mora ujemati z IP-naslovom vašega VPS-ja, your_IP_address.
Za preverjanje s strani strežnika preverite dnevnik systemd za aktivnost povezav in potrdite vzpostavljene seje na vratih (uporabite ssserver za dnevnik rust ali shadowsocks-libev za dnevnik libev):
journalctl -u ssserver -n 50 --no-pager
ss -tnp | grep ':8388'
Sklic:
|
Polje |
Vrednost |
|
Naslov |
javni IP naslov vašega VPS-ja |
|
port |
8388 (ista vrata, odprta v 2. oddelku) |
|
Geslo |
ključ/geslo, ustvarjeno v 4. razdelku |
|
Metoda |
2022-blake3-aes-256-gcm (rust) ali chacha20-ietf-poly1305 (libev) – mora se natančno ujemati na obeh straneh |
|
način |
tcp_and_udp — omogoča tako TCP proxy kot UDP rele (DNS, nekatere igre) |
|
Plugin |
v tem priročniku ni uporabljeno nobeno – Shadowsocks za delovanje ne potrebuje SNI, potrdila ali transportnega vtičnika |
zaključek
Če sledite temu vodniku, bo vaš VPS deloval na lastnem strežniku Shadowsocks – bodisi shadowsocks-rust s sodobno šifro AEAD-2022 bodisi shadowsocks-libev iz lastnega repozitorija Ubuntu/Debian – kot storitev systemd, ki preživi ponovni zagon brez vašega posredovanja.
Dodajanje več uporabnikov:
- Najenostavneje: ustvarite drugo geslo (razdelek 4) in zaženite drugi primerek ssserver/shadowsocks-libev na drugih vratih z lastno konfiguracijsko datoteko in enoto systemd, nato pa ponovite razdelke 5–7 za ta vrata.
- shadowsocks-rust s šifro AEAD-2022 podpira tudi več uporabnikov, ki si delijo ena vrata in ključ za izpeljavo gesla prek polja »users« v datoteki config.json (Extensible Identity Headers, SIP022) – za natančno sintakso glejte razdelek Konfiguracija v datoteki README programa shadowsocks-rust, če potrebujete obračunavanje prometa na uporabnika na posameznih vratih.
Nekaj navad, ki jih je vredno ohraniti, ko strežnik deluje:
- Strežnik naj bo posodobljen. Za shadowsocks-rust občasno znova zaženite korake za prenos in namestitev iz 3. razdelka z iskanjem nove različice, nato pa systemctl restart ssserver. Za shadowsocks-libev to pokriva navaden ukaz apt upgrade.
- Varnostno kopirajte datoteko config.json nekam na zasebno mesto zunaj strežnika. Vsebuje geslo vsakega odjemalca; če ga izgubite, boste morali ponovno ustvariti poverilnice za vsako napravo.
- Če je naprava izgubljena ali je odjemalec ogrožen, spremenite geslo: ustvarite novo (razdelek 4), posodobite datoteko config.json, znova zaženite storitev in ponovno zgradite povezavo odjemalca (razdelek 7) za vsako preostalo napravo.
Če se povezava ne vzpostavi, preverite po vrsti:
- stanje storitve (systemctl status ssserver --no-pager ali shadowsocks-libev) in dnevnik (journalctl -u ssserver -n 50 --no-pager)
- pravila požarnega zidu (stanje ufw – vrata morajo biti odprta tako za tcp kot za udp)
- da vrata niso že vezana na drugo storitev (ss -lntp | grep ':8388' bi moral prikazati samo ssserver/ss-server)
- da se geslo, metoda in vrata v odjemalcu natančno ujemajo s config.json – en sam neujemajoči se znak tiho ne uspe pri rokovanju, kar se običajno prikaže kot časovna omejitev povezave in ne kot eksplicitna napaka
- Ta način je na strežniku nastavljen na tcp_and_udp, če odjemalec potrebuje UDP (DNS-over-proxy, nekatere igre/aplikacije) in ne samo tcp_only.
Primerjate Shadowsocks z drugimi možnostmi? Za protokol, ki temelji na kamuflaži TLS in ga je težje zaznati v močno filtriranem omrežju, glejte Xray VLESS Reality Guide (Vodnik za realnost Xray VLESS) in ga je težje zaznati v močno filtriranem omrežju, AmneziaWG Server Deployment Guide (Vodnik za uvajanje strežnika AmneziaWG ) in How to set Wireguard VPN on your server (Kako nastaviti VPN Wireguard na vašem strežniku) za alternative, ki temeljijo na WireGuardu, ali Hysteria2 in TUIC nastavitev za dva protokola, zgrajena za omrežja z izgubami ali močno filtrirana omrežja. Če potrebujete le preprost proxy in ne popolne nastavitve tuneliranja, je konfiguracija 3proxy v CentOS/ArchLinux veliko lažja alternativa, starejša nastavitev strežnika VPN v Linuxu: PPTP ali OpenVPN? pa zajema protokole, ki jih je preprosteje nastaviti, vendar jih DPI veliko lažje zazna in blokira. Za splošno utrjevanje strežnika, ko je proxy že aktiven, glejte Linux Users: Management and Permissions (Uporabniki Linuxa: Upravljanje in dovoljenja).