Biblioteka Paprastos instrukcijos, kaip dirbti su Profitserver paslauga
pagrindinis Biblioteka Shadowsocks vadovas (shadowsocks-rust / shadowsocks-libev): VPS, Windows, macOS, Linux, Android, iPhone

Shadowsocks vadovas (shadowsocks-rust / shadowsocks-libev): VPS, Windows, macOS, Linux, Android, iPhone


„Shadowsocks“ yra lengvas, SOCKS5 pagrindu sukurtas užšifruotas tarpinio serverio protokolas, iš pradžių sukurtas siekiant apeiti srauto formavimą ir blokavimą įprastuose tinkluose. Skirtingai nuo pilno VPN, jis veikia tik su srautu, kurį programa jam aiškiai siunčia, beveik neturi protokolo pridėtinės vertės ir gerai veikia net ir esant ribotiems ryšiams. Jis nebando imituoti tikro TLS pasisveikinimo, kaip tai daro VLESS+Reality – jo stiprioji pusė yra paprastumas, platus klientų palaikymas (maršrutizatoriai, telefonai, naršyklės) ir labai mažas delsos laikas, tačiau jį lengviau nustatyti pagal srauto modelį kruopščiai tikrinamame tinkle.

Yra dvi aktyviai prižiūrimos serverio implementacijos:

  • „shadowsocks-rust“ – moderni „shadowsocks“ organizacijos etaloninė implementacija, parašyta „Rust“ kalba. Ji palaiko naujesnę AEAD-2022 šifrų šeimą, yra aktyviai kuriama ir yra implementacija, kurią šiame vadove išsamiai įdiegiama ir konfigūruojama.
  • „shadowsocks-libev“ – senesnė C versija. Ji vis dar prižiūrima, siekiant ištaisyti klaidas, pateikiama kaip paruoštas „apt“ paketas su savo „systemd“ vienetais ir yra geras pasirinkimas, jei norite paties paprasčiausio diegimo be rankinio dvejetainių failų tvarkymo. Šiame vadove ji aprašoma kaip alternatyvus diegimo kelias 3 skyriuje.

Šiame vadove aprašoma, kaip rankiniu būdu konfigūruoti serverį naudojant komandinę eilutę – nenaudojant žiniatinklio skydelio ar „Docker“. Visur, kur rodomas laukas „IP adresas“, pakeiskite jį savo VPS tikruoju IP adresu.

Ko jums reikės: VPS su Ubuntu 22.04/24.04 arba Debian 11/12, root prieiga, jūsų VPS IP adresas ir laisvas UDP/TCP prievadas (šiame vadove naudojamas 8388, numatytasis „Shadowsocks“).

Dar neturite serverio? Žr. Kaip užsisakyti serverį ir už jį sumokėti.

Pirmiausia lyginate tai su kitomis savarankiškai talpinamų serverių parinktimis? Žr. „Xray VLESS Reality Guide“ , kuriame rasite TLS maskuojamuoju ekranu pagrįstą alternatyvą, „AmneziaWG Server Deployment Guide“ , kuriame rasite „WireGuard“ pagrįstą parinktį, arba „Hysteria2“ ir TUIC sąranką , kurioje rasite du kitus šiuolaikinius tarpinio serverio protokolus.

Prisijungimas prie serverio

„Windows“ (PuTTY)

Atidarykite „PuTTY“, lauke „Host Name“ įveskite savo VPS IP adresą, nustatykite prievadą į 22 ir prisijunkite kaip root naudodami slaptažodį, kurį jums el. paštu atsiuntė VPS teikėjas.

Serverio IP adresas: jūsų IP adresas

prisijungti kaip: root

Slaptažodis: jūsų slaptažodis

Išsamesnį prisijungimo per „PuTTY“ / SSH aprašymą rasite skyriuje „ Kaip prisijungti prie „Linux“ serverio per SSH“.

„PuTTY“ sesijos konfigūracija SSH prieigai. „PuTTY SSH“ terminalas prisijungus prie VPS. Sėkmingas SSH prisijungimas prie VPS.

Linux / macOS (terminalas)

ssh root@your_IP_address

