8.2.11 Налаштування VPN на базі Shadowsocks
Shadowsocks — легкий проксі‑VPN із шифруванням, який допомагає обходити фаєрволи та обмеження QoS. У цій статті розглянемо встановлення й налаштування shadowsocks‑libev на Ubuntu 24.04, а також підключення клієнтів.
Кейси використання
- обхід блокувань сайтів та сервісів;
- зниження високих затримок або обмежень PPTP/L2TP/OpenVPN;
- необхідність шифрувати трафік без важких TLS‑тунелів.
Shadowsocks використовує асинхронний I/O, шифрує потік даними за допомогою AEAD‑алгоритмів та працює як SOCKS5‑проксі, що робить його швидшим за класичні VPN‑рішення.
Підготовка сервера
Системні вимоги
- Послуга віртуального сервера або виділеного сервера.
- CPU: мінімум 1 vCPU;
- RAM: мінімум 1 ГБ;
- SSD: мінімум 10 ГБ;
- ОС: Ubuntu 24.04 LTS;
- Доступ root або через sudo;
- Відкритий UDP/TCP‑порт (типово — 8388).
Перед встановленням переконайтесь, що система оновлена. Команда нижче оновить кеш пакетів і встановить актуальні виправлення:
sudo apt update && sudo apt upgrade -y
Встановлення shadowsocks‑libev
В Universe‑репозиторії Ubuntu 24.04 вже є актуальний пакет shadowsocks‑libev, тому додатковий PPA не потрібен. Виконайте:
sudo apt install -y shadowsocks-libev
Якщо система повідомляє, що пакет не знайдено, увімкніть репозиторій Universe:
sudo add-apt-repository universe && sudo apt update
Створення конфігурації сервера
За замовчуванням служба читає налаштування з /etc/shadowsocks-libev
. Створимо файл config.json
, де вкажемо адресу, порт, пароль і метод шифрування:
sudo nano /etc/shadowsocks-libev/config.json
{
"server": "0.0.0.0", // слухати всі інтерфейси
"server_port": 8388, // порт Shadowsocks
"password": "password", // надійний пароль клієнта
"timeout": 60, // тайм‑аут (сек.) очікування пакета
"method": "aes-256-gcm", // AEAD‑алгоритм шифрування
"fast_open": true // TCP Fast Open для зниження затримок
}
- password — встановіть унікальний довгий пароль, спільний для всіх клієнтів.
- method — використовуйте AEAD‑алгоритми (наприклад,
aes-256-gcm
), захищені від MITM‑атак. - fast_open — прискорює перше з’єднання, якщо ядро підтримує TFO (
cat /proc/sys/net/ipv4/tcp_fastopen
).
Запуск та автозапуск служби
Systemd‑юнит shadowsocks-libev-server@<name>
читає конфігурації з /etc/shadowsocks-libev/<name>.json
. За замовчуванням ім’я — config
. Запустіть і увімкніть сервіс в автозавантаження:
sudo systemctl enable --now shadowsocks-libev-server@config
Перевірте стан і переглядайте логи:
sudo systemctl status shadowsocks-libev-server@config
journalctl -u shadowsocks-libev-server@config -f
Статус Active: active (running) підтверджує коректний запуск.
Налаштування брандмауера
Щоб клієнти могли підключатись, відкрийте відповідний порт для TCP та UDP:
UFW
sudo ufw allow 8388/tcp
sudo ufw allow 8388/udp
sudo ufw reload
iptables
sudo iptables -A INPUT -p tcp --dport 8388 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 8388 -j ACCEPT
Підключення клієнта
Ось базові сценарії підключення до сервера.
Windows / macOS
-
Завантажте офіційний клієнт із shadowsocks.org.
-
Додайте профіль вручну:
- Server IP — IP-адреса VPS
- Server Port —
8388
- Password —
password
- Encryption —
aes-256-gcm
- Збережіть і активуйте профіль — іконка клієнта стане зеленою.
Linux (ss-local)
На робочих станціях Linux рекомендовано використовувати ss-local — він створює локальний SOCKS5‑порт і шифрує трафік до сервера:
sudo apt install shadowsocks-libev
ss-local -s <SERVER_IP> -p 8388 -k <PASSWORD> -m aes-256-gcm -l 1080
Замініть наступні значення:
- <PASSWORD> – Ваш надійний пароль;
- <SERVER_IP> – ip Вашого сервера.
Налаштуйте програми або браузер на використання SOCKS5-проксі 127.0.0.1:1080
.
Android / iOS
- Встановіть ShadowSocks з Google Play або App Store.
- Натисніть
+
→ Manual Settings або відскануйте QR-код. - Введіть ті ж параметри сервера.
- Активуйте VPN-режим — у статус-барі з’явиться ключ.
Згенерувати QR-код можна прямо на сервері:
qrencode -t ansiutf8 "ss://$(echo -n aes-256-gcm:<PASSWORD>@<SERVER_IP>:8388 | base64 -w0)#Shadowsocks"
Замініть наступні значення:
- <PASSWORD> – Ваш надійний пароль;
- <SERVER_IP> – ip Вашого сервера.
Перевірка роботи
Тест швидкості каналу
Команда нижче завантажить тестову сторінку Cloudflare через SOCKS5‑проксі — це допоможе оцінити реальну пропускну здатність тунелю:
curl --socks5 127.0.0.1:1080 https://speed.cloudflare.com
Перевірка DNS‑витоків
Відкрийте у браузері https://dnsleaktest.com
(або https://browserleaks.com/dns
) і запустіть Extended Test. Якщо IP‑адрес вашого провайдера немає у списку — DNS-запити проходять через Shadowsocks.
Типові проблеми
Симптом | Можлива причина | Швидке рішення |
---|---|---|
connection timeout при підключенні |
Порт 8388 закритий у брандмауері | Перевірте правила UFW/iptables |
Низька швидкість | Вимкнено fast_open або слабкий метод |
Ввімкніть "fast_open": true , використовуйте aes-256-gcm |
Сервіс не стартує | Помилка синтаксису JSON-конфігурації | sudo journalctl -u shadowsocks-libev-server@config — показує рядок помилки |
Failed to parse JSON при запуску |
Помилка синтаксису в config.json |
jq . /etc/shadowsocks-libev/config.json , виправте і перезапустіть сервіс |
port already in use |
Порт 8388 зайнятий іншим процесом | sudo lsof -i :8388 , змініть порт і перезапустіть Shadowsocks |
Посилання та документація
- Офіційний сайт Shadowsocks — https://shadowsocks.org
- GitHub
shadowsocks-libev
— https://github.com/shadowsocks/shadowsocks-libev