Shadowsocks - bu oddiy tarmoqlarda trafikni shakllantirish va bloklashni chetlab o'tish uchun mo'ljallangan yengil, SOCKS5 asosidagi shifrlangan proksi protokoli. To'liq VPNdan farqli o'laroq, u faqat ilova aniq yuboradigan trafikni proksi qiladi, protokol bo'yicha deyarli hech qanday qo'shimcha xarajatlarga ega emas va hatto cheklangan ulanishlarda ham yaxshi ishlaydi. U VLESS+Reality kabi haqiqiy TLS qo'l siqishini taqlid qilishga urinmaydi - uning kuchli tomoni shundaki, u soddaligi, keng mijozlarni qo'llab-quvvatlashi (routerlar, telefonlar, brauzerlar) va juda past kechikish bilan birga, qattiq tekshirilgan tarmoqda trafik naqshini aniqlash biroz osonroq bo'ladi.
Faol ravishda qo'llab-quvvatlanadigan ikkita server implementatsiyasi mavjud:
- shadowsocks-rust — shadowsocks tashkilotining Rust tilida yozilgan zamonaviy ma'lumotnoma implementatsiyasi. U yangi AEAD-2022 shifrlar oilasini qo'llab-quvvatlaydi, faol ravishda ishlab chiqilgan va ushbu qo'llanma batafsil o'rnatadigan va sozlaydigan implementatsiya hisoblanadi.
- shadowsocks-libev — eski C implementatsiyasi. U hali ham xatolarni tuzatish uchun saqlanadi, o'zining systemd birliklari bilan tayyor apt paketi sifatida yetkazib beriladi va agar siz qo'lda ikkilik fayllarni qayta ishlashsiz eng oddiy o'rnatishni xohlasangiz, yaxshi tanlovdir. Ushbu qo'llanma uni 3-bo'limda muqobil o'rnatish yo'li sifatida ko'rib chiqadi.
Ushbu qo'llanmada serverni buyruq satri orqali qo'lda qanday sozlash tasvirlangan — veb-panel yoki Docker-dan foydalanmasdan. "IP-manzil" maydoni paydo bo'lgan joyda uni VPS-ning haqiqiy IP-manzili bilan almashtiring.
Sizga kerak bo'ladigan narsalar: Ubuntu 22.04/24.04 yoki Debian 11/12 ishlaydigan VPS, root kirish huquqi, VPS IP-manzili va bepul UDP/TCP porti (ushbu qo'llanmada Shadowsocks standart sozlamalari bo'lgan 8388 ishlatiladi).
Hali serveringiz yo'qmi? Serverga qanday buyurtma berish va uning uchun to'lovni amalga oshirish bo'limiga qarang.
Avval buni boshqa o'z-o'zini boshqarish variantlari bilan taqqoslaysizmi? TLS-kamuflyajga asoslangan alternativa uchun Xray VLESS Reality Guide , WireGuard-ga asoslangan variant uchun AmneziaWG Serverni joylashtirish qo'llanmasi yoki boshqa ikkita zamonaviy proksi protokollari uchun Hysteria2 va TUIC sozlamalariga qarang.
Serverga ulanish
Windows (PuTTY)
PuTTY-ni oching, Xost nomi maydoniga VPS IP-manzilingizni kiriting, portni 22 ga o'rnating va VPS provayderingiz sizga elektron pochta orqali yuborgan paroldan foydalanib root sifatida tizimga kiring.
Server IP-manzili: sizning IP-manzilingiz
sifatida kirish: root
Parol: sizning parolingiz
PuTTY/SSH orqali ulanish haqida batafsil ma'lumot olish uchun SSH orqali Linux serveriga qanday ulanish mumkin-ga qarang.
Linux / macOS (terminal)
ssh root@your_IP_address
Quyidagi barcha buyruqlar serverda, xuddi shu SSH sessiyasida bajariladi — bu 2 dan 7 gacha bo'limlarni, shuningdek, 13-bo'limdagi server tomonidagi tekshiruvlarni qamrab oladi. 8–12-bo'limlar (mijoz ilovalarini o'rnatish va sozlash) sizning Windows/macOS/Linux/Android/iOS qurilmangizda amalga oshiriladi, chunki proksi-server aynan shu qurilmada ishlashi kerak; ushbu bo'limlarning har birida qaysi satrlar, agar mavjud bo'lsa, serverga tegib turishi aniq ko'rsatilgan.
Serverni tayyorlash
Tizimni yangilang
Biror narsani o'rnatishdan oldin, paketlar ro'yxatini yangilang va o'rnatilgan paketlarni yangilang:
apt update -y && apt upgrade -y
Agar bu yadroni yangilasa, davom etishdan oldin qayta ishga tushirish yaxshi fikr. (APT va Linux paket menejerlari qanday ishlashi haqida ma'lumot olish uchun Linux paket menejerlariga qarang .) Quyidagilar bilan tekshiring:
cat /var/run/reboot-required
Agar fayl mavjud bo'lsa, avval 'reboot' buyrug'i bilan qayta ishga tushiring, ~30 soniya kuting va keyin qayta ulang.
Ushbu qo'llanmada ishlatiladigan vositalarni o'rnating
apt install -y curl wget tar xz-utils ufw qrencode
curl/wget va tar/xz-utils shadowsocks-rust relizlar arxivini olish va ochish uchun kerak; ufw quyida sozlangan xavfsizlik devori; qrencode 7-bo'limda tayyor mijoz havolasini skanerlanadigan QR kodiga aylantiradi.
Xavfsizlik devorini (UFW) sozlash
UFW qoidalari haqida ko'proq ma'lumot olish uchun Linuxda xavfsizlik devorini sozlash bo'limiga qarang.
Sizga kerak bo'lgan ikkita portni oching: SSH uchun 22/tcp (ushbu qoidani o'tkazib yuboring, shunda serverga kirishni yo'qotish xavfi tug'iladi) va 8388, ham tcp, ham udp — Shadowsocks ham TCP ulanishlarini, ham UDP ulanishlarini proksi qiladi (DNS va ba'zi o'yinlar/ilovalar uchun foydali), shuning uchun portning ikkala yo'nalishi ham ochiq bo'lishi kerak.
ufw allow 22/tcp
ufw allow 8388/tcp
ufw allow 8388/udp
ufw --force enable
ufw status
Uchala qoida ham ufw holati chiqishida ALLOW sifatida ko'rsatilishi kerak. Agar keyinchalik config.json faylidagi portni o'zgartirsangiz, ushbu qoidalarni mos keladigan qilib yangilang.
Server dasturini o'rnatish
Quyidagi ikkita variantdan birini tanlang. A varianti (shadowsocks-rust) tavsiya etiladi: bu faol ishlab chiqilgan amalga oshirish bo'lib, ushbu qo'llanmada keyinroq ishlatilgan zamonaviy AEAD-2022 shifrlarini qo'llab-quvvatlaydi. Agar siz tayyor systemd bloki bilan oddiy apt paketidan foydalanishni afzal ko'rsangiz va AEAD-2022 ga ehtiyoj sezmasangiz, B varianti (shadowsocks-libev) yaxshi tanlovdir.
A variant — shadowsocks-rust (tavsiya etiladi)
Shadowsocks-rust joriy versiyalar bilan apt paketini jo'natmaydi, shuning uchun u loyihaning GitHub versiyalaridan oldindan tuzilgan statik ikkilik faylni yuklab olish orqali o'rnatiladi. GitHub API'sidan eng so'nggi versiya yorlig'ini oling va mos keladigan Linux x86_64 arxivini yuklab oling:
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"
Agar VPS faylingiz x86_64 o'rniga arm64 bo'lsa (`uname -m` bilan belgilang), yuqoridagi fayl nomidagi x86_64-unknown-linux-gnu ni aarch64-unknown-linux-gnu bilan almashtiring.
Arxivni chiqarib oling va ikkilik fayllarni butun tizim bo'ylab o'rnating:
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
Ikkilik faylning joyida ekanligini va o'rnatilgan versiyasini tekshiring:
ssserver --version
Konfiguratsiya fayli joylashgan katalogni yarating:
mkdir -p /etc/shadowsocks-rust
Ushbu qo'llanma o'rnatuvchi skriptini bash ga yuklash o'rniga, belgilangan versiyani o'rnatadi. Keyinroq yangilash uchun yuqoridagi ikkita buyruqni yangi SS_VER qidiruvi bilan qayta ishga tushiring, xizmatni to'xtating, ikkilik faylni almashtiring va uni qayta ishga tushiring (6-bo'lim).
B varianti — shadowsocks-libev (muqobil, mos paket)
Shadowsocks-libev Ubuntu'ning koinot omborida (Ubuntu 16.10+) va Debian'ning asosiy omborida (Debian 8+) mavjud, shuning uchun 22.04/24.04 yoki Debian 11/12 da uchinchi tomon PPA kerak emas:
apt install -y shadowsocks-libev
Agar apt paket topilmaganligini bildirsa, koinot ombori o'chirilgan; uni yoqing va qayta urinib ko'ring:
add-apt-repository universe && apt update && apt install -y shadowsocks-libev
Paket o'zining systemd birliklarini o'rnatadi (standart konfiguratsiya uchun shadowsocks-libev.service, shuningdek, har bir misol uchun nomlangan konfiguratsiyalar uchun [email protected] ) va /etc/shadowsocks-libev/config.json faylini avtomatik ravishda yaratadi — 4–6-bo'limlarda rust buyruqlari bilan bir qatorda libevga xos buyruqlar va fayl yo'llari ham qayd etilgan. Ushbu qo'llanmaning qolgan mijoz bo'limlari (7–13) har ikkala serverni amalga oshirishga ham bir xil qo'llaniladi, chunki ikkalasi ham simda bir xil Shadowsocks/SIP002 protokolini gapiradi.
Parol yaratish va shifrni tanlash
Shadowsocks autentifikatsiyasi - bu bitta umumiy parol va ikkala tomon ham kelishib olishi kerak bo'lgan shifr (shifrlash usuli) - boshqarish uchun alohida UUID, kalit juftligi yoki sertifikat yo'q.
Shifr oilalari
- AEAD-2022 (tavsiya etiladi, faqat shadowsocks-rust uchun): 2022-blake3-aes-128-gcm, 2022-blake3-aes-256-gcm, 2022-blake3-chacha20-poly1305. Kuchliroq qayta ijro etish himoyasi va bitta portdan foydalanadigan bir nechta foydalanuvchilar uchun qo'llab-quvvatlanadigan yangi dizayn (SIP022). Parol shifrning kalit uzunligiga to'liq mos keladigan base64 qatori bo'lishi kerak (128 bitli variantlar uchun 16 bayt, 256 bitli variant uchun 32 bayt).
- Klassik AEAD (rust va libev tomonidan qo'llab-quvvatlanadi): aes-256-gcm, aes-128-gcm, chacha20-ietf-poly1305. Eski mijozlar va shadowsocks-libev bilan keng mos keladi; parol istalgan parol bo'lishi mumkin, chunki u to'g'ridan-to'g'ri kalit material sifatida ishlatilmasdan, kalitni chiqarish funktsiyasi orqali beriladi.
Ushbu qo'llanmada shadowsocks-rust serveri uchun 2022-blake3-aes-256-gcm ishlatiladi, chunki u eng kuchli va eng zamonaviy variant bo'lib, keyinroq tavsiya etilgan har bir mijoz (v2rayN, v2rayNG, Shadowrocket, Streisand, ShadowsocksX-NG) uni qo'llab-quvvatlaydi. Agar siz 3-bo'limda shadowsocks-libev ni o'rnatgan bo'lsangiz, buning o'rniga chacha20-ietf-poly1305 yoki aes-256-gcm dan foydalaning, chunki libev AEAD-2022 ni amalga oshirmaydi.
Kalit yaratish (shadowsocks-rust)
ssservice genkey -m "2022-blake3-aes-256-gcm"
Bu base64 satrini chop etadi — bu sizning parolingiz. Uni xavfsiz joyga nusxalang; uni 5-bo'limdagi server konfiguratsiyasiga va 7-bo'limdagi mijoz havolasiga joylashtirasiz.
Parolni tanlang (shadowsocks-libev)
shadowsocks-libev tomonidan ishlatiladigan klassik AEAD shifrlari uchun har qanday yetarlicha uzun tasodifiy satr ishlaydi, chunki u xom kalit sifatida ishlatilmasdan, PBKDF/HKDF orqali ishga tushiriladi. Quyidagi bilan bittasini yarating:
openssl rand -base64 32
Server konfiguratsiyasini yozish
Soya paypoqlari-zang
Tahrirlash uchun konfiguratsiya faylini oching:
nano /etc/shadowsocks-rust/config.json
Quyidagi shablonni 4-bo'limdagi o'z parolingiz (va agar uni 8388 dan o'zgartirgan bo'lsangiz, 2-bo'limdagi port) bilan almashtiring:
{
"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
}
Faylni saqlash uchun Ctrl+O (WriteOut) tugmalarini, fayl nomini tasdiqlash uchun Enter tugmalarini, so'ngra nano'dan chiqish uchun Ctrl+X tugmalarini bosing.
Muhim maydonlar: server barcha interfeyslarda tinglaydi (0.0.0.0); server_port - 2-bo'limda ochilgan port; parol/metod - 4-bo'limdan olingan hisob ma'lumotlari va shifr; rejim TCP va UDP relaylarini yoqadi; timeout - bu bo'sh ulanish vaqtining soniyalarda tugashi; nofile band serverlar uchun fayl tavsiflovchisi chegarasini oshiradi.
JSON faylini va ikkilik fayl uni systemd ga ulashdan oldin qabul qilishini tasdiqlang:
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 blokini yarating (shadowsocks-rust)
Ikkilik versiya tizim blokini jo'natmaydi, shuning uchun uni yarating:
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
Yuqoridagi kabi saqlang va chiqing, so'ngra systemdga yangi blok faylini olishni ayting:
systemctl daemon-reload
Shadowsocks-libev
apt paketi allaqachon /etc/shadowsocks-libev/config.json faylini standart (faqat loopback, tasodifiy parol) konfiguratsiyasi va o'zining systemd bloki bilan yaratgan. Uni tahrirlash uchun oching:
nano /etc/shadowsocks-libev/config.json
Tarkibni quyidagilar bilan almashtiring:
{
"server":"0.0.0.0",
"server_port":8388,
"password":"YOUR-PASSPHRASE-HERE",
"method":"chacha20-ietf-poly1305",
"mode":"tcp_and_udp",
"timeout":300
}
Standart konfiguratsiya server: ["::1", "127.0.0.1"] dan foydalanadi (faqat loopback); uni "0.0.0.0" ga o'zgartirish serverga umumiy IP-manzildan kirish imkonini beradi — agar siz yuqoridagi shablon o'rniga stok faylini nusxalagan bo'lsangiz, buni o'tkazib yubormang.
Xizmatni ishga tushirish va avtomatik ishga tushirishni yoqish
Soya paypoqlari-zang
systemctl enable --now ssserver
systemctl status ssserver --no-pager
Holat faol (ishlayotgan) ko'rinishi kerak. Portda (ikkala protokolda) biror narsa haqiqatan ham tinglanayotganini tasdiqlang:
ss -lntp | grep ':8388'
ss -lunp | grep ':8388'
Agar xizmat ishga tushmasa, nima uchun ekanligini bilishning eng tezkor usuli bu systemd jurnalidir (umuman Linux jurnallarini o'qish haqida ma'lumot olish uchun Linux jurnallarini qanday o'qish va uni qaerdan topish mumkinligiga qarang ):
journalctl -u ssserver -n 50 --no-pager
Shadowsocks-libev
systemctl restart shadowsocks-libev
systemctl enable shadowsocks-libev
systemctl status shadowsocks-libev --no-pager
Port va jurnallarni shadowsocks-rust bilan bir xil tarzda tekshiring, xizmat nomini o'rniga qo'ying:
ss -lntp | grep ':8388'
ss -lunp | grep ':8388'
journalctl -u shadowsocks-libev -n 50 --no-pager
Mijoz bilan bog'lanish havolasini yaratish
Shadowsocks mijozlari konfiguratsiya fayli o'rniga bitta ss:// ulashish havolasini (SIP002 URL formati) import qiladi. Havola URLning foydalanuvchi ma'lumotlari qismida shifr va parolni base64 sifatida kodlaydi:
ss://base64(method:password)@your_IP_address:port#label
Serverda base64 qismini yarating (bu qo'lda kodlashda xatolarga yo'l qo'ymaydi):
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"
Misol chiqishi (joy ushlagichi kaliti bilan):
ss://MjAyMi1ibGFrZTMtYWVzLTI1Ni1nY206eHl6X2V4YW1wbGVfa2V5X2hlcmU=@your_IP_address:8388#My-SS-Server
# dan keyingi matn shunchaki istalgan mijozda erkin nomini o'zgartirishingiz mumkin bo'lgan displey yorlig'i. shadowsocks-libev serveri uchun METHOD="chacha20-ietf-poly1305" (yoki aes-256-gcm) va uning 4-bo'limdagi parolini almashtiring.
Mobil mijozlar uni to'g'ridan-to'g'ri skanerlashi uchun uni QR kodiga aylantiring:
qrencode -o ~/ss-client.png "ss://${USERINFO}@your_IP_address:8388#My-SS-Server"
PNG faylini scp yordamida o'z kompyuteringizga nusxalang, serverdan emas, balki kompyuteringiz terminalidan (yoki Windowsdagi PowerShell) ishga tushiring:
scp root@your_IP_address:~/ss-client.png .
Windows'dan ulanish
Ushbu bo'limdagi hamma narsa SSH orqali emas, balki Windows kompyuteringizda sodir bo'ladi — mijoz proksi-serverdan foydalanadigan qurilmada ishlashi kerak.
v2rayN ni o'rnating
v2rayN - bu VLESS, VMess, Trojan va boshqalar bilan bir qatorda Shadowsocks qo'llab-quvvatlashiga ega bo'lgan bepul, faol ravishda qo'llab-quvvatlanadigan GUI mijozidir. Eng so'nggi versiyani loyiha sahifasidan yuklab oling.
Windows 64-bitli .zip aktivini oling (so'nggi v2rayN versiyalarida mustaqil tuzilish alohida .NET ish vaqtiga muhtoj emas), uni istalgan joydan chiqarib oling va v2rayN.exe faylini ishga tushiring.
Serverni import qiling
7-bo'limda o'rnatilgan ss:// havolasini clipboardga nusxalang (yoki QR PNG faylini scp bilan nusxalang va oching), so'ngra v2rayN da Servers → Import buffer from clipboard ni tanlang (yoki o'rnatilgan skaner orqali QR kodini skanerlang). Yangi server profili ro'yxatda # dan keyin o'rnatgan yorliq bilan paydo bo'ladi.
Profilni o'ng tugmasini bosing va uni faol deb tanlang, so'ngra asosiy oynaning asboblar panelidan tizim proksi-serverini (yoki butun mashinani yo'naltirish uchun TUN rejimini) yoqing.
macOS dan ulanish
Ushbu bo'limdagi hamma narsa SSH orqali emas, balki Mac kompyuteringizda sodir bo'ladi.
ShadowsocksX-NG ni o'rnating
ShadowsocksX-NG - Shadowsocks uchun uzoq vaqtdan beri ishlab kelayotgan mahalliy macOS GUI mijozi; hozirgi versiya Intel bilan bir qatorda mahalliy Apple Silicon versiyasini ham taqdim etadi. Eng so'nggi .dmg faylini versiyalar sahifasidan yuklab oling.
.dmg faylini oching va ShadowsocksX-NG faylini Ilovalar bo'limiga sudrab boring, so'ngra uni ishga tushiring — u menyu satrida belgi sifatida paydo bo'ladi.
Serverni import qiling
7-bo'limdan ss:// havolasini clipboardga nusxalang, so'ngra menyu paneli belgisini → Serverlar → Server sozlamalari → pastki chapdagi + ni bosing va "Pasteboarddan import qilish" ni tanlang (yoki PNG faylini ochgandan so'ng QR kodini "Ekrandagi QR kodini skanerlash" bilan skanerlang). Menyu paneli ochiladigan menyusidan yangi profilni tanlang, so'ngra "Shadowsocks: On" ni yoqing va xuddi shu menyudan "PAC Auto" yoki "Global" marshrutizatsiya rejimini tanlang.
Linux ish stolidan ulanish
Ushbu bo'limdagi hamma narsa VPSda emas, balki sizning Linux kompyuteringizda sodir bo'ladi.
Mahalliy mijozni o'rnating
Agar siz 3-bo'limda serverga shadowsocks-rust o'rnatgan bo'lsangiz, xuddi shu versiya arxivida SOCKS5/HTTP mahalliy proksi-klienti bo'lgan sslocal mavjud. Uni server ikkilik fayli bilan bir xil tarzda yuklab oling va o'rnating (agar u x86_64-unknown-linux-gnu bo'lmasa, ish stolingiz uchun OS/arch qo'shimchasini sozlang):
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/
Sozlang va ishga tushiring
127.0.0.1:1080 da SOCKS5 proksi-serveri sifatida tinglash uchun kichik mahalliy konfiguratsiya yarating:
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
Brauzeringiz yoki tizim tarmoq sozlamalarini 127.0.0.1:1080 da joylashgan SOCKS5 proksi-serveriga yo'naltiring. GUI uchun Nekoray yoki ShadowsocksX-Qt5 uslubidagi vilkalari 7-bo'limdan bir xil ss:// havolasini import qilishi va sslocal-ni qo'lda ishga tushirish o'rniga boshqarishi mumkin.
Android’dan ulanish
Bu yerdagi hamma narsa SSH orqali emas, balki Android qurilmangizda sodir bo'ladi.
Mijozni o'rnating
Ikki yaxshi variant:
- Android uchun Shadowsocks — shadowsocks tashkilotining rasmiy mijozi. Uni Google Play’dan o‘rnating (“Shadowsocks” deb qidiring) yoki agar Play sizning qurilmangizda mavjud bo‘lmasa, APK’ni to‘g‘ridan-to‘g‘ri loyihaning relizlar sahifasidan yuklab oling. Mintaqa.
- v2rayNG — v2rayN ning Android analogi, Shadowsocks ni VLESS/VMess/Trojan bilan bir qatorda qo'llab-quvvatlaydi; agar sizga bir nechta protokollar uchun bitta ilova kerak bo'lsa, foydalidir. turlari.
Serverni import qiling
Ikkala ilovada ham: + tugmasini bosing, 7-bo'limdan ss:// havolasini nusxalagandan so'ng "Buferdan import qilish" ni yoki "QR kodini skanerlash" ni tanlang va kamerani PNG ga yo'naltiring. Import qilingan profilni tanlash uchun bosing, so'ngra ulanish tugmasini bosing. Android birinchi marta VPN ruxsatini so'raydi - tunnelni o'rnatish uchun uni tasdiqlang.
iOS’dan ulanmoqda
Bu yerdagi hamma narsa SSH orqali emas, balki iPhone yoki iPad-da sodir bo'ladi.
Shadowsocks-ga mos keladigan mijozni o'rnating
Shadowrocket - Shadowsocks qo'llab-quvvatlashiga ega eng ko'p ishlatiladigan iOS mijozi; bu ko'pgina do'konlarda pullik ilova. Uni App Store'da qidiring yoki oching.
Streisand - bu Shadowsocks-ni VLESS, Trojan va boshqa protokollar bilan bir qatorda qo'llab-quvvatlaydigan bepul, ochiq kodli alternativa.
App Store kataloglari vitrina/mintaqaga qarab farq qiladi va vaqt o'tishi bilan o'zgarishi mumkin; agar sizning katalogingizda ikkalasi ham ko'rinmasa, App Store'da "Shadowsocks" yoki "V2Box" ni qidiring.
Serverni import qiling
ss:// havolasini clipboardga nusxalang, mijozni oching va uning Clipboarddan qo'shish/import qilish opsiyasidan foydalaning yoki mijozning o'rnatilgan skaneri yordamida 7-bo'limdagi QR kodini skanerlang. Yangi profilni yoqing; iOS birinchi marta VPN konfiguratsiyasi uchun ruxsat so'raydi, buni siz Face ID, Touch ID yoki parolingiz orqali tasdiqlashingiz kerak bo'ladi.
Ulanishni tekshirish
Tunnel 8, 9, 10, 11 yoki 12-bo'limlardan faollashtirilgan holda, o'z qurilmangizga qayting (SSH sessiyasiga emas) va brauzerda "mening IP manzilim nima" tekshiruvchisini oching — ko'rsatilgan manzil VPS IP manzilingizga, ya'ni your_IP_addressingizga mos kelishi kerak.
Server tomonidan tekshirish uchun ulanish faolligi uchun systemd jurnalini tekshiring va portda o'rnatilgan sessiyalarni tasdiqlang (rust jurnali uchun ssserver yoki libev jurnali uchun shadowsocks-libev dan foydalaning):
journalctl -u ssserver -n 50 --no-pager
ss -tnp | grep ':8388'
Reference:
|
dala |
qiymati |
|
Manzil |
VPS’ingizning umumiy IP-manzili |
|
port |
8388 (xuddi shu port 2-bo'limda ochilgan) |
|
Parol |
4-bo'limda yaratilgan kalit/parol iborasi |
|
usul |
2022-blake3-aes-256-gcm (rust) yoki chacha20-ietf-poly1305 (libev) — ikkala tomon ham bir-biriga mos kelishi kerak |
|
moda |
tcp_and_udp — TCP proksi-serverini va UDP relayini (DNS, ba'zi o'yinlar) yoqadi |
|
plagin |
ushbu qo'llanmada hech biri ishlatilmagan — Shadowsocks ishlashi uchun SNI, sertifikat yoki transport plaginiga ehtiyoj yo'q |
Xulosa
Ushbu qo'llanmani bajarish VPS-ingizni o'zining Shadowsocks serverini - zamonaviy AEAD-2022 shifriga ega shadowsocks-rust yoki Ubuntu/Debian-ning o'z omboridan shadowsocks-libev - - hech qanday harakatsiz qayta ishga tushirilgandan so'ng omon qoladigan systemd xizmati sifatida ishga tushiradi.
Ko'proq foydalanuvchilar qo'shish:
- Eng oddiy: ikkinchi parolni yarating (4-bo'lim) va o'zining konfiguratsiya fayli va systemd bloki bilan boshqa portda ikkinchi ssserver/shadowsocks-libev nusxasini ishga tushiring, so'ngra ushbu port uchun 5–7-bo'limlarni takrorlang.
- AEAD-2022 shifriga ega shadowsocks-rust shuningdek, config.json (Extensible Identity Headers, SIP022) dagi "foydalanuvchilar" massivi orqali bitta port va parolni olish kalitini ulashadigan bir nechta foydalanuvchilarni qo'llab-quvvatlaydi — agar sizga bitta portda har bir foydalanuvchi uchun trafikni hisobga olish kerak bo'lsa, aniq sintaksis uchun shadowsocks-rust README ning Konfiguratsiya bo'limiga qarang.
Server ishlayotganda bir nechta odatlarga rioya qilish kerak:
- Serverni yangilab turing. shadowsocks-rust uchun vaqti-vaqti bilan 3-bo'limdan yuklab olish va o'rnatish bosqichlarini yangi versiyani qidirish bilan qayta ishga tushiring, so'ngra systemctl sserverni qayta ishga tushiring. shadowsocks-libev uchun oddiy apt yangilanishi uni qoplaydi.
- config.json faylini serverdan tashqarida maxfiy joyda zaxiralang. U har bir mijozning parolini saqlaydi; uni yo'qotish har bir qurilma uchun hisob ma'lumotlarini qayta tiklashni anglatadi.
- Agar qurilma yo'qolsa yoki mijozga kirish imkoni bo'lmasa, parolni aylantiring: yangisini yarating (4-bo'lim), config.json faylini yangilang, xizmatni qayta ishga tushiring va qolgan har bir qurilma uchun mijoz havolasini qayta yarating (7-bo'lim).
Agar ulanish o'rnatilmasa, tartibni tekshiring:
- xizmat holati (systemctl status ssserver --no-pager yoki shadowsocks-libev) va jurnal (journalctl -u ssserver -n 50 --no-pager)
- xavfsizlik devori qoidalari (ufw holati — port tcp va udp uchun ham ochiq bo'lishi kerak)
- port allaqachon boshqa xizmat bilan bog'lanmagan (ss -lntp | grep ':8388' faqat ssserver/ss-serverni ko'rsatishi kerak)
- mijozdagi parol, usul va port config.json bilan aniq mos keladi — bitta mos kelmaydigan belgi qo'l siqishda jimgina muvaffaqiyatsizlikka uchraydi, odatda aniq xato emas, balki ulanish vaqti tugashi sifatida ko'rsatiladi.
- Agar mijozga faqat tcp_only emas, balki UDP (proksi-server orqali DNS, ba'zi o'yinlar/ilovalar) kerak bo'lsa, serverda ushbu rejim tcp_and_udp ga o'rnatiladi.
Shadowsocks ni boshqa variantlar bilan taqqoslaysizmi? Kuchli filtrlangan tarmoqda barmoq izini aniqlash qiyinroq bo'lgan TLS-kamuflyajga asoslangan protokol uchun Xray VLESS Reality Guide , WireGuard asosidagi alternativalar uchun AmneziaWG Serverni joylashtirish qo'llanmasi va serveringizda Wireguard VPN ni qanday sozlash yoki yo'qotishli yoki kuchli filtrlangan tarmoqlar uchun yaratilgan ikkita protokol uchun Hysteria2 va TUIC sozlamalariga qarang . Agar sizga to'liq tunnel sozlamalari o'rniga oddiy proksi kerak bo'lsa, CentOS/ArchLinux-dagi 3proxy konfiguratsiyasi ancha yengilroq alternativa hisoblanadi va Linux-dagi eski VPN server sozlamalari: PPTP yoki OpenVPN? sozlash osonroq, ammo DPI aniqlash va bloklash uchun ancha osonroq bo'lgan protokollarni qamrab oladi. Proksi ishga tushgandan so'ng serverni umumiy mustahkamlash uchun Linux foydalanuvchilari: boshqaruv va ruxsatnomalar bo'limiga qarang.