Visos toliau pateiktos komandos vykdomos serveryje, toje pačioje SSH sesijoje – tai apima 2–7 skyrius, taip pat 13 skyriuje nurodytus serverio pusės patikrinimus. 8–12 skyriai (kliento programų diegimas ir konfigūravimas) vykdomi jūsų pačių „Windows“ / „macOS“ / „Linux“ / „Android“ / „iOS“ įrenginyje, nes tai yra įrenginys, kuriame turi veikti tarpinis serveris; kiekviename iš šių skyrių aiškiai nurodoma, kurios eilutės, jei tokių yra, vis dar liečia serverį.

Serverio paruošimas

Atnaujinkite sistemą

Prieš diegdami bet ką, atnaujinkite paketų sąrašą ir atnaujinkite įdiegtus paketus:

apt update -y && apt upgrade -y
Komanda, naudojama įdiegtiems paketams atnaujinti. Paketo atnaujinimo išvestis. Branduolio atnaujinimo pranešimas rodomas paketo atnaujinimo metu Paketo atnaujinimo metu rodomas raginimas paleisti paslaugas iš naujo.

Jei tai atnaujina branduolį, prieš tęsiant patartina paleisti sistemą iš naujo. (Norėdami atnaujinti žinias apie „apt“ ir kaip veikia „Linux“ paketų tvarkyklės, žr. „Linux“ paketų tvarkyklės .) Patikrinkite:

cat /var/run/reboot-required
Komanda, naudojama patikrinti, ar reikia paleisti iš naujo. Perkrovimo reikalingumo patikrinimo išvestis.

Jei failas yra, pirmiausia paleiskite kompiuterį iš naujo naudodami „reboot“, palaukite ~30 sekundžių ir vėl prijunkite.

Įdiekite šiame vadove naudojamus įrankius

apt install -y curl wget tar xz-utils ufw qrencode

„Shadowsocks-rust“ išleidimo archyvui gauti ir išpakuoti reikalingi „curl/wget“ ir „tar/xz-utils“; „ufw“ yra žemiau konfigūruojama užkarda; „qrencode“ 7 skyriuje paverčia baigtą kliento nuorodą nuskaitomu QR kodu.

Komanda, naudojama reikalingoms serverio programoms įdiegti.

Užkardos (UFW) konfigūravimas

Daugiau apie UFW taisykles žr. Ugniasienės konfigūravimas sistemoje „Linux“.

Atidarykite du reikalingus prievadus: 22/tcp SSH (praleiskite šią taisyklę ir rizikuojate prarasti prieigą prie serverio) ir 8388 – abu TCP ir UDP – „Shadowsocks“ tarpinio serverio funkciją naudoja tiek TCP ryšiams, tiek UDP asociacijoms (naudinga DNS ir kai kuriems žaidimams / programoms), todėl abi prievado kryptys turi būti atviros.

ufw allow 22/tcp
ufw allow 8388/tcp
ufw allow 8388/udp
ufw --force enable
ufw status

Visos trys taisyklės ufw būsenos išvestyje turėtų būti rodomos kaip ALLOW. Jei vėliau pakeisite prievadą config.json faile, atnaujinkite šias taisykles, kad jos atitiktų.

UFW būsena, rodanti sukonfigūruotas SSH ir „Shadowsocks“ taisykles.

Serverio programinės įrangos diegimas

Pasirinkite vieną iš dviejų toliau pateiktų variantų. Rekomenduojamas A variantas („shadowsocks-rust“): tai aktyviai kuriama versija, palaikanti šiuolaikinius AEAD-2022 šifrus, naudojamus vėliau šiame vadove. B variantas („shadowsocks-libev“) yra puikus pasirinkimas, jei norite naudoti paprastą „apt“ paketą su paruoštu „systemd“ įrenginiu ir jums nereikia AEAD-2022.

A variantas – šešėlinės kojinės-rūdys (rekomenduojama)

„Shadowsocks-rust“ neteikia „apt“ paketo su naujausiomis versijomis, todėl jis įdiegiamas atsisiunčiant iš anksto sukurtą statinį dvejetainį failą iš projekto „GitHub“ versijų. Atsisiųskite naujausią leidimo žymę iš „GitHub API“ ir atsisiųskite atitinkamą „Linux x86_64“ archyvą:

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"
Komanda, naudojama „shadowsocks-rust“ išleidimo archyvui atsisiųsti.

