Знания Прости инструкции за работа с услугата Profitserver
основен Знания Ръководство за Shadowsocks (shadowsocks-rust / shadowsocks-libev): VPS, Windows, macOS, Linux, Android, iPhone

Ръководство за Shadowsocks (shadowsocks-rust / shadowsocks-libev): VPS, Windows, macOS, Linux, Android, iPhone


Shadowsocks е лек, SOCKS5-базиран криптиран прокси протокол, първоначално проектиран да заобикаля оформянето и блокирането на трафика в обикновени мрежи. За разлика от пълноценната VPN, тя проксира само трафика, който приложението изрично изпраща към нея, почти няма протоколно натоварване и работи добре дори при ограничени връзки. Не се опитва да имитира истинско TLS ръкостискане по начина, по който го прави VLESS+Reality — силата ѝ е простотата, широката поддръжка на клиенти (рутери, телефони, браузъри) и много ниската латентност, за сметка на това, че е малко по-лесно да се идентифицира чрез пръстови отпечатъци по модел на трафик в силно инспектирана мрежа.

Има две активно поддържани сървърни реализации:

  • shadowsocks-rust — съвременната референтна имплементация от организацията shadowsocks, написана на Rust. Тя поддържа по-новото семейство шифри AEAD-2022, разработва се активно и е имплементацията, която това ръководство инсталира и конфигурира подробно.
  • shadowsocks-libev — по-старата C имплементация. Все още се поддържа за корекции на грешки, доставя се като готов apt пакет със собствени systemd модули и е добър избор, ако искате най-лесната инсталация без ръчна обработка на двоични файлове. Това ръководство я разглежда като алтернативен път за инсталиране в Раздел 3.

Това ръководство описва как да конфигурирате ръчно сървъра чрез командния ред – без да използвате уеб панел или Docker. Където и да се появи полето „IP адрес“, заменете го с действителния IP адрес на вашия VPS.

Какво ще ви е необходимо: VPS с Ubuntu 22.04/24.04 или Debian 11/12, root достъп, IP адрес на вашия VPS и свободен UDP/TCP порт (това ръководство използва 8388, портът по подразбиране на Shadowsocks).

Все още нямате сървър? Вижте Как да поръчате сървър и да платите за него.

Сравнявате ли това с други самостоятелно хоствани опции първо? Вижте Xray VLESS Reality Guide за алтернатива, базирана на TLS-камуфлаж, AmneziaWG Server Deployment Guide за опция, базирана на WireGuard, или Hysteria2 и TUIC setup за два други съвременни прокси протокола.

Съдържание
Минимизиране

Свързване със сървъра

Windows (PuTTY)

Отворете PuTTY, въведете IP адреса на вашия VPS в полето Host Name (Име на хост), задайте порт на 22 и влезте като root, използвайки паролата, която вашият VPS доставчик ви е изпратил по имейл.

IP адрес на сървъра: вашият IP адрес

влезте като: root

Парола: вашата парола

За подробно ръководство за свързване чрез PuTTY/SSH вижте Как да се свържете към Linux сървър чрез SSH.

Конфигурация на PuTTY сесия за SSH достъп. PuTTY SSH терминал след свързване към VPS. Успешно SSH влизане във VPS.

Linux / macOS (терминал)

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

curl/wget и tar/xz-utils са необходими за извличане и разопаковане на архива с изданието shadowsocks-rust; ufw е защитната стена, конфигурирана по-долу; qrencode превръща готовата клиентска връзка в сканируем QR код в Раздел 7.

Команда, използвана за инсталиране на необходимите помощни програми за сървъра.

Конфигуриране на защитната стена (UFW)

За повече информация относно правилата за UFW вижте „Конфигуриране на защитна стена в Linux“.

Отворете двата порта, от които се нуждаете: 22/tcp за SSH (пропуснете това правило и рискувате да загубите достъп до сървъра) и 8388, както tcp, така и udp — Shadowsocks проксира както TCP връзки, така и UDP асоциации (полезно за DNS и някои игри/приложения), така че и двете посоки на порта трябва да са отворени.

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

