Установка Shadowsocks на Ubuntu 20.04/22.04 - Пошаговая инструкция | AdminWiki

Установка Shadowsocks на Ubuntu: Полное руководство для DevOps и разработчиков

18 декабря 2025 7 мин. чтения #devops #proxy #shadowsocks #ubuntu #vpn #безопасность #сетевые технологии

Представь, что тебе нужно настроить быстрый и безопасный прокси-сервер для обхода ограничений или защиты трафика. Shadowsocks — это легковесное решение, которое отлично справляется с этой задачей. Давай разберем, как установить и настроить Shadowsocks на Ubuntu от начала до конца.

Что такое Shadowsocks и зачем он нужен

Shadowsocks — это безопасный SOCKS5 прокси, разработанный для обхода интернет-цензуры. В отличие от традиционных VPN, он работает на транспортном уровне и использует собственный протокол шифрования, что делает его менее заметным для систем DPI (Deep Packet Inspection).

Преимущества Shadowsocks:

  • Высокая скорость соединения
  • Низкая задержка (latency)
  • Сложность обнаружения для систем цензуры
  • Простая установка и настройка
  • Поддержка множества методов шифрования

Подготовка сервера Ubuntu

Перед началом установки убедись, что у тебя есть:

  • Сервер с Ubuntu 20.04 LTS или 22.04 LTS
  • Доступ с правами root или через sudo
  • Обновленная система
Важно: Рекомендую использовать свежий сервер без других прокси-сервисов, чтобы избежать конфликтов портов.

Обновление системы

Начнем с обновления пакетов системы:

bash
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y

Установка Shadowsocks сервера

Есть несколько способов установки. Рассмотрим самый простой — через pip (пакетный менеджер Python).

Установка Python и pip

bash
sudo apt install python3 python3-pip -y

Установка Shadowsocks через pip

bash
sudo pip3 install shadowsocks
Внимание: В некоторых версиях Ubuntu может потребоваться установка дополнительных зависимостей. Если возникнут ошибки, выполни: sudo apt install build-essential libssl-dev libffi-dev python3-dev -y

Настройка конфигурации Shadowsocks

Создадим конфигурационный файл. Выбери метод шифрования и порт на свое усмотрение.

bash
sudo nano /etc/shadowsocks.json

Добавь следующую конфигурацию (замени значения на свои):

json
{
    "server": "0.0.0.0",
    "server_port": 8388,
    "password": "your_strong_password",
    "method": "aes-256-gcm",
    "timeout": 300,
    "fast_open": false
}

Параметры конфигурации:

Параметр Описание Рекомендации
server_port Порт для подключения 8388 (стандартный) или любой свободный
method Метод шифрования aes-256-gcm (рекомендуется)
password Пароль для доступа Используй сложный пароль 12+ символов

Доступные методы шифрования

  • aes-256-gcm — самый безопасный (рекомендуется)
  • aes-192-gcm — хороший баланс безопасности и скорости
  • aes-128-gcm — быстрее, но менее безопасно
  • chacha20-ietf-poly1305 — хорош для мобильных устройств

Запуск и управление сервисом

Тестовый запуск

Проверим, что все работает:

bash
sudo ssserver -c /etc/shadowsocks.json -d start

Создание systemd сервиса

Для автоматического запуска создадим systemd сервис:

bash
sudo nano /etc/systemd/system/shadowsocks.service

Добавь содержимое:

config
[Unit]
Description=Shadowsocks Server
After=network.target

[Service]
Type=simple
User=nobody
Group=nogroup
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks.json
Restart=on-failure

[Install]
WantedBy=multi-user.target

Активация и управление сервисом

bash
# Перезагрузить systemd
sudo systemctl daemon-reload

# Включить автозапуск
sudo systemctl enable shadowsocks

# Запустить сервис
sudo systemctl start shadowsocks

# Проверить статус
sudo systemctl status shadowsocks

# Просмотр логов
sudo journalctl -u shadowsocks -f

Настройка фаервола (UFW)

Откроем порт для Shadowsocks в фаерволе:

bash
# Установка UFW если нет
sudo apt install ufw -y