Jei jūsų VPS yra arm64, o ne x86_64 (patikrinkite naudodami `uname -m`), aukščiau esančiame failo pavadinime pakeiskite x86_64-unknown-linux-gnu į aarch64-unknown-linux-gnu.

Išskleiskite archyvą ir įdiekite dvejetainius failus visoje sistemoje:

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
Komanda, naudojama „shadowsocks-rust“ dvejetainiams failams išskleisti ir įdiegti.

Patikrinkite, ar dvejetainis failas yra įdiegtas, ir patikrinkite įdiegtą versiją:

ssserver --version
Įdiegta ssserver versija.

Sukurkite katalogą, kuriame bus konfigūracijos failas:

mkdir -p /etc/shadowsocks-rust
„shadowsocks-rust“ konfigūracijos katalogo sukūrimas.

Šiame vadove įdiegiama pataisyta versija, o ne į „bash“ įkeliamas diegimo scenarijus. Norėdami atnaujinti vėliau, dar kartą paleiskite dvi aukščiau pateiktas komandas su nauja SS_VER paieška, sustabdykite paslaugą, pakeiskite dvejetainį failą ir paleiskite ją iš naujo (6 skyrius).

B variantas – „shadowsocks-libev“ (alternatyvus, tinkamas paketas)

„Shadowsocks-libev“ yra įtrauktas į „Ubuntu“ „universe“ saugyklą („Ubuntu 16.10+“) ir pagrindinę „Debian“ saugyklą („Debian 8+“), todėl 22.04/24.04 arba „Debian 11/12“ versijose trečiosios šalies PPA nereikia:

apt install -y shadowsocks-libev
Komanda, naudojama „shadowsocks-libev“ įdiegimui iš paketų saugyklos.

Jei apt praneša, kad paketas nerastas, „universe“ saugykla yra išjungta; įjunkite ją ir bandykite dar kartą:

add-apt-repository universe && apt update && apt install -y shadowsocks-libev

Paketas įdiegia savo „systemd“ vienetus („shadowsocks-libev.service“ numatytajai konfigūracijai ir „[email protected]“ konkrečiai instancijai skirtoms konfigūracijoms) ir automatiškai sukuria /etc/shadowsocks-libev/config.json – 4–6 skyriuose nurodytos „libev“ skirtos komandos ir failų keliai kartu su „rust“ komandomis ir keliais. Likusios šio vadovo kliento dalys (7–13) taikomos vienodai abiem serverio diegimams, nes abu jie kalba tuo pačiu „Shadowsocks/SIP002“ protokolu laide.

Slaptažodžio generavimas ir šifro pasirinkimas

„Shadowsocks“ autentifikavimas yra vienas bendras slaptažodis ir šifras (šifravimo metodas), dėl kurio turi susitarti abi pusės – nėra atskiro UUID, raktų poros ar sertifikato, kurį reikėtų valdyti.

Šifrų šeimos

  • AEAD-2022 (rekomenduojama, tik „shadowsocks-rust“): 2022-blake3-aes-128-gcm, 2022-blake3-aes-256-gcm, 2022-blake3-chacha20-poly1305. Naujesnis dizainas (SIP022) su stipresne pakartojimo apsauga ir palaikymu keliems vartotojams, dalijantis vienu prievadu. Slaptažodis turi būti „base64“ eilutė, kurios ilgis tiksliai atitinka šifro rakto ilgį (16 baitų 128 bitų variantams, 32 baitai 256 bitų variantams).
  • Klasikinis AEAD (palaikomas tiek „rust“, tiek „libev“): aes-256-gcm, aes-128-gcm, chacha20-ietf-poly1305. Plačiai suderinamas su senesniais klientais ir su „shadowsocks-libev“; slaptažodis gali būti bet kokia slaptafrazė, nes ji tiekiama per rakto išvedimo funkciją, o ne naudojama tiesiogiai kaip rakto medžiaga.