И трите правила трябва да се показват като ALLOW в изхода за състоянието на ufw. Ако по-късно промените порта в config.json, актуализирайте тези правила, за да съвпадат.

Състоянието на UFW показва конфигурираните правила за SSH и Shadowsocks.

Инсталиране на сървърния софтуер

Изберете една от двете опции по-долу. Препоръчва се опция А (shadowsocks-rust): това е активно разработваната имплементация и поддържа съвременните шифри AEAD-2022, използвани по-нататък в това ръководство. Опция Б (shadowsocks-libev) е добър избор, ако предпочитате да използвате обикновен apt пакет с готов systemd модул и не се нуждаете от AEAD-2022.

Вариант А — shadowsocks-rust (препоръчително)

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"
Команда, използвана за изтегляне на архива с изданието shadowsocks-rust.

Ако вашият VPS е arm64 вместо x86_64 (проверете с `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
Команда, използвана за извличане и инсталиране на двоични файлове на shadowsocks-rust.

Проверете дали двоичният файл е на мястото си и проверете инсталираната версия:

ssserver --version
Инсталирана версия на ssserver.

Създайте директорията, в която ще се намира конфигурационният файл:

mkdir -p /etc/shadowsocks-rust
Създаване на конфигурационната директория shadowsocks-rust.

Това ръководство инсталира фиксирана версия, вместо да прехвърля инсталационен скрипт в bash. За да надстроите по-късно, изпълнете отново двете команди по-горе с ново търсене на SS_VER, спрете услугата, заменете двоичния файл и го рестартирайте (Раздел 6).

Вариант Б — shadowsocks-libev (алтернативен, apt пакет)

Shadowsocks-libev е включен в хранилището на universe на Ubuntu (Ubuntu 16.10+) и основното хранилище на Debian (Debian 8+), така че не е необходим PPA от трета страна на 22.04/24.04 или Debian 11/12:

apt install -y shadowsocks-libev
Команда, използвана за инсталиране на shadowsocks-libev от хранилището на пакетите.

Ако apt съобщи, че пакетът не е намерен, хранилището на universe е деактивирано; активирайте го и опитайте отново:

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 команди и файлови пътища, наред с тези за rust. Останалите клиентски раздели на това ръководство (7–13) се прилагат идентично и за двете сървърни имплементации, тъй като и двете използват един и същ протокол Shadowsocks/SIP002 по мрежата.

Генериране на парола и избор на шифър

Удостоверяването на Shadowsocks е единична споделена парола плюс шифър (метод за криптиране), за който двете страни трябва да се споразумеят – няма отделен UUID, двойка ключове или сертификат за управление.

Семейства шифри

  • AEAD-2022 (препоръчително, само за shadowsocks-rust): 2022-blake3-aes-128-gcm, 2022-blake3-aes-256-gcm, 2022-blake3-chacha20-poly1305. По-нов дизайн (SIP022) с по-силна защита при повторно възпроизвеждане и поддръжка за множество потребители, споделящи един порт. Паролата трябва да бъде base64 низ с точно същата дължина на ключа на шифъра (16 байта за 128-битовите варианти, 32 байта за 256-битовия вариант).
  • Класически AEAD (поддържан както от rust, така и от libev): aes-256-gcm, aes-128-gcm, chacha20-ietf-poly1305. Широко съвместим с по-стари клиенти и със shadowsocks-libev; паролата може да бъде всякаква фраза за достъп, тъй като се подава чрез функция за извличане на ключ, а не се използва директно като ключ.

Това ръководство използва 2022-blake3-aes-256-gcm за сървъра shadowsocks-rust, тъй като това е най-силната и най-актуална опция и всеки клиент, препоръчан по-късно (v2rayN, v2rayNG, Shadowrocket, Streisand, ShadowsocksX-NG), го поддържа. Ако сте инсталирали shadowsocks-libev в Раздел 3, използвайте chacha20-ietf-poly1305 или aes-256-gcm вместо това, тъй като libev не имплементира AEAD-2022.

Генериране на ключ (shadowsocks-rust)

ssservice genkey -m "2022-blake3-aes-256-gcm"
Команда, използвана за генериране на произволна парола за shadowsocks-libev.

Това отпечатва base64 низ — това е вашата парола. Копирайте го на сигурно място; ще го поставите както в конфигурацията на сървъра в Раздел 5, така и в връзката към клиента в Раздел 7.

Генерирана произволна парола.

Изберете парола (shadowsocks-libev)

За класическите AEAD шифри, използвани от shadowsocks-libev, всеки достатъчно дълъг произволен низ работи, тъй като се изпълнява през PBKDF/HKDF, вместо да се използва като суров ключ. Генерирайте такъв с:

openssl rand -base64 32

Записване на конфигурацията на сървъра

Shadowsocks-ръжда

Отворете конфигурационния файл за редактиране:

nano /etc/shadowsocks-rust/config.json

Поставете шаблона по-долу, като заместите вашата собствена парола от Раздел 4 (и порта от Раздел 2, ако сте го променили от 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
}

Натиснете Ctrl+O (WriteOut), за да запишете файла, Enter, за да потвърдите името на файла, и след това Ctrl+X, за да излезете от nano.

Важните полета: server listenes on all interfaces (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"

Създайте системния модул (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

Shadowsocks-libev

Пакетът apt вече е създал /etc/shadowsocks-libev/config.json със стандартна конфигурация (само за обратна връзка, произволна парола) и собствена системна единица. Отворете го за редактиране:

Команда, използвана за отваряне на конфигурационния файл shadowsocks-libev.
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
}
Примерна конфигурация на shadowsocks-libev.

Конфигурацията по подразбиране използва server: ["::1", "127.0.0.1"] (само за обратна връзка); промяната му на "0.0.0.0" прави сървъра достъпен от публичния IP адрес — не пропускайте това, ако сте копирали стоковия файл вместо шаблона по-горе.

Стартиране на услугата и активиране на автоматичното стартиране

Shadowsocks-ръжда

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

Статусът трябва да показва „активен“ (работи). Потвърдете, че нещо действително слуша на порта (и за двата протокола):

Сървърът слуша на TCP и UDP порт 8388.
ss -lntp | grep ':8388'
ss -lunp | grep ':8388'

Ако услугата не успее да се стартира, най-бързият начин да разберете защо е чрез журнала systemd (за информация относно четенето на лог файлове на Linux като цяло, вижте „ Как да четем лог файлове на Linux и къде да ги намерим “):

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

Shadowsocks-libev

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

Проверете порта и лог файловете по същия начин, както за shadowsocks-rust, като заместите името на услугата:

Команди, използвани за рестартиране, активиране и проверка на услугата shadowsocks-libev. Състоянието на услугата Shadowsocks-libev е показано като активно (работи).
ss -lntp | grep ':8388'
ss -lunp | grep ':8388'
journalctl -u shadowsocks-libev -n 50 --no-pager

Изграждане на връзката за клиентска връзка

Клиентите на Shadowsocks импортират единична ss:// връзка за споделяне (URL формат SIP002), а не конфигурационен файл. Връзката кодира шифъра и паролата като base64 в частта userinfo на URL адреса:

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

Изградете base64 частта на сървъра (това избягва печатни грешки от ръчно кодиране):

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:// връзка (илюстративна).
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"

Копирайте PNG файла на вашия компютър с scp, стартирайте го от терминала на компютъра (или PowerShell на Windows), а не от сървъра:

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

Свързване от Windows

Всичко в този раздел се случва на вашия компютър с Windows, а не през SSH — клиентът трябва да работи на устройството, което действително ще използва проксито.

Инсталирайте v2rayN

v2rayN е безплатен, активно поддържан GUI клиент с вградена поддръжка на Shadowsocks, както и на VLESS, VMess, Trojan и други. Изтеглете най-новата версия от страницата на проекта.

Вземете .zip файла на 64-битовата версия на Windows (самостоятелната компилация не се нуждае от отделна .NET среда, както при последните версии на v2rayN), разархивирайте го навсякъде и стартирайте v2rayN.exe.

Импортирайте сървъра

Копирайте връзката ss://, създадена в Раздел 7, в клипборда си (или копирайте QR PNG кода с scp и го отворете), след което във v2rayN изберете Сървъри → Импортиране на URL адреси от клипборда (или сканирайте QR кода чрез вградения скенер). Новият профил на сървъра се появява в списъка с етикета, който сте задали след #.

Щракнете с десния бутон върху профила и го изберете като активен, след което активирайте системния прокси (или TUN режим за маршрутизиране на цялата машина) от лентата с инструменти на главния прозорец.

Свързване от macOS

Всичко в този раздел се случва на вашия Mac, а не през SSH.

Инсталирайте ShadowsocksX-NG

ShadowsocksX-NG е дългогодишният нативен клиент за macOS с графичен потребителски интерфейс за Shadowsocks; текущата линия издания предлага нативна версия на Apple Silicon, наред с тази на Intel. Изтеглете най-новия .dmg файл от страницата с изданията.

Отворете .dmg файла и плъзнете ShadowsocksX-NG в „Приложения“, след което го стартирайте — той се появява като икона в лентата с менюта.

 

Импортирайте сървъра

Копирайте връзката ss:// от Раздел 7 в клипборда си, след което щракнете върху иконата в лентата с менюта → Сървъри → Предпочитания за сървър → + в долния ляв ъгъл и изберете „Импортиране от картон“ (или сканирайте QR кода с „Сканиране на QR код от екрана“, след като отворите PNG файла). Изберете новия профил от падащото меню в лентата с менюта, след което включете „Shadowsocks: Вкл.“ и изберете режим на маршрутизиране „PAC Auto“ или „Global“ от същото меню.

Свързване от Linux десктоп

Всичко в този раздел се случва на вашата собствена Linux машина, а не на VPS.

Инсталирайте локалния клиент

Ако сте инсталирали shadowsocks-rust на сървъра в Раздел 3, същият архив с изданието съдържа sslocal, SOCKS5/HTTP локален прокси клиент. Изтеглете го и го инсталирайте по същия начин като двоичния файл на сървъра (коригирайте суфикса OS/arch за вашия десктоп, ако не е 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/

Конфигуриране и изпълнение

Създайте малка локална конфигурация, слушаща на 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

Насочете настройките на браузъра или системната мрежа към SOCKS5 прокси на 127.0.0.1:1080. За графичен потребителски интерфейс, форковете Nekoray или ShadowsocksX-Qt5 могат да импортират същата ss:// връзка от Раздел 7 и да управляват sslocal вместо вас, вместо да го изпълняват ръчно.

Свързване от Android

Всичко тук се случва на вашето Android устройство, а не през SSH.

Инсталиране на клиент

Два добри варианта:

  • Shadowsocks за Android — официалният клиент от организацията shadowsocks. Инсталирайте го от Google Play (търсете „Shadowsocks“) или изтеглете APK файла директно от страницата с издания на проекта, ако Play не е наличен във вашата среда. област.
  • v2rayNG — Android еквивалентът на v2rayN, поддържащ Shadowsocks заедно с VLESS/VMess/Trojan; полезен, ако искате едно приложение за множество протоколи видове.

Импортирайте сървъра

В което и да е от приложенията: докоснете бутона +, изберете „Импортиране от клипборда“, след като копирате връзката ss:// от Раздел 7, или „Сканиране на QR код“ и насочете камерата към PNG файла. Докоснете импортирания профил, за да го изберете, след което докоснете бутона за свързване. Android ще поиска разрешение за VPN първия път — одобрете го, за да се установи тунелът. 

Свързване от iOS

Всичко тук се случва на вашия iPhone или iPad, не през SSH.

Инсталирайте клиент, съвместим със Shadowsocks

Shadowrocket е най-широко използваният iOS клиент с поддръжка на Shadowsocks; това е платено приложение, което се предлага в повечето магазини. Потърсете го в App Store или го отворете.

Streisand е безплатна алтернатива с отворен код, която поддържа и Shadowsocks, наред с VLESS, Trojan и други протоколи.

Каталозите на App Store варират в зависимост от магазина/региона и могат да се променят с времето; ако нито един от тях не се вижда във вашия, потърсете в App Store „Shadowsocks“ или „V2Box“.

Импортирайте сървъра

Копирайте връзката ss:// в клипборда си, отворете клиента и използвайте опцията му „Добавяне/Импортиране от клипборда“ или сканирайте QR кода от Раздел 7 с вградения скенер на клиента. Включете новия профил; iOS ще поиска разрешение за VPN конфигурация първия път, което ще трябва да одобрите чрез Face ID, Touch ID или вашия код за достъп.

Проверка на връзката

След като тунелът е активен от раздел 8, 9, 10, 11 или 12, върнете се на вашето устройство (не на SSH сесията) и отворете всяка програма за проверка „какъв е моят IP адрес“ в браузър — показаният адрес трябва да съвпада с IP адреса на вашия VPS, your_IP_address.

За да проверите от страна на сървъра, проверете журнала на systemd за активност на връзката и потвърдете установените сесии на порта (използвайте ssserver за журнала rust или shadowsocks-libev за журнала libev):

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

справка:

Област

Стойност

Адрес

публичният IP адрес на вашия VPS

порт

8388 (същият порт, отворен в Секция 2)

Парола

ключът/паролата, генерирани в Раздел 4

Начин на доставка

2022-blake3-aes-256-gcm (rust) или chacha20-ietf-poly1305 (libev) — трябва да съвпадат точно от двете страни

вид

tcp_and_udp — активира както TCP проксиране, така и UDP реле (DNS, някои игри)

Plug-in

не се използва в това ръководство — Shadowsocks не се нуждае от SNI, сертификат или транспортен плъгин, за да функционира

Заключение

Следването на това ръководство оставя вашия VPS да работи със собствен Shadowsocks сървър — или shadowsocks-rust с модерен AEAD-2022 шифър, или shadowsocks-libev от собственото хранилище на Ubuntu/Debian — като системна услуга, която оцелява след рестартиране без никакви действия от ваша страна.

Добавяне на още потребители:

  • Най-просто: генерирайте втора парола (Раздел 4) и стартирайте втори екземпляр на ssserver/shadowsocks-libev на различен порт със собствен конфигурационен файл и systemd модул, след което повторете Раздели 5–7 за този порт.
  • shadowsocks-rust с AEAD-2022 шифър също поддържа множество потребители, споделящи един порт и ключ за извличане на парола чрез масива "users" в config.json (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 — портът трябва да е отворен както за tcp, така и за udp)
  • че портът не е вече обвързан с друга услуга (ss -lntp | grep ':8388' ​​трябва да показва само ssserver/ss-server)
  • че паролата, методът и портът в клиента съвпадат точно с config.json — един несъответстващ символ безшумно проваля ръкостискането, обикновено показвайки се като изчакване на връзката, а не като изрична грешка
  • Този режим е зададен на tcp_and_udp на сървъра, ако клиентът се нуждае от UDP (DNS-over-proxy, някои игри/приложения), а не само tcp_only.

Сравнявате Shadowsocks с други опции? Вижте Xray VLESS Reality Guide за протокол, базиран на TLS-камуфлаж, който е по-труден за разпознаване в силно филтрирана мрежа, AmneziaWG Server Deployment Guide и How to set Wireguard VPN on your server за алтернативи, базирани на WireGuard, или Hysteria2 and TUIC set за два протокола, създадени за мрежи със загуби или силно филтрирани мрежи. Ако се нуждаете само от обикновен прокси, а не от пълна тунелна настройка, конфигурацията на 3proxy в CentOS/ArchLinux е много по-лека алтернатива, а по-старата настройка на VPN сървър в Linux: PPTP или OpenVPN? обхваща протоколи, които са по-лесни за настройване, но много по-лесни за откриване и блокиране от DPI. За общо втвърдяване на сървъра, след като проксито е активен, вижте Linux Users: Management and Permissions.

❮ Предишна статия Ръководство за Xray VLESS Reality: VPS, Windows, Mac, Android, iPhone
Следваща статия ❯ Инцидент със сигурността на VMmanager 6: Какво се случи и какво да се направи

Попитайте ни за VPS

Винаги сме готови да отговорим на вашите въпроси по всяко време на деня и нощта.