Представь, что тебе нужно настроить быстрый и безопасный прокси-сервер для обхода ограничений или защиты трафика. Shadowsocks — это легковесное решение, которое отлично справляется с этой задачей. Давай разберем, как установить и настроить Shadowsocks на Ubuntu от начала до конца.
Что такое Shadowsocks и зачем он нужен
Shadowsocks — это безопасный SOCKS5 прокси, разработанный для обхода интернет-цензуры. В отличие от традиционных VPN, он работает на транспортном уровне и использует собственный протокол шифрования, что делает его менее заметным для систем DPI (Deep Packet Inspection).
Преимущества Shadowsocks:
- Высокая скорость соединения
- Низкая задержка (latency)
- Сложность обнаружения для систем цензуры
- Простая установка и настройка
- Поддержка множества методов шифрования
Подготовка сервера Ubuntu
Перед началом установки убедись, что у тебя есть:
- Сервер с Ubuntu 20.04 LTS или 22.04 LTS
- Доступ с правами root или через sudo
- Обновленная система
Обновление системы
Начнем с обновления пакетов системы:
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
Установка Shadowsocks сервера
Есть несколько способов установки. Рассмотрим самый простой — через pip (пакетный менеджер Python).
Установка Python и pip
sudo apt install python3 python3-pip -y
Установка Shadowsocks через pip
sudo pip3 install shadowsocks
sudo apt install build-essential libssl-dev libffi-dev python3-dev -y
Настройка конфигурации Shadowsocks
Создадим конфигурационный файл. Выбери метод шифрования и порт на свое усмотрение.
sudo nano /etc/shadowsocks.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 — хорош для мобильных устройств
Запуск и управление сервисом
Тестовый запуск
Проверим, что все работает:
sudo ssserver -c /etc/shadowsocks.json -d start
Создание systemd сервиса
Для автоматического запуска создадим systemd сервис:
sudo nano /etc/systemd/system/shadowsocks.service
Добавь содержимое:
[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
Активация и управление сервисом
# Перезагрузить systemd
sudo systemctl daemon-reload
# Включить автозапуск
sudo systemctl enable shadowsocks
# Запустить сервис
sudo systemctl start shadowsocks
# Проверить статус
sudo systemctl status shadowsocks
# Просмотр логов
sudo journalctl -u shadowsocks -f
Настройка фаервола (UFW)
Откроем порт для Shadowsocks в фаерволе:
# Установка 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
Настройка клиентов
После настройки сервера, тебе понадобится клиент для подключения. Вот популярные варианты:
Клиенты для разных платформ:
- Windows: Shadowsocks-Windows
- macOS: ShadowsocksX-NG
- Linux: shadowsocks-qt5 или командная строка
- Android: Shadowsocks Android
- iOS: Shadowrocket или Potatso Lite
Быстрая проверка работы
Установи тестовый клиент на Ubuntu для проверки:
# Установка клиента
sudo pip3 install shadowsocks
# Создание конфига клиента
nano ~/shadowsocks-client.json
Конфиг клиента (замени IP на адрес твоего сервера):
{
"server": "your_server_ip",
"server_port": 8388,
"local_port": 1080,
"password": "your_strong_password",
"method": "aes-256-gcm",
"timeout": 300
}
Оптимизация производительности
Настройка ядра Linux
Для улучшения производительности добавь настройки в sysctl:
sudo nano /etc/sysctl.d/99-shadowsocks.conf
# Увеличиваем размер буферов
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
Примени изменения:
sudo sysctl -p /etc/sysctl.d/99-shadowsocks.conf
Мониторинг и логирование
Просмотр статистики
Для мониторинга трафика можно использовать:
# Установка iftop для мониторинга трафика
sudo apt install iftop -y
# Мониторинг трафика на порту 8388
sudo iftop -f "port 8388" -P
Настройка ротации логов
sudo nano /etc/logrotate.d/shadowsocks
/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:
{
"port_password": {
"8388": "password1",
"8389": "password2",
"8390": "password3"
}
}
Как обновить Shadowsocks?
Выполни: sudo pip3 install --upgrade shadowsocks. После обновления перезапусти сервис: sudo systemctl restart shadowsocks.
Заключение
Ты успешно установил и настроил Shadowsocks на Ubuntu. Теперь у тебя есть быстрый и безопасный прокси-сервер, готовый к использованию. Помни о регулярном обновлении системы, мониторинге логов и использовании сложных паролей.
Для дальнейшего развития можешь изучить:
- Настройку балансировки нагрузки между несколькими серверами
- Интеграцию с мониторинговыми системами (Prometheus, Grafana)
- Использование Docker для контейнеризации
- Настройку автоматического обновления сертификатов (если используешь TLS)