Šiame vadove „shadowsocks-rust“ serveriui naudojamas „2022-blake3-aes-256-gcm“, nes tai yra stipriausias ir naujausias variantas, ir jį palaiko visi vėliau rekomenduojami klientai („v2rayN“, „v2rayNG“, „Shadowrocket“, „Streisand“, „ShadowsocksX-NG“). Jei 3 skyriuje įdiegėte „shadowsocks-libev“, naudokite „chacha20-ietf-poly1305“ arba „aes-256-gcm“, nes „libev“ neįdiegia AEAD-2022.

Sukurti raktą (shadowsocks-rust)

ssservice genkey -m "2022-blake3-aes-256-gcm"
Komanda, naudojama atsitiktinei „shadowsocks-libev“ slaptažodžio frazei generuoti.

Tai atspausdina „base64“ eilutę – tai jūsų slaptažodis. Nukopijuokite jį į saugią vietą; įklijuosite jį tiek į serverio konfigūraciją 5 skyriuje, tiek į kliento nuorodą 7 skyriuje.

Sugeneruota atsitiktinė slaptafrazė.

Pasirinkite slaptažodį (shadowsocks-libev)

Klasikiniams AEAD šiframs, kuriuos naudoja „shadowsocks-libev“, tinka bet kokia pakankamai ilga atsitiktinė eilutė, nes ji vykdoma per PBKDF/HKDF, o ne naudojama kaip neapdorotas raktas. Sukurkite ją naudodami:

openssl rand -base64 32

Serverio konfigūracijos rašymas

Šešėlinės kojinės-rūdys

Atidarykite konfigūracijos failą redagavimui:

nano /etc/shadowsocks-rust/config.json

Įklijuokite žemiau esantį šabloną, pakeisdami savo slaptažodį iš 4 skyriaus (ir prievadą iš 2 skyriaus, jei jį pakeitėte iš 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
}

Paspauskite Ctrl+O („WriteOut“), kad įrašytumėte failą, Enter, kad patvirtintumėte failo pavadinimą, tada Ctrl+X, kad išeitumėte iš „nano“.

Svarbiausi laukai: serveris klausosi visų sąsajų (0.0.0.0); server_port yra 2 skyriuje atidarytas prievadas; password/method yra 4 skyriuje nurodyti kredencialai ir šifras; mode įjungia TCP ir UDP perdavimą; timeout yra neveikos ryšio skirtasis laikas sekundėmis; nofile padidina failų aprašų limitą užimtiems serveriams.

Prieš prijungdami JSON failą prie „systemd“, patikrinkite, ar jis priima dvejetainį failą:

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"

Sukurkite „systemd“ bloką („shadowsocks-rust“)

Dvejetainėje versijoje nėra „systemd“ įrenginio, todėl sukurkite jį:

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

Išsaugokite ir išeikite, kaip aprašyta aukščiau, tada nurodykite „systemd“ paimti naują vieneto failą:

systemctl daemon-reload

Šešėlinės kojinės-libev

„apt“ paketas jau sukūrė /etc/shadowsocks-libev/config.json su numatytąja (tik grįžtamojo ryšio, atsitiktinis slaptažodis) konfigūracija ir savo „systemd“ bloku. Atidarykite jį redagavimui:

Komanda, naudojama atidaryti „shadowsocks-libev“ konfigūracijos failą.
nano /etc/shadowsocks-libev/config.json

Pakeiskite turinį į:

{
    "server":"0.0.0.0",
    "server_port":8388,
    "password":"YOUR-PASSPHRASE-HERE",
    "method":"chacha20-ietf-poly1305",
    "mode":"tcp_and_udp",
    "timeout":300
}
„shadowsocks-libev“ konfigūracijos pavyzdys.

Numatytoji konfigūracija naudoja serverį: ["::1", "127.0.0.1"] (tik grįžtamasis ryšys); pakeitus jį į „0.0.0.0“, serveris tampa pasiekiamas iš viešo IP – nepraleiskite šio veiksmo, jei nukopijavote standartinį failą, o ne aukščiau pateiktą šabloną.

Paslaugos paleidimas ir automatinio paleidimo įjungimas