# Разрешаем SSH (важно сделать до включения!)
sudo ufw allow 22/tcp

# Разрешаем порт Shadowsocks
sudo ufw allow 8388/tcp

# Включаем фаервол
sudo ufw enable

# Проверяем правила
sudo ufw status verbose
Важное предупреждение: Не забудь разрешить SSH порт (обычно 22) перед включением UFW, иначе потеряешь доступ к серверу!

Настройка клиентов

После настройки сервера, тебе понадобится клиент для подключения. Вот популярные варианты:

Клиенты для разных платформ:

  • Windows: Shadowsocks-Windows
  • macOS: ShadowsocksX-NG
  • Linux: shadowsocks-qt5 или командная строка
  • Android: Shadowsocks Android
  • iOS: Shadowrocket или Potatso Lite

Быстрая проверка работы

Установи тестовый клиент на Ubuntu для проверки:

bash
# Установка клиента
sudo pip3 install shadowsocks

# Создание конфига клиента
nano ~/shadowsocks-client.json

Конфиг клиента (замени IP на адрес твоего сервера):

json
{
    "server": "your_server_ip",
    "server_port": 8388,
    "local_port": 1080,
    "password": "your_strong_password",
    "method": "aes-256-gcm",
    "timeout": 300
}

Оптимизация производительности

Настройка ядра Linux

Для улучшения производительности добавь настройки в sysctl:

bash
sudo nano /etc/sysctl.d/99-shadowsocks.conf
config
# Увеличиваем размер буферов
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.core.netdev_max_backlog = 250000
net.core.somaxconn = 4096

# Настройки TCP
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000

# Включаем BBR (если поддерживается)
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

Примени изменения:

bash
sudo sysctl -p /etc/sysctl.d/99-shadowsocks.conf

Мониторинг и логирование

Просмотр статистики

Для мониторинга трафика можно использовать:

bash
# Установка iftop для мониторинга трафика
sudo apt install iftop -y

# Мониторинг трафика на порту 8388
sudo iftop -f "port 8388" -P

Настройка ротации логов

bash
sudo nano /etc/logrotate.d/shadowsocks
config
/var/log/shadowsocks.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        systemctl reload shadowsocks > /dev/null 2>&1 || true
    endscript
}

Часто задаваемые вопросы (FAQ)

Как проверить, что Shadowsocks работает?

Выполни команду: sudo systemctl status shadowsocks. Если сервис активен, проверь подключение с клиента. Также можно использовать netstat -tulpn | grep 8388 чтобы убедиться, что порт слушается.

Как сменить порт Shadowsocks?

Измени параметр server_port в файле /etc/shadowsocks.json, затем обнови правило фаервола и перезапусти сервис: sudo systemctl restart shadowsocks.

Shadowsocks не запускается, что делать?

Проверь логи: sudo journalctl -u shadowsocks -n 50. Частые причины: ошибки в JSON конфиге, занятый порт, отсутствие зависимостей. Убедись, что порт не используется: sudo lsof -i :8388.

Как добавить несколько пользователей?

Используй режим multi-port в конфигурации. Добавь параметр port_password вместо server_port и password:

json
{
    "port_password": {
        "8388": "password1",
        "8389": "password2",
        "8390": "password3"
    }
}

Как обновить Shadowsocks?

Выполни: sudo pip3 install --upgrade shadowsocks. После обновления перезапусти сервис: sudo systemctl restart shadowsocks.

Профессиональный совет: Для продакшн-среды рассмотри использование Docker контейнеров для изоляции сервиса и упрощения деплоя.

Заключение

Ты успешно установил и настроил Shadowsocks на Ubuntu. Теперь у тебя есть быстрый и безопасный прокси-сервер, готовый к использованию. Помни о регулярном обновлении системы, мониторинге логов и использовании сложных паролей.

Для дальнейшего развития можешь изучить:

  • Настройку балансировки нагрузки между несколькими серверами
  • Интеграцию с мониторинговыми системами (Prometheus, Grafana)
  • Использование Docker для контейнеризации
  • Настройку автоматического обновления сертификатов (если используешь TLS)
Поделиться:
Сохранить гайд? В закладки браузера