Shadowsocks on kevyt, SOCKS5-pohjainen salattu välityspalvelinprotokolla, joka alun perin suunniteltiin kiertämään liikenteen muokkausta ja estoa tavallisissa verkoissa. Toisin kuin täysi VPN, se välittää vain sovelluksen sille eksplisiittisesti lähettämää liikennettä, sillä ei ole juurikaan protokollan lisäkuormitusta ja se toimii hyvin jopa rajoitetuilla yhteyksillä. Se ei yritä jäljitellä todellista TLS-kättelyä kuten VLESS+Reality – sen vahvuuksia ovat yksinkertaisuus, laaja asiakastuki (reitittimet, puhelimet, selaimet) ja erittäin pieni viive, mutta samalla se on jonkin verran helpompi sormenjälkien tunnistaa liikennekuvion perusteella tarkasti tarkastetussa verkossa.
Aktiivisesti ylläpidettyjä palvelintoteutuksia on kaksi:
- shadowsocks-rust — Shadowsocks-organisaation moderni referenssitoteutus, joka on kirjoitettu Rust-kielellä. Se tukee uudempaa AEAD-2022-salausperhettä, sitä kehitetään aktiivisesti, ja tämä opas asentaa ja konfiguroi sen yksityiskohtaisesti.
- shadowsocks-libev — vanhempi C-toteutus. Sitä ylläpidetään edelleen virheiden korjausten varalta, se toimitetaan valmiina apt-pakettina omilla systemd-yksiköillään ja on hyvä valinta, jos haluat ehdottoman yksinkertaisen asennuksen ilman manuaalista binääritiedostojen käsittelyä. Tämä opas käsittelee sitä vaihtoehtoisena asennuspolkuna osiossa 3.
Tässä oppaassa kuvataan, kuinka palvelin määritetään manuaalisesti komentorivin kautta – ilman web-paneelia tai Dockeria. Korvaa "IP-osoite"-kenttä aina VPS:n todellisella IP-osoitteella.
Tarvitset: virtuaalipalvelimen, jossa on Ubuntu 22.04/24.04 tai Debian 11/12, pääkäyttäjän oikeudet, virtuaalipalvelimesi IP-osoitteen ja vapaan UDP/TCP-portin (tässä oppaassa käytetään 8388:aa, Shadowsocksin oletusporttia).
Eikö sinulla ole vielä palvelinta? Katso , miten tilaat palvelimen ja maksat siitä.
Vertailetko tätä ensin muihin itse isännöityihin vaihtoehtoihin? Katso Xray VLESS Reality Guide TLS-naamiointipohjaisesta vaihtoehdosta, AmneziaWG Server Deployment Guide WireGuard-pohjaisesta vaihtoehdosta tai Hysteria2- ja TUIC-asennuksesta kahdelle muulle nykyaikaiselle välityspalvelinprotokollalle.
Yhdistetään palvelimeen
Windows (PuTTY)
Avaa PuTTY, kirjoita VPS:n IP-osoitteesi Host Name -kenttään, aseta portiksi 22 ja kirjaudu sisään root-käyttäjänä käyttämällä VPS-palveluntarjoajasi sinulle sähköpostitse lähettämää salasanaa.
Palvelimen IP-osoite: IP-osoitteesi
kirjaudu sisään pääkäyttäjänä
Salasana: salasanasi
Yksityiskohtaisen ohjeet PuTTY/SSH-yhteyden muodostamiseen on kohdassa Yhteyden muodostaminen Linux-palvelimeen SSH:n kautta.
Linux / macOS (pääte)
ssh root@your_IP_address
Kaikki alla olevat komennot suoritetaan palvelimella tässä samassa SSH-istunnossa – joka kattaa osiot 2–7 sekä osiossa 13 mainitut palvelinpuolen tarkistukset. Osiot 8–12 (asiakassovellusten asentaminen ja määrittäminen) suoritetaan omalla Windows/macOS/Linux/Android/iOS-laitteellasi, koska välityspalvelimen on toimittava siinä. Jokaisessa osiossa kerrotaan nimenomaisesti, mitkä rivit, jos mitkään, koskettavat edelleen palvelinta.
Palvelimen valmistelu
Päivitä järjestelmä
Ennen minkään asentamista, päivitä pakettiluettelo ja päivitä asennetut paketit:
apt update -y && apt upgrade -y
Jos tämä päivittää ytimen, uudelleenkäynnistys on hyvä idea ennen jatkamista. (Lisätietoja apt:stä ja Linux-paketinhallintajärjestelmien toiminnasta on kohdassa Linux-paketinhallintajärjestelmät .) Tarkista seuraavat:
cat /var/run/reboot-required
Jos tiedosto on olemassa, käynnistä tietokone ensin uudelleen komennolla 'reboot', odota noin 30 sekuntia ja kytke se sitten uudelleen.
Asenna tässä oppaassa käytetyt työkalut
apt install -y curl wget tar xz-utils ufw qrencode
Shadowsocks-rust-julkaisuarkiston hakemiseen ja purkamiseen tarvitaan curl/wget ja tar/xz-utils; ufw on alla määritetty palomuuri; qrencode muuttaa valmiin asiakaslinkin skannattavaksi QR-koodiksi osiossa 7.
Palomuurin (UFW) määrittäminen
Lisätietoja UFW-säännöistä on kohdassa Palomuurin määrittäminen Linuxissa.
Avaa kaksi tarvitsemaasi porttia: 22/tcp SSH:lle (jos ohitat tämän säännön, saatat menettää pääsyn palvelimelle) ja 8388, sekä tcp että udp — Shadowsocks käyttää välityspalvelinta sekä TCP-yhteyksien että UDP-yhteyksien kautta (hyödyllinen DNS:lle ja joillekin peleille/sovelluksille), joten portin molempien suuntien on oltava auki.
ufw allow 22/tcp
ufw allow 8388/tcp
ufw allow 8388/udp
ufw --force enable
ufw status
Kaikkien kolmen säännön pitäisi näkyä ufw-tilatuloksessa muodossa ALLOW. Jos myöhemmin muutat porttia config.json-tiedostossa, päivitä nämä säännöt vastaamaan sitä.
Palvelinohjelmiston asentaminen
Valitse toinen alla olevista kahdesta vaihtoehdosta. Vaihtoehtoa A (shadowsocks-rust) suositellaan: se on aktiivisesti kehitetty toteutus ja tukee tässä oppaassa myöhemmin käytettyjä moderneja AEAD-2022-salauksia. Vaihtoehto B (shadowsocks-libev) on hyvä valinta, jos haluat mieluummin käyttää tavallista apt-pakettia valmiilla systemd-yksiköllä etkä tarvitse AEAD-2022:ta.
Vaihtoehto A — shadowsocks-ruoste (suositeltu)
Shadowsocks-rust ei toimita apt-pakettia uusimpien julkaisujen mukana, joten se asennetaan lataamalla valmiiksi rakennettu staattinen binääritiedosto projektin GitHub-julkaisuista. Hae uusin julkaisutunniste GitHub-rajapinnasta ja lataa vastaava Linux x86_64 -arkisto:
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"
Jos VPS:si on arm64 x86_64:n sijaan (tarkista komennolla `uname -m`), korvaa yllä olevassa tiedostonimessä x86_64-unknown-linux-gnu nimellä aarch64-unknown-linux-gnu.
Pura arkisto ja asenna binäärit koko järjestelmään:
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
Varmista, että binääritiedosto on paikallaan ja tarkista asennettu versio:
ssserver --version
Luo hakemisto, johon asetustiedosto tulee:
mkdir -p /etc/shadowsocks-rust
Tämä opas asentaa korjatun version sen sijaan, että se syöttäisi asennusskriptiä bashiin. Voit päivittää myöhemmin suorittamalla yllä olevat kaksi komentoa uudelleen käyttämällä uutta SS_VER-hakua, pysäyttämällä palvelun, korvaamalla binääritiedoston ja käynnistämällä palvelun uudelleen (osio 6).
Vaihtoehto B — shadowsocks-libev (vaihtoehtoinen, apt-paketti)
Shadowsocks-libev sisältyy Ubuntun universe-arkistoon (Ubuntu 16.10+) ja Debianin pääarkistoon (Debian 8+), joten kolmannen osapuolen PPA:ta ei tarvita 22.04/24.04- tai Debian 11/12 -versioissa:
apt install -y shadowsocks-libev
Jos apt ilmoittaa, että pakettia ei löydy, universe-arkisto on poistettu käytöstä; ota se käyttöön ja yritä uudelleen:
add-apt-repository universe && apt update && apt install -y shadowsocks-libev
Paketti asentaa omat systemd-yksikkönsä (shadowsocks-libev.service oletuskonfiguraatiolle sekä [email protected] nimetyille instanssikohtaisille konfiguraatioille) ja luo automaattisesti /etc/shadowsocks-libev/config.json-tiedoston — osioissa 4–6 mainitaan libev-kohtaiset komennot ja tiedostopolut rust-komentojen ja -polkujen rinnalla. Tämän oppaan muut asiakasosiot (7–13) koskevat identtisesti kumpaakin palvelintoteutusta, koska molemmat puhuvat samaa Shadowsocks/SIP002-protokollaa langalla.
Salasanan luominen ja salauksen valitseminen
Shadowsocks-todennus on yksi jaettu salasana ja molempien osapuolten hyväksymä salausmenetelmä – erillistä UUID:ta, avainparia tai varmennetta ei ole hallittavana.
Salausperheet
- AEAD-2022 (suositeltu, vain shadowsocks-rust): 2022-blake3-aes-128-gcm, 2022-blake3-aes-256-gcm, 2022-blake3-chacha20-poly1305. Uudempi muotoilu (SIP022), jossa on vahvempi toistosuoja ja tuki useille käyttäjille, jotka jakavat yhden portin. Salasanan on oltava base64-merkkijono, jonka pituus on täsmälleen salausavaimen pituus (16 tavua 128-bittisille muunnoksille, 32 tavua 256-bittisille muunnoksille).
- Klassinen AEAD (sekä Rustin että Libevin tukema): aes-256-gcm, aes-128-gcm, chacha20-ietf-poly1305. Laajasti yhteensopiva vanhempien asiakasohjelmien ja shadowsocks-libevin kanssa; salasana voi olla mikä tahansa tunnuslause, koska se syötetään avaimen johdantofunktion kautta eikä sitä käytetä suoraan avainmateriaalina.
Tässä oppaassa käytetään shadowsocks-rust-palvelimelle tiedostoa 2022-blake3-aes-256-gcm, koska se on vahvin ja uusin vaihtoehto ja kaikki myöhemmin suositellut asiakasohjelmat (v2rayN, v2rayNG, Shadowrocket, Streisand, ShadowsocksX-NG) tukevat sitä. Jos asensit shadowsocks-libevin osiossa 3, käytä sen sijaan tiedostoa chacha20-ietf-poly1305 tai aes-256-gcm, koska libev ei toteuta AEAD-2022:ta.
Luo avain (shadowsocks-rust)
ssservice genkey -m "2022-blake3-aes-256-gcm"
Tämä tulostaa base64-merkkijonon – se on salasanasi. Kopioi se turvalliseen paikkaan; liität sen sekä palvelimen asetuksiin osiossa 5 että asiakaslinkkiin osiossa 7.
Valitse salasana (shadowsocks-libev)
Shadowsocks-libevin käyttämissä klassisissa AEAD-salauksissa mikä tahansa riittävän pitkä satunnainen merkkijono toimii, koska se ajetaan PBKDF/HKDF:n läpi eikä sitä käytetä raakana avaimena. Luo sellainen komennolla:
openssl rand -base64 32
Palvelimen konfiguroinnin kirjoittaminen
Varjosukat-ruoste
Avaa määritystiedosto muokkausta varten:
nano /etc/shadowsocks-rust/config.json
Liitä alla oleva mallipohja ja korvaa se omalla salasanallasi osiosta 4 (ja portilla osiosta 2, jos vaihdoit sen 8388:sta):
{
"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
}
Tallenna tiedosto painamalla Ctrl+O (WriteOut), vahvista tiedostonimi painamalla Enter ja poistu sitten nanosta painamalla Ctrl+X.
Tärkeät kentät: palvelin kuuntelee kaikkia rajapintoja (0.0.0.0); palvelinportti on osiossa 2 avattu portti; salasana/metodi ovat osiossa 4 käytetyt tunnistetiedot ja salaus; tila mahdollistaa sekä TCP- että UDP-välityksen; timeout on käyttämättömyysyhteyden aikakatkaisu sekunteina; nofile nostaa tiedostokuvaajien rajaa kiireisille palvelimille.
Vahvista JSON ja että binääritiedosto hyväksyy sen ennen sen kytkemistä systemd:hen:
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"
Luo systemd-yksikkö (shadowsocks-rust)
Binääriversiossa ei ole systemd-yksikköä, joten luo sellainen:
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
Tallenna ja poistu kuten yllä, ja käske sitten systemd:tä poimimaan uusi yksikkötiedosto:
systemctl daemon-reload
Shadowsocks-libev
apt-paketti on jo luonut tiedoston /etc/shadowsocks-libev/config.json oletuskokoonpanolla (vain loopback, satunnainen salasana) ja omalla systemd-yksiköllään. Avaa se muokattavaksi:
nano /etc/shadowsocks-libev/config.json
Korvaa sisältö seuraavasti:
{
"server":"0.0.0.0",
"server_port":8388,
"password":"YOUR-PASSPHRASE-HERE",
"method":"chacha20-ietf-poly1305",
"mode":"tcp_and_udp",
"timeout":300
}
Oletuskonfiguraatiossa käytetään palvelinta: ["::1", "127.0.0.1"] (vain loopback); sen muuttaminen arvoon "0.0.0.0" tekee palvelimesta tavoitettavan julkisesta IP-osoitteesta – älä ohita tätä, jos kopioit perustiedoston yllä olevan mallin sijaan.
Palvelun käynnistäminen ja automaattisen käynnistyksen ottaminen käyttöön
Varjosukat-ruoste
systemctl enable --now ssserver
systemctl status ssserver --no-pager
Tilan pitäisi näyttää aktiivinen (käynnissä). Varmista, että jokin todella kuuntelee porttia (molemmat protokollat):
ss -lntp | grep ':8388'
ss -lunp | grep ':8388'
Jos palvelu ei käynnisty, nopein tapa selvittää syy on systemd-lokin avulla (yleisiä taustatietoja Linux-lokien lukemisesta on artikkelissa Linux-lokien lukeminen ja niiden löytäminen ):
journalctl -u ssserver -n 50 --no-pager
Shadowsocks-libev
systemctl restart shadowsocks-libev
systemctl enable shadowsocks-libev
systemctl status shadowsocks-libev --no-pager
Tarkista portti ja lokit samalla tavalla kuin shadowsocks-rust-palvelimella, korvaamalla palvelun nimi:
ss -lntp | grep ':8388'
ss -lunp | grep ':8388'
journalctl -u shadowsocks-libev -n 50 --no-pager
Asiakasyhteyslinkin rakentaminen
Shadowsocks-asiakasohjelmat tuovat yhden ss://-jakolinkin (SIP002 URL-muoto) määritystiedoston sijaan. Linkki koodaa salauksen ja salasanan base64-muotoon URL-osoitteen käyttäjäinfo-osassa:
ss://base64(method:password)@your_IP_address:port#label
Luo base64-osio palvelimelle (tämä välttää käsin koodauksen aiheuttamat kirjoitusvirheet):
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"
Esimerkki tulosteesta (paikkamerkkiavaimella):
ss://MjAyMi1ibGFrZTMtYWVzLTI1Ni1nY206eHl6X2V4YW1wbGVfa2V5X2hlcmU=@your_IP_address:8388#My-SS-Server
#-merkin jälkeinen teksti on vain näyttönimi, jonka voit nimetä vapaasti uudelleen missä tahansa asiakasohjelmassa. Shadowsocks-libev-palvelimella korvaa se METHOD="chacha20-ietf-poly1305" (tai aes-256-gcm) ja sen salasanalla osiosta 4.
Muunna se QR-koodiksi, jotta mobiiliasiakkaat voivat skannata sen suoraan:
qrencode -o ~/ss-client.png "ss://${USERINFO}@your_IP_address:8388#My-SS-Server"
Kopioi PNG omalle tietokoneellesi scp:llä, suorita se tietokoneesi terminaalista (tai PowerShellistä Windowsissa), älä palvelimelta:
scp root@your_IP_address:~/ss-client.png .
Yhdistäminen Windowsista
Kaikki tässä osiossa tapahtuu Windows-tietokoneellasi, ei SSH:n kautta — asiakkaan on toimittava laitteella, joka todellisuudessa käyttää välityspalvelinta.
Asenna v2rayN
v2rayN on ilmainen, aktiivisesti ylläpidetty graafinen asiakasohjelma, jossa on natiivi Shadowsocks-tuki VLESSin, VMessin, Trojanin ja muiden ohella. Lataa uusin julkaisu projektin sivulta.
Ota Windowsin 64-bittinen .zip-tiedosto (itsenäinen koontiversio ei tarvitse erillistä .NET-suorituksenaikaista ympäristöä, kuten uudemmat v2rayN-versiot), pura se mihin tahansa ja suorita v2rayN.exe.
Tuo palvelin
Kopioi osiossa 7 luotu ss://-linkki leikepöydälle (tai kopioi QR-PNG-kuva scp:llä ja avaa se) ja valitse sitten v2rayN:ssä Palvelimet → Tuo joukko-URL leikepöydältä (tai skannaa QR-koodi sisäänrakennetulla skannerilla). Uusi palvelinprofiili näkyy luettelossa asettamasi otsikon kanssa #-merkin jälkeen.
Napsauta profiilia hiiren kakkospainikkeella ja valitse se aktiiviseksi. Ota sitten käyttöön järjestelmän välityspalvelin (tai TUN-tila koko koneen reitittämiseen) pääikkunan työkalupalkista.
Yhdistäminen macOS:stä
Kaikki tässä osiossa tapahtuvat Macillasi, eivätkä SSH:n kautta.
Asenna ShadowsocksX-NG
ShadowsocksX-NG on pitkäaikainen natiivi macOS-käyttöliittymäasiakasohjelma Shadowsocksille; nykyinen julkaisusarja sisältää natiivin Apple Silicon -koontiversion Intelin rinnalla. Lataa uusin .dmg- tiedosto julkaisusivulta.
Avaa .dmg-tiedosto ja vedä ShadowsocksX-NG Ohjelmat-kansioon. Käynnistä se sitten – se näkyy kuvakkeena valikkorivillä.
Tuo palvelin
Kopioi osiosta 7 oleva ss://-linkki leikepöydälle ja napsauta sitten valikkorivin kuvaketta → Palvelimet → Palvelimen asetukset → vasemmassa alakulmassa oleva + ja valitse "Tuo paperilta" (tai skannaa QR-koodi toiminnolla "Skannaa QR-koodi näytöltä" PNG-tiedoston avaamisen jälkeen). Valitse uusi profiili valikkorivin alasvetovalikosta ja vaihda sitten "Shadowsocks: Päällä" -asetukseksi ja valitse samasta valikosta reititystilaksi "PAC Auto" tai "Global".
Yhdistäminen Linux-työpöydältä
Kaikki tässä osiossa tapahtuu omalla Linux-koneellasi, ei VPS:llä.
Asenna paikallinen asiakasohjelma
Jos asensit shadowsocks-rustin palvelimelle osiossa 3, sama julkaisuarkisto sisältää sslocalin, joka on SOCKS5/HTTP-paikallinen välityspalvelinohjelma. Lataa ja asenna se samalla tavalla kuin palvelimen binääritiedosto (säädä työpöydän OS/arch-päätettä, jos se ei ole 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/
Määritä ja suorita
Luo pieni paikallinen kokoonpano, joka kuuntelee osoitetta 127.0.0.1:1080 SOCKS5-välityspalvelimena:
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
Osoita selaimesi tai järjestelmän verkkoasetukset SOCKS5-välityspalvelimelle osoitteessa 127.0.0.1:1080. Käyttöliittymää varten Nekoray- tai ShadowsocksX-Qt5-tyyliset haarat voivat tuoda saman ss://-linkin osiosta 7 ja hallita sslocalia puolestasi manuaalisen suorittamisen sijaan.
Yhdistäminen Androidista
Kaikki täällä tapahtuu Android-laitteellasi, ei SSH:n kautta.
Asenna asiakasohjelma
Kaksi hyvää vaihtoehtoa:
- Shadowsocks Androidille — Shadowsocks-organisaation virallinen asiakasohjelma. Asenna se Google Playsta (hae "Shadowsocks") tai lataa APK suoraan projektin julkaisusivulta, jos Play ei ole saatavilla laitteellasi. alue.
- v2rayNG — v2rayN:n Android-vastine, joka tukee Shadowsocksia VLESSin/VMessin/Trojanin rinnalla; hyödyllinen, jos haluat yhden sovelluksen useille protokollille tyypit.
Tuo palvelin
Kummassakin sovelluksessa: napauta +-painiketta, valitse "Tuo leikepöydältä" kopioituasi ss://-linkin osiosta 7 tai "Skannaa QR-koodi" ja osoita kameralla PNG-kuvaa. Valitse tuotu profiili napauttamalla sitä ja napauta sitten yhdistä-painiketta. Android pyytää VPN-lupaa ensimmäisellä kerralla – hyväksy se tunnelin muodostamiseksi.
Yhdistäminen iOS:stä
Kaikki täällä tapahtuu iPhonella tai iPadilla, ei SSH:n kautta.
Asenna Shadowsocks-yhteensopiva asiakasohjelma
Shadowrocket on laajimmin käytetty iOS-asiakasohjelma, joka tukee Shadowsocksia; se on maksullinen sovellus useimmissa sovelluskaupoissa. Hae sitä App Storesta tai avaa se.
Streisand on ilmainen, avoimen lähdekoodin vaihtoehto, joka tukee myös Shadowsocksia VLESSin, Troijan ja muiden protokollien rinnalla.
App Storen luettelot vaihtelevat myymälän/alueen mukaan ja voivat muuttua ajan myötä. Jos kumpaakaan ei näy omassasi, hae App Storesta hakusanoilla "Shadowsocks" tai "V2Box".
Tuo palvelin
Kopioi ss://-linkki leikepöydälle, avaa asiakasohjelma ja käytä sen Lisää/Tuo leikepöydältä -vaihtoehtoa tai skannaa osiossa 7 oleva QR-koodi asiakasohjelman sisäänrakennetulla skannerilla. Ota uusi profiili käyttöön; iOS pyytää VPN-määrityslupaa ensimmäisellä kerralla, joka sinun on hyväksyttävä Face ID:llä, Touch ID:llä tai salasanallasi.
Yhteyden tarkistaminen
Kun tunneli on aktiivinen osiossa 8, 9, 10, 11 tai 12, palaa omalle laitteellesi (ei SSH-istuntoon) ja avaa selaimessa mikä tahansa "mikä on IP-osoitteeni" -tarkistusikkuna. Näytetyn osoitteen pitäisi vastata VPS:si IP-osoitetta, your_IP_address.
Palvelimen puolelta tarkistamalla yhteystoiminta systemd-lokin kautta ja vahvistamalla portin kautta muodostetut istunnot (käytä ssserver-komentoa rust-lokin osalta tai shadowsocks-libev-komentoa libev-lokin osalta):
journalctl -u ssserver -n 50 --no-pager
ss -tnp | grep ':8388'
Viite:
|
Kenttä |
Arvo |
|
Osoite |
VPS-palvelimesi julkinen IP-osoite |
|
portti |
8388 (sama portti avattiin osiossa 2) |
|
Salasana |
osiossa 4 luotu avain/salasana |
|
Menetelmä |
2022-blake3-aes-256-gcm (ruoste) tai chacha20-ietf-poly1305 (libev) — täsmälleen molemmilta puolilta |
|
tila |
tcp_and_udp — mahdollistaa sekä TCP-välityspalvelimen että UDP-välityksen (DNS, jotkut pelit) |
|
Kytkeä |
tässä oppaassa ei käytetty mitään — Shadowsocks ei tarvitse toimiakseen SNI:tä, varmennetta tai siirtolaajennusta |
Yhteenveto
Tämän oppaan noudattaminen jättää VPS:si käyttämään omaa Shadowsocks-palvelinta – joko shadowsocks-rustia modernilla AEAD-2022-salauksella tai shadowsocks-libeviä Ubuntun/Debianin omasta arkistosta – systemd-palveluna, joka selviää uudelleenkäynnistyksestä ilman sinun toimiasi.
Lisää käyttäjiä:
- Yksinkertaisinta: luo toinen salasana (osio 4) ja suorita toinen ssserver/shadowsocks-libev-instanssi eri portissa omalla asetustiedostollaan ja systemd-yksiköllään, ja toista sitten osiot 5–7 kyseiselle portille.
- AEAD-2022-salauksella varustettu shadowsocks-rust tukee myös useiden käyttäjien saman portin ja salasanan johdantoavaimen jakamista config.json-tiedoston (Extensible Identity Headers, SIP022) "users"-taulukon kautta — katso tarkka syntaksi shadowsocks-rust-tiedoston README-tiedoston Määritys-osiosta, jos tarvitset käyttäjäkohtaista liikenteen seurantaa yhdellä portilla.
Muutamia tapoja, jotka kannattaa pitää yllä, kun palvelin on käynnissä:
- Pidä palvelin ajan tasalla. Shadowsocks-rustin tapauksessa suorita säännöllisesti osan 3 lataus- ja asennusvaiheet uudelleen käyttämällä uutta versiota ja käynnistä sitten ssserver uudelleen komennolla systemctl. Shadowsocks-libevin tapauksessa pelkkä apt-päivitys kattaa ongelman.
- Varmuuskopioi config.json-tiedosto yksityiseen paikkaan palvelimen ulkopuolelle. Se sisältää jokaisen asiakkaan salasanan; sen menettäminen tarkoittaa tunnistetietojen uudelleenluomista jokaiselle laitteelle.
- Vaihda salasanaa, jos laite katoaa tai asiakasohjelma vaarantuu: luo uusi salasana (osio 4), päivitä config.json-tiedosto, käynnistä palvelu uudelleen ja luo asiakasohjelmalinkki uudelleen (osio 7) jokaiselle jäljellä olevalle laitteelle.
Jos yhteys ei toimi, tarkista asiat järjestyksessä:
- palvelun tila (systemctl status ssserver --no-pager tai shadowsocks-libev) ja loki (journalctl -u ssserver -n 50 --no-pager)
- palomuurisäännöt (ufw-tila – portin on oltava avoinna sekä TCP:lle että UDP:lle)
- että portti ei ole jo sidottu toisen palvelun toimesta (ss -lntp | grep ':8388' pitäisi näyttää vain ssserver/ss-server)
- että asiakkaan salasana, metodi ja portti vastaavat täysin config.json-tiedostoa — yksittäinen epäsuhtainen merkki epäonnistuu kättelyssä huomaamattomasti, yleensä yhteyden aikakatkaisuna eikä eksplisiittisenä virheenä
- Palvelimella tilaksi asetetaan tcp_and_udp, jos asiakas tarvitsee UDP:tä (DNS-over-proxy, jotkin pelit/sovellukset) eikä vain tcp_onlya.
Vertaillaanko Shadowsocksia muihin vaihtoehtoihin? Katso Xray VLESS Reality Guide -oppaasta TLS-naamiointipohjainen protokollasuositus, jota on vaikeampi tunnistaa voimakkaasti suodatetussa verkossa. WireGuard-pohjaisia vaihtoehtoja varten katso AmneziaWG Server Deployment Guide ja How to set up Wireguard VPN on your server -opas , tai Hysteria2 and TUIC setup -oppaasta kaksi protokollaa häviöllisille tai voimakkaasti suodatetuille verkoille. Jos tarvitset vain yksinkertaisen välityspalvelimen täyden tunnelointiasennuksen sijaan, 3proxy-kokoonpano CentOS/ArchLinuxissa on paljon kevyempi vaihtoehto, ja vanhempi VPN-palvelinasennus Linuxissa: PPTP vai OpenVPN? kattaa protokollat, jotka on yksinkertaisempi asentaa, mutta DPI:n on paljon helpompi havaita ja estää. Yleistä palvelimen suojauksen vahvistamisesta välityspalvelimen ollessa käytössä on artikkelissa Linux-käyttäjät: hallinta ja käyttöoikeudet.