Šešėlinės kojinės-rūdys

systemctl enable --now ssserver
systemctl status ssserver --no-pager

Būsena turėtų rodyti aktyvią (veikiančią). Įsitikinkite, kad kažkas iš tikrųjų klausosi prievado (abu protokolai):

Serveris klausosi TCP ir UDP 8388 prievado.
ss -lntp | grep ':8388'
ss -lunp | grep ':8388'

Jei paslaugos nepavyksta paleisti, greičiausias būdas išsiaiškinti, kodėl taip atsitiko, yra „systemd“ žurnalas (bendrą informaciją apie „Linux“ žurnalų skaitymą rasite skyriuje „ Kaip skaityti „Linux“ žurnalus ir kur juos rasti “):

journalctl -u ssserver -n 50 --no-pager

Šešėlinės kojinės-libev

systemctl restart shadowsocks-libev
systemctl enable shadowsocks-libev
systemctl status shadowsocks-libev --no-pager

Patikrinkite prievadą ir žurnalus taip pat, kaip ir „shadowsocks-rust“, pakeisdami paslaugos pavadinimą:

Komandos, naudojamos „shadowsocks-libev“ paslaugai paleisti iš naujo, įjungti ir patikrinti. „Shadowsocks-libev“ paslaugos būsena rodoma kaip aktyvi (veikia).
ss -lntp | grep ':8388'
ss -lunp | grep ':8388'
journalctl -u shadowsocks-libev -n 50 --no-pager

Kliento ryšio jungties kūrimas

„Shadowsocks“ klientai importuoja vieną ss:// bendrinimo nuorodą (SIP002 URL formatu), o ne konfigūracijos failą. Nuorodoje šifras ir slaptažodis URL vartotojo informacijos dalyje užkoduojami kaip base64:

ss://base64(method:password)@your_IP_address:port#label

Sukurkite „base64“ dalį serveryje (taip išvengsite rankinio kodavimo klaidų):

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"

Išvesties pavyzdys (su vietos rezervavimo raktu):

Sugeneruotos ss:// ryšio nuorodos pavyzdys (iliustracinis).
ss://MjAyMi1ibGFrZTMtYWVzLTI1Ni1nY206eHl6X2V4YW1wbGVfa2V5X2hlcmU=@your_IP_address:8388#My-SS-Server

Tekstas po # yra tiesiog rodoma etiketė, kurią galite laisvai pervadinti bet kuriame kliente. „shadowsocks-libev“ serveriui vietoj jos pakeiskite METHOD="chacha20-ietf-poly1305" (arba aes-256-gcm) ir jos slaptažodį iš 4 skyriaus. 

Paverskite jį QR kodu, kad mobilieji klientai galėtų jį tiesiogiai nuskaityti:

qrencode -o ~/ss-client.png "ss://${USERINFO}@your_IP_address:8388#My-SS-Server"

Nukopijuokite PNG į savo kompiuterį naudodami komandą „scp“, paleiskite ją iš kompiuterio terminalo (arba „PowerShell“ sistemoje „Windows“), o ne iš serverio:

scp root@your_IP_address:~/ss-client.png .

Prisijungimas iš „Windows“

Viskas šiame skyriuje vyksta jūsų „Windows“ kompiuteryje, o ne per SSH – klientas turi veikti įrenginyje, kuris iš tikrųjų naudos tarpinį serverį.

Įdiekite v2rayN

„v2rayN“ yra nemokamas, aktyviai prižiūrimas grafinės sąsajos klientas su vietiniu „Shadowsocks“ palaikymu kartu su „VLESS“, „VMess“, „Trojan“ ir kitais. Atsisiųskite naujausią versiją iš projekto puslapio.

Paimkite 64 bitų „Windows“ .zip failą (savarankiškam kompiliavimui nereikia atskiros .NET vykdymo aplinkos, kaip ir naujausiose „v2rayN“ versijose), išskleiskite jį bet kur ir paleiskite „v2rayN.exe“.

Importuoti serverį

