షాడోసాక్స్ అనేది ఒక తేలికపాటి, SOCKS5-ఆధారిత ఎన్క్రిప్టెడ్ ప్రాక్సీ ప్రోటోకాల్. ఇది వాస్తవానికి సాధారణ నెట్వర్క్లలో ట్రాఫిక్-షేపింగ్ మరియు బ్లాకింగ్ను అధిగమించడానికి రూపొందించబడింది. పూర్తి VPN వలె కాకుండా, ఇది ఒక అప్లికేషన్ స్పష్టంగా పంపే ట్రాఫిక్ను మాత్రమే ప్రాక్సీ చేస్తుంది, దీనికి దాదాపు ప్రోటోకాల్ ఓవర్హెడ్ ఉండదు, మరియు పరిమిత కనెక్షన్లపై కూడా బాగా పనిచేస్తుంది. VLESS+రియాలిటీ చేసే విధంగా ఇది నిజమైన TLS హ్యాండ్షేక్ను అనుకరించడానికి ప్రయత్నించదు — దీని బలం సరళత, విస్తృత క్లయింట్ మద్దతు (రౌటర్లు, ఫోన్లు, బ్రౌజర్లు), మరియు చాలా తక్కువ లేటెన్సీ. అయితే, నిశితంగా తనిఖీ చేయబడిన నెట్వర్క్లో ట్రాఫిక్ సరళి ద్వారా దీనిని గుర్తించడం కొంత సులభం.
ప్రస్తుతం చురుకుగా నిర్వహించబడుతున్న రెండు సర్వర్ అమలులు ఉన్నాయి:
- shadowsocks-rust — ఇది shadowsocks సంస్థ నుండి వచ్చిన ఆధునిక రిఫరెన్స్ ఇంప్లిమెంటేషన్, దీనిని రస్ట్లో వ్రాసారు. ఇది కొత్త AEAD-2022 సైఫర్ ఫ్యామిలీకి మద్దతు ఇస్తుంది, దీనిని చురుకుగా అభివృద్ధి చేస్తున్నారు, మరియు ఈ గైడ్ వివరంగా ఇన్స్టాల్ చేసి, కాన్ఫిగర్ చేసే ఇంప్లిమెంటేషన్ ఇదే.
- shadowsocks-libev — ఇది పాత C ఇంప్లిమెంటేషన్. బగ్ ఫిక్స్ల కోసం దీనిని ఇప్పటికీ మెయింటెయిన్ చేస్తున్నారు, ఇది దాని స్వంత systemd యూనిట్లతో రెడీమేడ్ apt ప్యాకేజీగా వస్తుంది, మరియు మీరు ఎలాంటి మాన్యువల్ బైనరీ హ్యాండ్లింగ్ లేకుండా అత్యంత సులభమైన ఇన్స్టాల్ కోరుకుంటే ఇది ఒక మంచి ఎంపిక. ఈ గైడ్ సెక్షన్ 3లో దీనిని ఒక ప్రత్యామ్నాయ ఇన్స్టాలేషన్ మార్గంగా వివరిస్తుంది.
ఈ గైడ్, వెబ్ ప్యానెల్ లేదా డాకర్ను ఉపయోగించకుండా—కమాండ్ లైన్ ద్వారా సర్వర్ను మాన్యువల్గా ఎలా కాన్ఫిగర్ చేయాలో వివరిస్తుంది. "IP అడ్రస్" ఫీల్డ్ ఎక్కడ కనిపించినా, దాని స్థానంలో మీ VPS యొక్క అసలైన IP అడ్రస్ను నమోదు చేయండి.
మీకు కావలసినవి: ఉబుంటు 22.04/24.04 లేదా డెబియన్ 11/12 నడుస్తున్న ఒక VPS, రూట్ యాక్సెస్, మీ VPS యొక్క IP చిరునామా, మరియు ఒక ఖాళీ UDP/TCP పోర్ట్ (ఈ గైడ్ షాడోసాక్స్ డిఫాల్ట్ అయిన 8388ని ఉపయోగిస్తుంది).
మీకు ఇంకా సర్వర్ లేదా? సర్వర్ను ఎలా ఆర్డర్ చేయాలో మరియు దానికి ఎలా చెల్లించాలో చూడండి.
ముందుగా దీనిని ఇతర సెల్ఫ్-హోస్టెడ్ ఎంపికలతో పోల్చి చూస్తున్నారా? TLS-కామోఫ్లేజ్ ఆధారిత ప్రత్యామ్నాయం కోసం Xray VLESS రియాలిటీ గైడ్ , WireGuard ఆధారిత ఎంపిక కోసం AmneziaWG సర్వర్ డిప్లాయ్మెంట్ గైడ్ , లేదా మరో రెండు ఆధునిక ప్రాక్సీ ప్రోటోకాల్ల కోసం Hysteria2 మరియు TUIC సెటప్ను చూడండి.
సర్వర్కు కనెక్ట్ అవుతోంది
విండోస్ (పుట్టి)
PuTTYని తెరిచి, హోస్ట్ నేమ్ ఫీల్డ్లో మీ VPS IP చిరునామాను నమోదు చేసి, పోర్ట్ను 22కి సెట్ చేసి, మీ VPS ప్రొవైడర్ మీకు ఇమెయిల్ చేసిన పాస్వర్డ్ను ఉపయోగించి రూట్గా లాగిన్ అవ్వండి.
సర్వర్ IP చిరునామా: మీ IP చిరునామా
రూట్గా లాగిన్ అవ్వండి
పాస్వర్డ్: మీ పాస్వర్డ్
PuTTY/SSH ద్వారా కనెక్ట్ అయ్యే విధానం గురించి వివరంగా తెలుసుకోవాలంటే, SSH ద్వారా Linux సర్వర్కు ఎలా కనెక్ట్ అవ్వాలి అనేదాన్ని చూడండి.
లినక్స్ / మాక్ఓఎస్ (టెర్మినల్)
ssh root@your_IP_address
కింద ఉన్న అన్ని ఆదేశాలు సర్వర్లో, ఇదే SSH సెషన్లో అమలు చేయబడతాయి — ఇది సెక్షన్ 2 నుండి 7 వరకు, అలాగే సెక్షన్ 13లోని సర్వర్-సైడ్ తనిఖీలను కవర్ చేస్తుంది. సెక్షన్లు 8–12 (క్లయింట్ యాప్లను ఇన్స్టాల్ చేయడం మరియు కాన్ఫిగర్ చేయడం) బదులుగా మీ స్వంత Windows/macOS/Linux/Android/iOS పరికరంలో జరుగుతాయి, ఎందుకంటే ప్రాక్సీ ఆ పరికరంలోనే రన్ అవ్వాలి; ఆ సెక్షన్లలో ప్రతి ఒక్కటి, ఏవైనా లైన్లు ఇంకా సర్వర్ను తాకితే, వాటిని స్పష్టంగా పేర్కొంటుంది.
సర్వర్ను సిద్ధం చేస్తోంది
వ్యవస్థను నవీకరించండి
ఏదైనా ఇన్స్టాల్ చేసే ముందు, ప్యాకేజీ జాబితాను రిఫ్రెష్ చేసి, ఇప్పటికే ఇన్స్టాల్ చేసిన ప్యాకేజీలను అప్గ్రేడ్ చేయండి:
apt update -y && apt upgrade -y
ఇది కెర్నల్ను అప్గ్రేడ్ చేస్తే, కొనసాగించే ముందు రీబూట్ చేయడం మంచిది. (apt మరియు Linux ప్యాకేజీ మేనేజర్లు ఎలా పనిచేస్తాయో గుర్తుచేసుకోవడానికి, Linux ప్యాకేజీ మేనేజర్లను చూడండి .) దీనితో తనిఖీ చేయండి:
cat /var/run/reboot-required
ఫైల్ ఉంటే, ముందుగా 'reboot'తో రీబూట్ చేసి, సుమారు 30 సెకన్లు ఆగి, ఆపై తిరిగి కనెక్ట్ చేయండి.
ఈ గైడ్ ఉపయోగించే సాధనాలను ఇన్స్టాల్ చేయండి
apt install -y curl wget tar xz-utils ufw qrencode
shadowsocks-rust విడుదల ఆర్కైవ్ను పొందడానికి మరియు అన్ప్యాక్ చేయడానికి curl/wget మరియు tar/xz-utils అవసరం; ufw అనేది క్రింద కాన్ఫిగర్ చేయబడిన ఫైర్వాల్; qrencode 7వ విభాగంలో పూర్తయిన క్లయింట్ లింక్ను స్కాన్ చేయదగిన QR కోడ్గా మారుస్తుంది.
ఫైర్వాల్ (UFW) ను కాన్ఫిగర్ చేయండి
UFW నియమాల గురించి మరింత సమాచారం కోసం, Linuxలో ఫైర్వాల్ను కాన్ఫిగర్ చేయడం చూడండి.
మీకు అవసరమైన రెండు పోర్ట్లను తెరవండి: SSH కోసం 22/tcp (ఈ నియమాన్ని దాటవేస్తే మీరు సర్వర్కు యాక్సెస్ కోల్పోయే ప్రమాదం ఉంది) మరియు 8388, tcp మరియు udp రెండూ — Shadowsocks TCP కనెక్షన్లు మరియు UDP అసోసియేషన్లు (DNS మరియు కొన్ని గేమ్లు/యాప్లకు ఉపయోగపడతాయి) రెండింటినీ ప్రాక్సీ చేస్తుంది, కాబట్టి పోర్ట్ యొక్క రెండు దిశలూ తెరిచి ఉండాలి.
ufw allow 22/tcp
ufw allow 8388/tcp
ufw allow 8388/udp
ufw --force enable
ufw status
ufw స్టేటస్ అవుట్పుట్లో మూడు నియమాలూ ALLOW అని చూపించాలి. మీరు తర్వాత config.jsonలో పోర్ట్ను మార్చినట్లయితే, దానికి సరిపోయేలా ఈ నియమాలను అప్డేట్ చేయండి.
సర్వర్ సాఫ్ట్వేర్ను ఇన్స్టాల్ చేయడం
క్రింద ఉన్న రెండు ఎంపికలలో ఒకదాన్ని ఎంచుకోండి. ఎంపిక A (shadowsocks-rust) సిఫార్సు చేయబడింది: ఇది చురుకుగా అభివృద్ధి చేయబడుతున్న ఇంప్లిమెంటేషన్ మరియు ఈ గైడ్లో తర్వాత ఉపయోగించే ఆధునిక AEAD-2022 సైఫర్లకు మద్దతు ఇస్తుంది. ఒకవేళ మీరు రెడీమేడ్ systemd యూనిట్తో కూడిన సాధారణ apt ప్యాకేజీని ఉపయోగించాలనుకుంటే మరియు మీకు AEAD-2022 అవసరం లేకపోతే, ఎంపిక B (shadowsocks-libev) ఒక మంచి ఎంపిక.
ఆప్షన్ A — షాడోసాక్స్-రస్ట్ (సిఫార్సు చేయబడింది)
Shadowsocks-rust ప్రస్తుత విడుదలలతో apt ప్యాకేజీని అందించదు, కాబట్టి ప్రాజెక్ట్ యొక్క GitHub విడుదలల నుండి ముందుగా నిర్మించిన స్టాటిక్ బైనరీని డౌన్లోడ్ చేయడం ద్వారా దీనిని ఇన్స్టాల్ చేయాలి. GitHub API నుండి తాజా విడుదల ట్యాగ్ను పొందండి మరియు దానికి సరిపోయే 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"
మీ VPS x86_64 కు బదులుగా arm64 అయితే (`uname -m` తో తనిఖీ చేయండి), పైన ఉన్న ఫైల్ పేరులో x86_64-unknown-linux-gnu ను aarch64-unknown-linux-gnu తో భర్తీ చేయండి.
ఆర్కైవ్ను సంగ్రహించి, బైనరీలను సిస్టమ్ అంతటా ఇన్స్టాల్ చేయండి:
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
బైనరీ సరిగ్గా ఉందో లేదో ధృవీకరించుకుని, ఇన్స్టాల్ చేసిన వెర్షన్ను తనిఖీ చేయండి:
ssserver --version
కాన్ఫిగరేషన్ ఫైల్ ఉండే డైరెక్టరీని సృష్టించండి:
mkdir -p /etc/shadowsocks-rust
ఈ గైడ్ బాష్లోకి ఇన్స్టాలర్ స్క్రిప్ట్ను పైప్ చేయడానికి బదులుగా, ఒక స్థిరమైన వెర్షన్ను ఇన్స్టాల్ చేస్తుంది. తర్వాత అప్గ్రేడ్ చేయడానికి, కొత్త SS_VER లుకప్తో పైన ఉన్న రెండు కమాండ్లను మళ్లీ రన్ చేయండి, సర్వీస్ను ఆపండి, బైనరీని రీప్లేస్ చేసి, దాన్ని పునఃప్రారంభించండి (సెక్షన్ 6).
ఆప్షన్ బి — shadowsocks-libev (ప్రత్యామ్నాయం, apt ప్యాకేజీ)
Shadowsocks-libev అనేది ఉబుంటు యూనివర్స్ రిపోజిటరీ (ఉబుంటు 16.10+) మరియు డెబియన్ మెయిన్ రిపోజిటరీ (డెబియన్ 8+) లలో చేర్చబడింది, కాబట్టి 22.04/24.04 లేదా డెబియన్ 11/12 లలో ఏ థర్డ్-పార్టీ PPA అవసరం లేదు:
apt install -y shadowsocks-libev
ప్యాకేజీ కనుగొనబడలేదని apt నివేదిస్తే, యూనివర్స్ రిపోజిటరీ నిలిపివేయబడింది; దానిని ప్రారంభించి, మళ్లీ ప్రయత్నించండి:
add-apt-repository universe && apt update && apt install -y shadowsocks-libev
ఈ ప్యాకేజీ దాని స్వంత systemd యూనిట్లను (డిఫాల్ట్ కాన్ఫిగ్ కోసం shadowsocks-libev.service, మరియు ప్రతి-ఇన్స్టాన్స్ కాన్ఫిగ్ల కోసం `[email protected]` ) ఇన్స్టాల్ చేస్తుంది మరియు /etc/shadowsocks-libev/config.json ఫైల్ను ఆటోమేటిక్గా సృష్టిస్తుంది — సెక్షన్లు 4–6, రస్ట్ కమాండ్లు మరియు ఫైల్ పాత్లతో పాటు libev-కు ప్రత్యేకమైన కమాండ్లు మరియు ఫైల్ పాత్లను కూడా గమనిస్తాయి. ఈ గైడ్లోని మిగిలిన క్లయింట్ సెక్షన్లు (7–13) రెండు సర్వర్ ఇంప్లిమెంటేషన్లకు ఒకే విధంగా వర్తిస్తాయి, ఎందుకంటే రెండూ వైర్పై ఒకే Shadowsocks/SIP002 ప్రోటోకాల్ను ఉపయోగిస్తాయి.
పాస్వర్డ్ను రూపొందించడం మరియు సైఫర్ను ఎంచుకోవడం
షాడోసాక్స్ ప్రామాణీకరణ అనేది ఒకే ఉమ్మడి పాస్వర్డ్ మరియు ఇరుపక్షాలు తప్పనిసరిగా అంగీకరించాల్సిన ఒక సైఫర్ (ఎన్క్రిప్షన్ పద్ధతి)పై ఆధారపడి ఉంటుంది — నిర్వహించడానికి ప్రత్యేకమైన UUID, కీ పెయిర్ లేదా సర్టిఫికేట్ ఏదీ ఉండదు.
సైఫర్ కుటుంబాలు
- AEAD-2022 (సిఫార్సు చేయబడింది, shadowsocks-rust మాత్రమే): 2022-blake3-aes-128-gcm, 2022-blake3-aes-256-gcm, 2022-blake3-chacha20-poly1305. బలమైన రీప్లే రక్షణ మరియు ఒకే పోర్ట్ను పంచుకునే బహుళ వినియోగదారులకు మద్దతుతో కూడిన కొత్త డిజైన్ (SIP022). పాస్వర్డ్ కచ్చితంగా సైఫర్ కీ పొడవు (128-బిట్ వేరియంట్లకు 16 బైట్లు, 256-బిట్ వేరియంట్కు 32 బైట్లు) ఉన్న బేస్64 స్ట్రింగ్ అయి ఉండాలి.
- క్లాసిక్ AEAD (రస్ట్ మరియు లిబెవ్ రెండింటిచే మద్దతు ఇవ్వబడింది): aes-256-gcm, aes-128-gcm, chacha20-ietf-poly1305. పాత క్లయింట్లతో మరియు shadowsocks-libev తో విస్తృతంగా అనుకూలమైనది; పాస్వర్డ్ ఏదైనా పాస్ఫ్రేజ్ కావచ్చు, ఎందుకంటే ఇది నేరుగా కీ మెటీరియల్గా ఉపయోగించబడకుండా, కీ-డెరివేషన్ ఫంక్షన్ ద్వారా అందించబడుతుంది.
ఈ గైడ్ shadowsocks-rust సర్వర్ కోసం 2022-blake3-aes-256-gcm ను ఉపయోగిస్తుంది, ఎందుకంటే ఇది అత్యంత శక్తివంతమైన మరియు తాజా ఎంపిక, మరియు దీని తర్వాత సిఫార్సు చేయబడిన ప్రతి క్లయింట్ (v2rayN, v2rayNG, Shadowrocket, Streisand, ShadowsocksX-NG) దీనికి మద్దతు ఇస్తుంది. మీరు సెక్షన్ 3లో shadowsocks-libev ను ఇన్స్టాల్ చేసి ఉంటే, దానికి బదులుగా chacha20-ietf-poly1305 లేదా aes-256-gcm ను ఉపయోగించండి, ఎందుకంటే libev AEAD-2022 ను అమలు చేయదు.
ఒక కీని సృష్టించండి (shadowsocks-rust)
ssservice genkey -m "2022-blake3-aes-256-gcm"
ఇది ఒక బేస్64 స్ట్రింగ్ను ప్రింట్ చేస్తుంది — అదే మీ పాస్వర్డ్. దానిని సురక్షితమైన చోట కాపీ చేసుకోండి; మీరు దానిని సెక్షన్ 5లోని సర్వర్ కాన్ఫిగరేషన్లోనూ మరియు సెక్షన్ 7లోని క్లయింట్ లింక్లోనూ పేస్ట్ చేయాలి.
పాస్ఫ్రేజ్ను ఎంచుకోండి (shadowsocks-libev)
shadowsocks-libev ఉపయోగించే క్లాసిక్ AEAD సైఫర్ల కోసం, తగినంత పొడవైన ఏదైనా యాదృచ్ఛిక స్ట్రింగ్ పనిచేస్తుంది, ఎందుకంటే ఇది రా కీగా ఉపయోగించబడకుండా PBKDF/HKDF ద్వారా నడపబడుతుంది. దీనితో ఒకదాన్ని రూపొందించండి:
openssl rand -base64 32
సర్వర్ కాన్ఫిగరేషన్ను వ్రాయడం
షాడోసాక్స్-రస్ట్
సవరించడం కోసం కాన్ఫిగరేషన్ ఫైల్ను తెరవండి:
nano /etc/shadowsocks-rust/config.json
సెక్షన్ 4 నుండి మీ స్వంత పాస్వర్డ్ను (మరియు మీరు దానిని 8388 నుండి మార్చినట్లయితే, సెక్షన్ 2 నుండి పోర్ట్ను) ప్రతిక్షేపించి, దిగువ టెంప్లేట్లో అతికించండి:
{
"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
}
ఫైల్ను సేవ్ చేయడానికి Ctrl+O (WriteOut) నొక్కండి, ఫైల్ పేరును నిర్ధారించడానికి Enter నొక్కండి, ఆపై nano నుండి నిష్క్రమించడానికి Ctrl+X నొక్కండి.
ముఖ్యమైన ఫీల్డ్లు: సర్వర్ అన్ని ఇంటర్ఫేస్లలో (0.0.0.0) వింటుంది; server_port అనేది విభాగం 2లో తెరిచిన పోర్ట్; password/method అనేవి విభాగం 4 నుండి వచ్చిన ఆధారాలు మరియు సైఫర్; mode TCP మరియు UDP రిలేయింగ్ రెండింటినీ ఎనేబుల్ చేస్తుంది; timeout అనేది సెకన్లలో నిష్క్రియ-కనెక్షన్ టైమ్అవుట్; nofile బిజీగా ఉన్న సర్వర్ల కోసం ఫైల్-డిస్క్రిప్టర్ పరిమితిని పెంచుతుంది.
JSONను ధృవీకరించి, బైనరీ దానిని అంగీకరిస్తుందని నిర్ధారించుకున్న తర్వాతే దానిని 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"
systemd యూనిట్ను (shadowsocks-rust) సృష్టించండి
బైనరీ విడుదలలో systemd యూనిట్ ఉండదు, కాబట్టి దాన్ని సృష్టించండి:
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
పైన చెప్పిన విధంగా సేవ్ చేసి నిష్క్రమించండి, ఆ తర్వాత కొత్త యూనిట్ ఫైల్ను స్వీకరించమని systemdకి చెప్పండి:
systemctl daemon-reload
షాడోసాక్స్-లిబేవ్
apt ప్యాకేజీ ఇప్పటికే డిఫాల్ట్ (లూప్బ్యాక్-మాత్రమే, యాదృచ్ఛిక పాస్వర్డ్) కాన్ఫిగరేషన్ మరియు దాని స్వంత systemd యూనిట్తో /etc/shadowsocks-libev/config.json ఫైల్ను సృష్టించింది. సవరించడానికి దాన్ని తెరవండి:
nano /etc/shadowsocks-libev/config.json
కంటెంట్ను దీనితో భర్తీ చేయండి:
{
"server":"0.0.0.0",
"server_port":8388,
"password":"YOUR-PASSPHRASE-HERE",
"method":"chacha20-ietf-poly1305",
"mode":"tcp_and_udp",
"timeout":300
}
డిఫాల్ట్ కాన్ఫిగ్ సర్వర్: ["::1", "127.0.0.1"] (లూప్బ్యాక్ మాత్రమే) ఉపయోగిస్తుంది; దీనిని "0.0.0.0" కు మార్చడం ద్వారానే సర్వర్ పబ్లిక్ IP నుండి అందుబాటులోకి వస్తుంది — మీరు పైన ఉన్న టెంప్లేట్కు బదులుగా స్టాక్ ఫైల్ను కాపీ చేసినట్లయితే దీనిని దాటవేయవద్దు.
సర్వీస్ను ప్రారంభించడం మరియు ఆటోస్టార్ట్ను ఎనేబుల్ చేయడం
షాడోసాక్స్-రస్ట్
systemctl enable --now ssserver
systemctl status ssserver --no-pager
స్టేటస్ యాక్టివ్ (రన్నింగ్) అని చూపించాలి. పోర్ట్పై (రెండు ప్రోటోకాల్స్) ఏదైనా నిజంగా వింటుందో లేదో నిర్ధారించుకోండి:
ss -lntp | grep ':8388'
ss -lunp | grep ':8388'
సర్వీస్ ప్రారంభం కాకపోతే, కారణాన్ని తెలుసుకోవడానికి అత్యంత వేగవంతమైన మార్గం systemd జర్నల్ (సాధారణంగా లైనక్స్ లాగ్లను చదవడం గురించిన నేపథ్యం కోసం, లైనక్స్ లాగ్లను ఎలా చదవాలి మరియు దానిని ఎక్కడ కనుగొనాలి అనేదాన్ని చూడండి ):
journalctl -u ssserver -n 50 --no-pager
షాడోసాక్స్-లిబేవ్
systemctl restart shadowsocks-libev
systemctl enable shadowsocks-libev
systemctl status shadowsocks-libev --no-pager
shadowsocks-rust కోసం చేసినట్లే, సర్వీస్ పేరును మార్చి, పోర్ట్ మరియు లాగ్లను తనిఖీ చేయండి:
ss -lntp | grep ':8388'
ss -lunp | grep ':8388'
journalctl -u shadowsocks-libev -n 50 --no-pager
క్లయింట్ కనెక్షన్ లింక్ను నిర్మించడం
Shadowsocks క్లయింట్లు కాన్ఫిగ్ ఫైల్కు బదులుగా ఒకే ss:// షేర్ లింక్ను (SIP002 URL ఫార్మాట్) దిగుమతి చేసుకుంటాయి. ఈ లింక్, URLలోని యూజర్ఇన్ఫో భాగంలో సైఫర్ మరియు పాస్వర్డ్ను బేస్64 రూపంలో ఎన్కోడ్ చేస్తుంది:
ss://base64(method:password)@your_IP_address:port#label
సర్వర్లో బేస్64 భాగాన్ని నిర్మించండి (ఇది చేతితో ఎన్కోడింగ్ చేయడం వల్ల వచ్చే అక్షరదోషాలను నివారిస్తుంది):
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"
ఉదాహరణ అవుట్పుట్ (ప్లేస్హోల్డర్ కీతో):
ss://MjAyMi1ibGFrZTMtYWVzLTI1Ni1nY206eHl6X2V4YW1wbGVfa2V5X2hlcmU=@your_IP_address:8388#My-SS-Server
# తర్వాత ఉన్న టెక్స్ట్ కేవలం ఒక డిస్ప్లే లేబుల్, దీనిని మీరు ఏ క్లయింట్లోనైనా స్వేచ్ఛగా పేరు మార్చుకోవచ్చు. shadowsocks-libev సర్వర్ కోసం, దానికి బదులుగా METHOD="chacha20-ietf-poly1305" (లేదా aes-256-gcm) మరియు సెక్షన్ 4 నుండి దాని పాస్ఫ్రేజ్ను ప్రత్యామ్నాయంగా వాడండి.
మొబైల్ క్లయింట్లు నేరుగా స్కాన్ చేసుకునేలా దీనిని QR కోడ్గా మార్చండి:
qrencode -o ~/ss-client.png "ss://${USERINFO}@your_IP_address:8388#My-SS-Server"
సర్వర్ నుండి కాకుండా, మీ కంప్యూటర్ టెర్మినల్ (లేదా విండోస్లో పవర్షెల్) నుండి scp కమాండ్ను ఉపయోగించి PNG ఫైల్ను మీ సొంత కంప్యూటర్కు కాపీ చేయండి:
scp root@your_IP_address:~/ss-client.png .
విండోస్ నుండి కనెక్ట్ అవుతోంది
ఈ విభాగంలోని ప్రతిదీ మీ విండోస్ PC లోనే జరుగుతుంది, SSH ద్వారా కాదు — ప్రాక్సీని వాస్తవంగా ఉపయోగించే పరికరంలోనే క్లయింట్ రన్ అవ్వాలి.
v2rayNను ఇన్స్టాల్ చేయండి
v2rayN అనేది VLESS, VMess, Trojan మరియు ఇతర వాటితో పాటు నేటివ్ Shadowsocks మద్దతు ఉన్న, నిరంతరం నిర్వహించబడుతున్న ఒక ఉచిత GUI క్లయింట్. ప్రాజెక్ట్ పేజీ నుండి తాజా విడుదలను డౌన్లోడ్ చేసుకోండి.
Windows 64-bit .zip అసెట్ను డౌన్లోడ్ చేసుకోండి (ఇటీవలి v2rayN వెర్షన్ల ప్రకారం, సెల్ఫ్-కంటైన్డ్ బిల్డ్కు ప్రత్యేక .NET రన్టైమ్ అవసరం లేదు), దానిని ఎక్కడైనా ఎక్స్ట్రాక్ట్ చేసి, v2rayN.exeను రన్ చేయండి.
సర్వర్ను దిగుమతి చేసుకోండి
సెక్షన్ 7లో అంతర్నిర్మితంగా ఉన్న ss:// లింక్ను మీ క్లిప్బోర్డ్కు కాపీ చేయండి (లేదా scp ఉపయోగించి QR PNGని కాపీ చేసి తెరవండి), ఆ తర్వాత v2rayNలో సర్వర్స్ → క్లిప్బోర్డ్ నుండి బల్క్ URLను ఇంపోర్ట్ చేయి (లేదా అంతర్నిర్మిత స్కానర్ ద్వారా QR కోడ్ను స్కాన్ చేయి) ఎంచుకోండి. # తర్వాత మీరు సెట్ చేసిన లేబుల్తో కొత్త సర్వర్ ప్రొఫైల్ జాబితాలో కనిపిస్తుంది.
ప్రొఫైల్పై రైట్-క్లిక్ చేసి, దానిని యాక్టివ్గా ఎంచుకోండి, ఆపై ప్రధాన విండో యొక్క టూల్బార్ నుండి సిస్టమ్ ప్రాక్సీని (లేదా మొత్తం మెషీన్ను రూట్ చేయడానికి TUN మోడ్ను) ఎనేబుల్ చేయండి.
macOS నుండి కనెక్ట్ అవుతోంది
ఈ విభాగంలోని ప్రతిదీ మీ Mac లోనే జరుగుతుంది, SSH ద్వారా కాదు.
ShadowsocksX-NGని ఇన్స్టాల్ చేయండి
ShadowsocksX-NG అనేది Shadowsocks కోసం చాలా కాలంగా వాడుకలో ఉన్న నేటివ్ macOS GUI క్లయింట్; ప్రస్తుత విడుదల శ్రేణి ఇంటెల్తో పాటు నేటివ్ ఆపిల్ సిలికాన్ బిల్డ్ను కూడా అందిస్తుంది. విడుదలల పేజీ నుండి తాజా .dmg ఫైల్ను డౌన్లోడ్ చేసుకోండి.
.dmg ఫైల్ను తెరిచి, ShadowsocksX-NGని Applicationsలోకి డ్రాగ్ చేసి, ఆపై దాన్ని లాంచ్ చేయండి — అది మెనూ బార్లో ఒక ఐకాన్గా కనిపిస్తుంది.
సర్వర్ను దిగుమతి చేసుకోండి
సెక్షన్ 7 నుండి ss:// లింక్ను మీ క్లిప్బోర్డ్కు కాపీ చేయండి, ఆపై మెనూ-బార్ ఐకాన్ → సర్వర్లు → సర్వర్ ప్రాధాన్యతలు → దిగువ-ఎడమ వైపున ఉన్న + పై క్లిక్ చేసి, "పేస్ట్బోర్డ్ నుండి దిగుమతి చేయి" (Import From Pasteboard)ని ఎంచుకోండి (లేదా PNGని తెరిచిన తర్వాత "స్క్రీన్ నుండి QR కోడ్ను స్కాన్ చేయి" (Scan QR Code From Screen)తో QR కోడ్ను స్కాన్ చేయండి). మెనూ-బార్ డ్రాప్డౌన్ నుండి కొత్త ప్రొఫైల్ను ఎంచుకోండి, ఆపై "షాడోసాక్స్: ఆన్" (Shadowsocks: On)ని టోగుల్ చేసి, అదే మెనూ నుండి "PAC ఆటో" (PAC Auto) లేదా "గ్లోబల్" (Global) రూటింగ్ మోడ్ను ఎంచుకోండి.
Linux డెస్క్టాప్ నుండి కనెక్ట్ అవుతోంది
ఈ విభాగంలోని ప్రతిదీ మీ స్వంత లినక్స్ మెషీన్లో జరుగుతుంది, VPSలో కాదు.
స్థానిక క్లయింట్ను ఇన్స్టాల్ చేయండి
మీరు విభాగం 3లో సర్వర్లో shadowsocks-rustను ఇన్స్టాల్ చేసి ఉంటే, అదే విడుదల ఆర్కైవ్లో SOCKS5/HTTP లోకల్ ప్రాక్సీ క్లయింట్ అయిన sslocal ఉంటుంది. సర్వర్ బైనరీని డౌన్లోడ్ చేసి ఇన్స్టాల్ చేసినట్లే దీన్ని కూడా డౌన్లోడ్ చేసి ఇన్స్టాల్ చేయండి (మీ డెస్క్టాప్ x86_64-unknown-linux-gnu కాకపోతే, దాని కోసం OS/arch సఫిక్స్ను సర్దుబాటు చేయండి):
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/
కాన్ఫిగర్ చేసి రన్ చేయండి
127.0.0.1:1080 వద్ద 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
మీ బ్రౌజర్ లేదా సిస్టమ్ నెట్వర్క్ సెట్టింగ్లను 127.0.0.1:1080 వద్ద ఉన్న SOCKS5 ప్రాక్సీకి మళ్లించండి. GUI కోసం, Nekoray లేదా ShadowsocksX-Qt5-శైలి ఫోర్క్లు విభాగం 7 నుండి అదే ss:// లింక్ను దిగుమతి చేసుకోగలవు మరియు దానిని చేతితో అమలు చేయడానికి బదులుగా మీ కోసం sslocalను నిర్వహించగలవు.
ఆండ్రాయిడ్ నుండి కనెక్ట్ అవుతోంది
ఇక్కడ జరిగేదంతా మీ ఆండ్రాయిడ్ పరికరంలోనే జరుగుతుంది, SSH ద్వారా కాదు.
క్లయింట్ను ఇన్స్టాల్ చేయండి
రెండు మంచి ఎంపికలు:
- ఆండ్రాయిడ్ కోసం షాడోసాక్స్ — షాడోసాక్స్ సంస్థ నుండి వచ్చిన అధికారిక క్లయింట్. దీన్ని గూగుల్ ప్లే నుండి ఇన్స్టాల్ చేసుకోండి ("Shadowsocks" అని వెతకండి), లేదా మీ ప్రాంతంలో ప్లే అందుబాటులో లేకపోతే, ప్రాజెక్ట్ యొక్క విడుదలల పేజీ నుండి నేరుగా APKని డౌన్లోడ్ చేసుకోండి. ప్రాంతం.
- v2rayNG — ఇది v2rayN యొక్క ఆండ్రాయిడ్ వెర్షన్, ఇది VLESS/VMess/Trojan తో పాటు Shadowsocks కు కూడా మద్దతు ఇస్తుంది; మీరు బహుళ ప్రోటోకాల్ల కోసం ఒకే యాప్ను కోరుకుంటే ఇది ఉపయోగపడుతుంది. రకాల.
సర్వర్ను దిగుమతి చేసుకోండి
రెండు యాప్లలో దేనిలోనైనా: + బటన్ను నొక్కి, విభాగం 7 నుండి ss:// లింక్ను కాపీ చేసిన తర్వాత "క్లిప్బోర్డ్ నుండి దిగుమతి చేయి"ని ఎంచుకోండి, లేదా "QR కోడ్ను స్కాన్ చేయి" అని ఎంచుకుని, కెమెరాను PNG ఫైల్ వైపు చూపించండి. దిగుమతి చేసుకున్న ప్రొఫైల్ను ఎంచుకోవడానికి దానిపై నొక్కి, ఆపై కనెక్ట్ బటన్ను నొక్కండి. మొదటిసారి ఆండ్రాయిడ్ VPN అనుమతి కోసం అడుగుతుంది — టన్నెల్ను ఏర్పాటు చేయడానికి దానిని ఆమోదించండి.
iOS నుండి కనెక్ట్ అవుతోంది
ఇక్కడ జరిగేదంతా మీ ఐఫోన్ లేదా ఐప్యాడ్లోనే జరుగుతుంది, SSH ద్వారా కాదు.
Shadowsocks సామర్థ్యం గల క్లయింట్ను ఇన్స్టాల్ చేయండి
షాడోరాకెట్ అనేది షాడోసాక్స్ సపోర్ట్తో అత్యంత విస్తృతంగా ఉపయోగించబడే iOS క్లయింట్; ఇది చాలా స్టోర్లలో చెల్లింపు యాప్గా లభిస్తుంది. యాప్ స్టోర్లో దీని కోసం వెతకండి లేదా తెరవండి.
స్ట్రైసాండ్ అనేది ఒక ఉచిత, ఓపెన్-సోర్స్ ప్రత్యామ్నాయం, ఇది VLESS, ట్రోజన్ మరియు ఇతర ప్రోటోకాల్లతో పాటు షాడోసాక్స్కు కూడా మద్దతు ఇస్తుంది.
యాప్ స్టోర్ కేటలాగ్లు స్టోర్ఫ్రంట్/ప్రాంతాన్ని బట్టి మారుతూ ఉంటాయి మరియు కాలక్రమేణా మారవచ్చు; మీ కేటలాగ్లో ఈ రెండూ కనిపించకపోతే, యాప్ స్టోర్లో "Shadowsocks" లేదా "V2Box" అని వెతకండి.
సర్వర్ను దిగుమతి చేసుకోండి
ss:// లింక్ను మీ క్లిప్బోర్డ్కు కాపీ చేసి, క్లయింట్ను తెరిచి, దాని 'క్లిప్బోర్డ్ నుండి జోడించు/దిగుమతి చేయి' (Add/Import from clipboard) ఎంపికను ఉపయోగించండి, లేదా క్లయింట్ యొక్క అంతర్నిర్మిత స్కానర్తో విభాగం 7లోని QR కోడ్ను స్కాన్ చేయండి. కొత్త ప్రొఫైల్ను ఆన్ చేయండి; iOS మొదటిసారి VPN-కాన్ఫిగరేషన్ అనుమతి కోసం అడుగుతుంది, దీనిని మీరు ఫేస్ ఐడి, టచ్ ఐడి, లేదా మీ పాస్కోడ్ ద్వారా ఆమోదించాల్సి ఉంటుంది.
కనెక్షన్ను ధృవీకరించడం
సెక్షన్ 8, 9, 10, 11, లేదా 12 నుండి టన్నెల్ యాక్టివ్గా ఉన్నప్పుడు, మీ స్వంత పరికరానికి (SSH సెషన్కు కాదు) తిరిగి వెళ్లి, బ్రౌజర్లో ఏదైనా "వాట్స్ మై IP" చెకర్ను తెరవండి — చూపబడిన చిరునామా మీ VPS యొక్క IP చిరునామా, your_IP_addressతో సరిపోలాలి.
దీనికి బదులుగా సర్వర్ వైపు నుండి ధృవీకరించడానికి, కనెక్షన్ యాక్టివిటీ కోసం systemd జర్నల్ను తనిఖీ చేయండి మరియు పోర్ట్పై స్థాపించబడిన సెషన్లను నిర్ధారించండి (రస్ట్ జర్నల్ కోసం ssserver లేదా libev జర్నల్ కోసం shadowsocks-libev ఉపయోగించండి):
journalctl -u ssserver -n 50 --no-pager
ss -tnp | grep ':8388'
సూచన:
|
ఫీల్డ్ |
విలువ |
|
చిరునామా |
మీ VPS యొక్క పబ్లిక్ IP చిరునామా |
|
పోర్ట్ |
8388 (సెక్షన్ 2లో తెరిచిన అదే పోర్ట్) |
|
పాస్వర్డ్ |
సెక్షన్ 4లో రూపొందించబడిన కీ/పాస్ఫ్రేజ్ |
|
విధానం |
2022-blake3-aes-256-gcm (rust) లేదా chacha20-ietf-poly1305 (libev) — రెండు వైపులా ఖచ్చితంగా సరిపోలాలి |
|
మోడ్ |
tcp_and_udp — ఇది TCP ప్రాక్సీయింగ్ మరియు UDP రిలే (DNS, కొన్ని గేమ్లు) రెండింటినీ ఎనేబుల్ చేస్తుంది. |
|
అనుసంధానించు |
ఈ గైడ్లో ఏవీ ఉపయోగించబడలేదు — Shadowsocks పనిచేయడానికి SNI, సర్టిఫికేట్ లేదా ట్రాన్స్పోర్ట్ ప్లగిన్ అవసరం లేదు |
ముగింపు
ఈ గైడ్ను అనుసరించడం ద్వారా, మీ VPS దాని స్వంత షాడోసాక్స్ సర్వర్ను — ఆధునిక AEAD-2022 సైఫర్తో కూడిన షాడోసాక్స్-రస్ట్ లేదా ఉబుంటు/డెబియన్ యొక్క సొంత రిపోజిటరీ నుండి షాడోసాక్స్-లిబెవ్ — ఒక సిస్టమ్డి సేవగా నడుపుతూ ఉంటుంది, ఇది మీరు ఎలాంటి చర్య తీసుకోకుండానే రీబూట్ తర్వాత కూడా కొనసాగుతుంది.
మరింత మంది వినియోగదారులను జోడించడం:
- అత్యంత సులభమైనది: రెండవ పాస్వర్డ్ను రూపొందించండి (విభాగం 4) మరియు దాని స్వంత కాన్ఫిగ్ ఫైల్ మరియు systemd యూనిట్తో వేరొక పోర్ట్లో రెండవ ssserver/shadowsocks-libev ఇన్స్టాన్స్ను రన్ చేయండి, ఆపై ఆ పోర్ట్ కోసం విభాగం 5–7ని పునరావృతం చేయండి.
- AEAD-2022 సైఫర్తో కూడిన shadowsocks-rust, config.jsonలోని "users" అర్రే (Extensible Identity Headers, SIP022) ద్వారా ఒకే పోర్ట్ మరియు పాస్వర్డ్-డెరివేషన్ కీని పంచుకునే బహుళ వినియోగదారులకు కూడా మద్దతు ఇస్తుంది — మీకు ఒకే పోర్ట్పై ప్రతి-వినియోగదారు ట్రాఫిక్ అకౌంటింగ్ అవసరమైతే, ఖచ్చితమైన సింటాక్స్ కోసం shadowsocks-rust READMEలోని కాన్ఫిగరేషన్ విభాగాన్ని చూడండి.
సర్వర్ పనిచేయడం మొదలయ్యాక పాటించాల్సిన కొన్ని అలవాట్లు:
- సర్వర్ను అప్డేట్గా ఉంచండి. shadowsocks-rust కోసం, సెక్షన్ 3లోని డౌన్లోడ్-ఇన్స్టాల్ దశలను ఎప్పటికప్పుడు కొత్త వెర్షన్ చూసి మళ్లీ అమలు చేయండి, ఆపై `systemctl restart ssserver` చేయండి. shadowsocks-libev కోసం, సాధారణ `apt upgrade` సరిపోతుంది.
- config.json ఫైల్ను సర్వర్కు దూరంగా, సురక్షితమైన చోట బ్యాకప్ చేసుకోండి. అందులో ప్రతి క్లయింట్ పాస్వర్డ్ ఉంటుంది; దాన్ని కోల్పోతే ప్రతి డివైజ్కు క్రెడెన్షియల్స్ను మళ్లీ జనరేట్ చేయాల్సి వస్తుంది.
- పరికరం పోయినట్లయితే లేదా క్లయింట్ రాజీపడినట్లయితే పాస్వర్డ్ను మార్చండి: కొత్తదాన్ని రూపొందించండి (విభాగం 4), config.jsonను నవీకరించండి, సేవను పునఃప్రారంభించండి మరియు మిగిలిన ప్రతి పరికరం కోసం క్లయింట్ లింక్ను పునర్నిర్మించండి (విభాగం 7).
కనెక్షన్ రాకపోతే, ఈ క్రమంలో తనిఖీ చేయండి:
- సేవ స్థితి (systemctl status ssserver --no-pager, లేదా shadowsocks-libev) మరియు జర్నల్ (journalctl -u ssserver -n 50 --no-pager)
- ఫైర్వాల్ నియమాలు (ufw status — పోర్ట్ తప్పనిసరిగా tcp మరియు udp రెండింటికీ తెరిచి ఉండాలి)
- ఆ పోర్ట్ ఇప్పటికే మరో సర్వీస్ ద్వారా బైండ్ చేయబడలేదని (ss -lntp | grep ':8388' కేవలం ssserver/ss-server ను మాత్రమే చూపించాలి)
- క్లయింట్లోని పాస్వర్డ్, మెథడ్ మరియు పోర్ట్ config.jsonతో ఖచ్చితంగా సరిపోలాలి — ఒక్క అక్షరం సరిపోలకపోయినా హ్యాండ్షేక్ నిశ్శబ్దంగా విఫలమవుతుంది, ఇది సాధారణంగా స్పష్టమైన లోపంగా కాకుండా కనెక్షన్ టైమ్అవుట్గా కనిపిస్తుంది.
- క్లయింట్కు కేవలం tcp_only మాత్రమే కాకుండా UDP (DNS-over-proxy, కొన్ని గేమ్లు/యాప్లు) కూడా అవసరమైతే, సర్వర్లో ఆ మోడ్ tcp_and_udp కి సెట్ చేయబడుతుంది.
Shadowsocksను ఇతర ఎంపికలతో పోలుస్తున్నారా? అధికంగా ఫిల్టర్ చేయబడిన నెట్వర్క్లో ఫింగర్ప్రింట్ చేయడం కష్టతరమైన TLS-కామోఫ్లేజ్-ఆధారిత ప్రోటోకాల్ కోసం Xray VLESS రియాలిటీ గైడ్ , WireGuard-ఆధారిత ప్రత్యామ్నాయాల కోసం AmneziaWG సర్వర్ డిప్లాయ్మెంట్ గైడ్ మరియు మీ సర్వర్లో Wireguard VPNను ఎలా సెటప్ చేయాలి , లేదా నష్టభరితమైన లేదా అధికంగా ఫిల్టర్ చేయబడిన నెట్వర్క్ల కోసం నిర్మించిన రెండు ప్రోటోకాల్ల కోసం Hysteria2 మరియు TUIC సెటప్ను చూడండి . మీకు పూర్తి టన్నెలింగ్ సెటప్ కాకుండా కేవలం ఒక సాధారణ ప్రాక్సీ మాత్రమే అవసరమైతే, CentOS/ArchLinuxలో 3proxy కాన్ఫిగరేషన్ చాలా తేలికైన ప్రత్యామ్నాయం, మరియు Linuxలో పాత VPN సర్వర్ సెటప్: PPTP లేదా OpenVPN? అనేది సెటప్ చేయడానికి సులభమైన కానీ DPI గుర్తించి బ్లాక్ చేయడానికి చాలా తేలికైన ప్రోటోకాల్లను వివరిస్తుంది. ప్రాక్సీ లైవ్లోకి వచ్చిన తర్వాత సాధారణ సర్వర్ హార్డనింగ్ కోసం, Linux వినియోగదారులు: నిర్వహణ మరియు అనుమతులు చూడండి.