Nukopijuokite 7 skyriuje sukurtą ss:// nuorodą į iškarpinę (arba nukopijuokite QR PNG failą naudodami scp ir atidarykite jį), tada „v2rayN“ pasirinkite „Serveriai“ → „Importuoti didelius URL kiekius iš iškarpinės“ (arba nuskaitykite QR kodą integruotu skaitytuvu). Naujas serverio profilis rodomas sąraše su jūsų nustatytu žyme po #.

Dešiniuoju pelės mygtuku spustelėkite profilį ir pasirinkite jį kaip aktyvų, tada pagrindinio lango įrankių juostoje įjunkite sistemos tarpinį serverį (arba TUN režimą, skirtą visam kompiuteriui nukreipti).

Prisijungimas iš macOS

Viskas šiame skyriuje vyksta jūsų „Mac“ kompiuteryje, o ne per SSH.

Įdiekite „ShadowsocksX-NG“

„ShadowsocksX-NG“ yra ilgai veikiantis „Shadowsocks“ skirtas „macOS“ grafinės sąsajos klientas; dabartinėje versijoje yra ir „Apple Silicon“ versija, ir „Intel“ procesoriai. Atsisiųskite naujausią .dmg failą iš leidimų puslapio.

Atidarykite .dmg failą ir nuvilkite „ShadowsocksX-NG“ į „Programos“, tada paleiskite jį – jis rodomas kaip piktograma meniu juostoje.

 

Importuoti serverį

Nukopijuokite ss:// nuorodą iš 7 skyriaus į iškarpinę, tada spustelėkite meniu juostos piktogramą → Serveriai → Serverio nuostatos → + apačioje kairėje ir pasirinkite „Importuoti iš kartono“ (arba nuskaitykite QR kodą naudodami „Scan QR Code From Screen“, atidarę PNG failą). Meniu juostos išskleidžiamajame sąraše pasirinkite naują profilį, tada perjunkite „Shadowsocks: On“ ir tame pačiame meniu pasirinkite maršruto parinkimo režimą „PAC Auto“ arba „Global“.

Prisijungimas iš „Linux“ darbalaukio

Viskas šiame skyriuje vyksta jūsų Linux kompiuteryje, o ne VPS.

Įdiekite vietinį klientą

Jei 3 skyriuje serveryje įdiegėte „shadowsocks-rust“, tame pačiame leidimo archyve yra „sslocal“ – SOCKS5/HTTP vietinio tarpinio serverio klientas. Atsisiųskite jį ir įdiekite taip pat, kaip ir serverio dvejetainį failą (jei jis nėra „x86_64-unknown-linux-gnu“, pakoreguokite OS/arch priesagą):

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/

Konfigūruoti ir paleisti

Sukurkite nedidelę vietinę konfigūraciją, kuri klausytųsi 127.0.0.1:1080 kaip SOCKS5 tarpinio serverio:

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

Nukreipkite naršyklės arba sistemos tinklo nustatymus į SOCKS5 tarpinį serverį, esantį adresu 127.0.0.1:1080. Grafinei sąsajai „ Nekoray“ arba „ShadowsocksX-Qt5“ stiliaus šakutės gali importuoti tą pačią ss:// nuorodą iš 7 skyriaus ir valdyti sslocal už jus, užuot paleidus jas rankiniu būdu.

Prisijungimas iš „Android“

Viskas čia vyksta jūsų „Android“ įrenginyje, o ne per SSH.

Įdiekite klientą

Du geri variantai:

  • „Shadowsocks“, skirta „Android“ – oficialus „Shadowsocks“ organizacijos klientas. Įdiekite jį iš „Google Play“ (ieškokite „Shadowsocks“) arba atsisiųskite APK tiesiai iš projekto leidimų puslapio, jei „Play“ nėra jūsų įrenginyje. Regione.
  • „v2rayNG“ – „v2rayN“ atitikmuo „Android“ sistemoje, palaikantis „Shadowsocks“ kartu su „VLESS“ / „VMess“ / „Trojan“; naudinga, jei norite vienos programos keliems protokolams tipai.

Importuoti serverį

Bet kurioje programėlėje: palieskite mygtuką +, nukopijavę ss:// nuorodą iš 7 skyriaus pasirinkite „Importuoti iš iškarpinės“ arba „Nuskaityti QR kodą“ ir nukreipkite kamerą į PNG failą. Palieskite importuotą profilį, kad jį pasirinktumėte, tada palieskite prisijungimo mygtuką. „Android“ pirmą kartą paprašys VPN leidimo – patvirtinkite jį tunelio užmezgimui. 

Prisijungimas iš „iOS“

Viskas čia vyksta jūsų „iPhone“ arba „iPad“, o ne per SSH.

Įdiekite „Shadowsocks“ palaikantį klientą

„Shadowrocket“ yra plačiausiai naudojamas „iOS“ klientas su „Shadowsocks“ palaikymu; tai mokama programėlė, kurią galima rasti daugumoje parduotuvių. Ieškokite jos „App Store“ arba atidarykite.

„Streisand“ yra nemokama, atvirojo kodo alternatyva, kuri taip pat palaiko „Shadowsocks“ kartu su VLESS, „Trojan“ ir kitais protokolais.

„App Store“ katalogai skiriasi priklausomai nuo parduotuvės / regiono ir gali keistis laikui bėgant; jei jūsų kataloge nematote nė vieno, „App Store“ ieškokite „Shadowsocks“ arba „V2Box“.

Importuoti serverį

Nukopijuokite nuorodą ss:// į iškarpinę, atidarykite klientą ir naudokite jo parinktį „Pridėti / importuoti iš iškarpinės“ arba nuskaitykite QR kodą iš 7 skyriaus naudodami kliento integruotą skaitytuvą. Įjunkite naują profilį; „iOS“ pirmą kartą paprašys VPN konfigūravimo leidimo, kurį turėsite patvirtinti naudodami „Face ID“, „Touch ID“ arba savo slaptažodį.

Ryšio tikrinimas

Kai tunelis iš 8, 9, 10, 11 arba 12 skyrių yra aktyvus, grįžkite į savo įrenginį (ne į SSH sesiją) ir naršyklėje atidarykite bet kokį „koks mano IP adresas“ tikrintuvą – rodomas adresas turėtų sutapti su jūsų VPS IP adresu, jūsų_IP_adresas.

Norėdami patikrinti iš serverio pusės, patikrinkite „systemd“ žurnalą, ar nėra ryšio aktyvumo, ir patvirtinkite užmegztas sesijas prievade (naudokite „ssserver“ „rust“ žurnalui arba „shadowsocks-libev“ „libev“ žurnalui):

journalctl -u ssserver -n 50 --no-pager
ss -tnp | grep ':8388'

Nuoroda:

Laukas

Reikšmė

Adresas

jūsų VPS viešąjį IP adresą

uostas

8388 (tas pats prievadas, atidarytas 2 skyriuje)

Slaptažodis

4 skyriuje sugeneruotas raktas / slaptafrazė

Siuntimas

2022-blake3-aes-256-gcm (rust) arba chacha20-ietf-poly1305 (libev) – turi tiksliai sutapti iš abiejų pusių

Režimas

tcp_and_udp — įgalina ir TCP tarpinį serverį, ir UDP perdavimą (DNS, kai kuriuose žaidimuose)

Prijungti

šiame vadove nenaudojamas nė vienas – „Shadowsocks“ nereikia SNI, sertifikato ar transportavimo įskiepio, kad veiktų

Išvada

Vadovaujantis šiuo vadovu, jūsų VPS veikia su savo „Shadowsocks“ serveriu – arba „shadowsocks-rust“ su moderniu AEAD-2022 šifru, arba „shadowsocks-libev“ iš nuosavos „Ubuntu“ / „Debian“ saugyklos – kaip „systemd“ paslauga, kuri išgyvena perkrovimą be jokių jūsų veiksmų.

Pridėti daugiau naudotojų:

  • Paprasčiausias būdas: sugeneruokite antrą slaptažodį (4 skyrius) ir paleiskite antrą „ssserver/shadowsocks-libev“ egzempliorių kitame prievade su savo konfigūracijos failu ir „systemd“ bloku, tada pakartokite 5–7 skyrius su tuo prievadu.
  • „shadowsocks-rust“ su AEAD-2022 šifru taip pat palaiko kelių vartotojų, kurie dalijasi vienu prievadu ir slaptažodžio išvedimo raktu per „users“ masyvą faile config.json (išplečiamos tapatybės antraštės, SIP022) – tikslią sintaksę, jei reikia apskaityti kiekvieno vartotojo srautą viename prievade, žr. „shadowsocks-rust README“ konfigūravimo skyriuje.

Keletas įpročių, kuriuos verta išlaikyti, kai serveris veikia:

  • Nuolat atnaujinkite serverį. „shadowsocks-rust“ atveju periodiškai pakartokite 3 skyriuje nurodytus atsisiuntimo ir diegimo veiksmus, ieškodami naujos versijos, tada paleiskite „ssserver“ iš naujo naudodami komandą „systemctl“. „shadowsocks-libev“ atveju tai galima padaryti naudojant paprastą „apt upgrade“.
  • Sukurkite „config.json“ failo atsarginę kopiją kažkur privačioje vietoje už serverio ribų. Joje saugomi kiekvieno kliento slaptažodžiai; jį praradus, kiekvienam įrenginiui iš naujo generuojami prisijungimo duomenys.
  • Pakeiskite slaptažodį, jei įrenginys pametamas arba klientas pažeidžiamas: sugeneruokite naują (4 skyrius), atnaujinkite config.json failą, paleiskite paslaugą iš naujo ir atkurkite kliento nuorodą (7 skyrius) kiekvienam likusiam įrenginiui.

Jei ryšys neatsiranda, patikrinkite veiksmus tokia tvarka:

  • paslaugos būsena („systemctl status ssserver --no-pager“ arba „shadowsocks-libev“) ir žurnalas („journalctl -u ssserver -n 50 --no-pager“)
  • užkardos taisyklės (ufw būsena – prievadas turi būti atidarytas ir tcp, ir udp)
  • ar prievadas dar nėra susietas su kita paslauga (ss -lntp | grep ':8388' ​​turėtų rodyti tik ssserver/ss-server)
  • ar kliento slaptažodis, metodas ir prievadas tiksliai atitinka config.json failą – vienas nesutampantis simbolis tyliai nutraukia rankos paspaudimą, dažniausiai rodydamas ryšio skirtojo laiko pabaigą, o ne aiškią klaidą
  • tas režimas serveryje nustatomas į tcp_and_udp, jei klientui reikia UDP (DNS per tarpinį serverį, kai kuriems žaidimams / programėlėms), o ne tik tcp_only.

Lyginate „Shadowsocks“ su kitomis alternatyvomis? Žr. „Xray VLESS Reality Guide“ , kuriame rasite TLS maskuojamuoju būdu pagrįstą protokolą, kurį sunkiau atpažinti stipriai filtruojamame tinkle, „AmneziaWG Server Deployment Guide“ ir „ Kaip nustatyti „Wireguard VPN“ serveryje“ , jei naudojate „WireGuard“ pagrindu veikiančias alternatyvas, arba „Hysteria2“ ir TUIC sąranką , kurioje rasite du protokolus, skirtus nuostolingais arba stipriai filtruojamais tinklais. Jei jums reikia tik paprasto tarpinio serverio, o ne pilno tuneliavimo, 3proxy konfigūracija „CentOS“ / „ArchLinux“ sistemose yra daug lengvesnė alternatyva, o senesnė VPN serverio sąranka „Linux“ sistemoje: PPTP ar OpenVPN? apima protokolus, kuriuos lengviau nustatyti, bet DPI juos daug lengviau aptikti ir blokuoti. Norėdami sužinoti apie bendrą serverio apsaugos stiprinimą, kai tarpinis serveris veikia, žr. „Linux Users: Management and Permissions“.

❮ Ankstesnis straipsnis „Xray VLESS“ realybės vadovas: VPS, „Windows“, „Mac“, „Android“, „iPhone“
Kitas straipsnis ❯ „VMmanager 6“ saugumo incidentas: kas nutiko ir ką daryti

Klauskite mūsų apie VPS

Mes visada pasiruošę atsakyti į jūsų klausimus bet kuriuo dienos ar nakties metu.