Развёртывание Shadowsocks на VPS

Запустите собственный зашифрованный прокси менее чем за 20 минут с помощью этого пошагового руководства.

Требования
  • Базовые навыки работы с терминалом/командной строкой
  • Банковская карта для аренды домена и VPS

Обзор архитектуры

Прежде чем начать, рассмотрим, что мы будем строить. Каждый компонент выполняет определённую роль, делая ваш трафик невидимым для цензоров и провайдеров:

    
graph TD
    A["Your Device"] -->|"HTTPS :443"| B["Nginx"]
    B -->|"WebSocket"| C["Shadowsocks :8389"]
    C -->|"Normal Traffic"| D["Internet"]
    style A fill:#1e293b,stroke:#3b82f6,color:#e2e8f0
    style B fill:#1e293b,stroke:#f59e0b,color:#e2e8f0
    style C fill:#1e293b,stroke:#10b981,color:#e2e8f0
    style D fill:#1e293b,stroke:#8b5cf6,color:#e2e8f0

  
  • Nginx слушает порт 443 с подлинным SSL-сертификатом, обрабатывая TLS-терминацию. Для любого наблюдателя ваш сервер выглядит как обычный HTTPS-сайт.
  • Shadowsocks работает внутри Docker-контейнера на порту 8389 (только localhost). Nginx перенаправляет WebSocket-трафик с пути /shadowsocks в этот контейнер.
  • v2ray-plugin оборачивает протокол Shadowsocks в WebSocket-фреймы, поэтому вся цепочка выглядит так: ваше устройство → TLS → WebSocket → Shadowsocks → интернет.

Результат: ваш провайдер видит стандартный HTTPS-трафик к тому, что выглядит как обычный веб-сайт. Нечего обнаруживать или блокировать.


Шаг 1: Купите доменное имя

Вам нужно доменное имя для вашего прокси-сервера. Это обязательно — оно позволяет получить настоящий SSL-сертификат, благодаря которому ваш трафик выглядит как обычный HTTPS. Без домена файрволы легко обнаружат и заблокируют ваш сервер по IP-адресу.

Домен стоит всего $2-9 в год. Выберите любого регистратора:

Namecheap — Доступные домены с бесплатной защитой конфиденциальности.

  1. Перейдите на namecheap.com и найдите домен
  2. Выберите недорогую зону (.uk, .xyz, .site часто стоят менее $3/год)
  3. Добавьте WhoisGuard (бесплатно) для скрытия ваших личных данных
  4. Завершите покупку
  5. Перейдите в Domain List → ваш домен → Advanced DNS для управления DNS-записями
💡 Совет
Выберите обычное, безобидное имя домена. Избегайте слов “vpn”, “proxy” или “bypass” — ваш сервер должен выглядеть как обычный сайт.

Cloudflare Registrar — Домены по оптовой цене, без наценки.

  1. Создайте аккаунт на cloudflare.com
  2. Перейдите в Domain RegistrationRegister Domain
  3. Найдите домен и купите его (.com стоит ~$9/год по себестоимости)
  4. DNS автоматически управляется через Cloudflare — дополнительная настройка не нужна
ℹ️ Информация
Cloudflare также предоставляет бесплатный CDN, защиту от DDoS и управление DNS. Это добавляет дополнительный уровень защиты для вашего прокси-сервера.

Porkbun — Низкие цены, бесплатная приватность WHOIS и SSL.

  1. Перейдите на porkbun.com и найдите домен
  2. Многие зоны доступны дешевле $5/год
  3. Приватность WHOIS включена бесплатно для каждого домена
  4. Завершите покупку и управляйте DNS через панель управления
⚠️ Внимание
Конфиденциальность важна. Всегда включайте защиту конфиденциальности WHOIS (бесплатно у всех регистраторов выше). Это скрывает ваше имя, адрес и email из публичной базы данных WHOIS.

Шаг 2: Выбор VPS-провайдера

Вам нужен виртуальный частный сервер (VPS) – небольшой облачный компьютер, который будет запускать ваш прокси Shadowsocks круглосуточно. Самого дешёвого тарифа любого крупного провайдера более чем достаточно.

DigitalOcean – Надёжный, удобный для начинающих, серверы в 15+ регионах.

  1. Зарегистрируйтесь на digitalocean.com
  2. Нажмите Create Droplet
  3. Выберите Ubuntu 24.04 LTS в качестве операционной системы
  4. Выберите тариф $4/месяц (512 МБ ОЗУ, 1 vCPU) – этого более чем достаточно
  5. Выберите регион ближе к вам (например, London, Frankfurt, New York)
  6. В разделе Authentication выберите SSH Key (рекомендуется) или Password
  7. Нажмите Create Droplet и запишите IP-адрес

Vultr – Конкурентные цены, 32 локации серверов по всему миру.

  1. Зарегистрируйтесь на vultr.com
  2. Нажмите Deploy New Server
  3. Выберите Cloud Compute (Regular Performance)
  4. Выберите Ubuntu 24.04 LTS
  5. Выберите тариф $3.50/месяц (512 МБ ОЗУ, 1 vCPU)
  6. Выберите локацию сервера ближе к вам
  7. Добавьте свой SSH-ключ или установите пароль root
  8. Нажмите Deploy Now и запишите IP-адрес

Hetzner – Отличное соотношение цены и качества, базируется в ЕС, строгая политика конфиденциальности.

  1. Зарегистрируйтесь на hetzner.com/cloud
  2. Создайте новый проект, затем нажмите Add Server
  3. Выберите Ubuntu 24.04 в качестве образа
  4. Выберите CX22 (2 vCPU, 4 ГБ ОЗУ, примерно 4 евро/месяц) или самый дешёвый доступный
  5. Выберите локацию (Falkenstein, Nuremberg, Helsinki или Ashburn)
  6. Добавьте свой SSH-ключ
  7. Нажмите Create & Buy Now и запишите IP-адрес

OVH – Бюджетный вариант, базируется в ЕС, хорошо подходит для тех, кто заботится о конфиденциальности.

  1. Зарегистрируйтесь на ovhcloud.com
  2. Перейдите в Public CloudCreate an instance
  3. Выберите Ubuntu 24.04 в качестве образа
  4. Выберите тариф Starter (примерно 3,50 евро/месяц)
  5. Выберите регион (Gravelines, Strasbourg, London и т.д.)
  6. Добавьте свой SSH-ключ
  7. Запустите инстанс и запишите IP-адрес
💡 Совет
Какого провайдера выбрать? Если вы не уверены, выбирайте DigitalOcean или Vultr – они наиболее удобны для начинающих. Если вы в Европе и заботитесь о суверенитете данных, Hetzner – отличный выбор.

Шаг 3: Направьте домен на сервер

Вам нужно доменное имя, указывающее на ваш VPS, чтобы получить подлинный SSL-сертификат. Именно это делает ваш трафик похожим на обычный HTTPS-трафик.

  1. Войдите в панель управления вашего доменного регистратора (Namecheap, Cloudflare, GoDaddy и т.д.)
  2. Перейдите в DNS-настройки для вашего домена
  3. Создайте A-запись:
    • Name/Host: @ (или поддомен, например proxy)
    • Value/Points to: IP-адрес вашего VPS (например, 203.0.113.42)
    • TTL: Automatic или 300 секунд
ℹ️ Информация
Изменения DNS могут распространяться до 24 часов по всему миру, но обычно завершаются в течение 5-10 минут. Проверить распространение можно на dnschecker.org.

Шаг 4: Подключение к серверу по SSH

Откройте терминал на вашем компьютере и подключитесь к VPS:

bash

ssh root@YOUR_SERVER_IP

Замените YOUR_SERVER_IP на IP-адрес из Шага 2. Если вы установили пароль вместо SSH-ключа, вам будет предложено его ввести.

💡 Совет
Пользователям Windows: Windows 10 и 11 включают встроенный SSH-клиент. Откройте Terminal или PowerShell и используйте ту же команду ssh, указанную выше. Также можно использовать PuTTY, если предпочитаете графический интерфейс.

После подключения вы увидите командную строку вида root@your-server:~#. Теперь вы готовы к настройке сервера.


Шаг 5: Установка Docker

Docker позволяет запускать Shadowsocks в изолированном контейнере. Установите его одной командой:

bash

curl -fsSL https://get.docker.com | sh

Эта команда скачивает и запускает официальный скрипт установки Docker. Он работает на Ubuntu, Debian, CentOS и Fedora. Процесс занимает около минуты.

Проверьте, что Docker установлен и работает:

bash

docker --version

Вы должны увидеть вывод вида Docker version 27.x.x, build ....


Шаг 6: Развёртывание контейнера Shadowsocks

Теперь разверните сервер Shadowsocks с поддержкой v2ray-plugin:

bash

docker run -d \
  --name shadowsocks \
  --restart always \
  -p 127.0.0.1:8389:8389 \
  -e PASSWORD=YOUR_STRONG_PASSWORD \
  -e METHOD=aes-256-gcm \
  jfca68/shadowsocks-server:latest
🚨 Опасность
Смените пароль! Замените YOUR_STRONG_PASSWORD на надёжный уникальный пароль. Используйте не менее 16 символов, включая буквы, цифры и специальные символы. Этот пароль шифрует ваш трафик – обращайтесь с ним как с банковским паролем.

Разберём, что делает эта команда:

  • -d – Запуск контейнера в фоновом режиме (detached mode)
  • --name shadowsocks – Присвоение контейнеру запоминающегося имени
  • --restart always – Автоматический перезапуск при перезагрузке контейнера или сервера
  • -p 127.0.0.1:8389:8389 – Проброс порта 8389 только на localhost (не в публичный интернет)
  • -e PASSWORD=... – Установка пароля шифрования
  • -e METHOD=aes-256-gcm – Использование шифрования AES-256-GCM (самое надёжное из доступных)

Проверьте, что контейнер запущен:

bash

docker ps

Вы должны увидеть контейнер с именем shadowsocks и статусом Up.


Шаг 7: Установка и настройка Nginx

Nginx будет работать как обратный прокси, принимая HTTPS-соединения на порту 443 и перенаправляя WebSocket-трафик в контейнер Shadowsocks.

Установите Nginx:

bash

apt update && apt install -y nginx

Создайте файл конфигурации Nginx для вашего домена:

bash

nano /etc/nginx/sites-available/YOUR_DOMAIN

Вставьте следующую конфигурацию (замените YOUR_DOMAIN на ваш реальный домен):

nginx

server {
    listen 80;
    server_name YOUR_DOMAIN;

    location /shadowsocks {
        proxy_pass http://127.0.0.1:8389;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location / {
        return 200 'Welcome to my website';
        add_header Content-Type text/plain;
    }
}

Активируйте сайт и перезапустите Nginx:

bash

ln -s /etc/nginx/sites-available/YOUR_DOMAIN /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx
ℹ️ Информация
Блок location / возвращает простой текстовый ответ для всех, кто посещает ваш домен напрямую. Это делает его похожим на обычный безобидный веб-сервер. При желании вы можете заменить это на статическую HTML-страницу.

Шаг 8: Получение SSL-сертификата

Подлинный SSL-сертификат от Let’s Encrypt критически важен. Он обеспечивает реальное TLS-шифрование трафика и делает ваш сервер похожим на легитимный HTTPS-сайт.

Установите Certbot и получите сертификат:

bash

apt install -y certbot python3-certbot-nginx
certbot --nginx -d YOUR_DOMAIN

Certbot выполнит следующее:

  1. Проверит, что вы контролируете домен
  2. Получит бесплатный SSL-сертификат от Let’s Encrypt
  3. Автоматически настроит Nginx для использования HTTPS
  4. Настроит автоматическое обновление сертификата (сертификаты истекают каждые 90 дней, но Certbot обновляет их автоматически)

Когда будет предложено, введите ваш email-адрес (для уведомлений об обновлении) и примите условия использования. Когда спросят о перенаправлении HTTP на HTTPS, выберите Yes (вариант 2).

💡 Совет
Убедитесь, что DNS вашего домена полностью распространился, прежде чем запускать Certbot. Если Certbot выдаёт ошибку проверки домена, подождите несколько минут и попробуйте снова.

Шаг 9: Проверка настройки

Проверка сервера

Откройте https://YOUR_DOMAIN в веб-браузере. Вы должны увидеть:

  • Действительный SSL-сертификат (значок замка в адресной строке)
  • Текст “Welcome to my website” (или то, что вы настроили)

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

Теперь настройте клиент Shadowsocks на вашем устройстве. Вам понадобятся следующие данные:

ПараметрЗначение
СерверYOUR_DOMAIN
Порт сервера443
ПарольПароль, установленный в Шаге 6
Шифрованиеaes-256-gcm
Плагинv2ray-plugin
Параметры плагинаtls;host=YOUR_DOMAIN;path=/shadowsocks;mux=0
ℹ️ Информация
Подробные инструкции по настройке клиента для каждой платформы (Windows, macOS, Linux, Android, iOS) смотрите в нашем руководстве Подключение с любого устройства.

Проверка соединения

После подключения через клиент Shadowsocks:

  1. Откройте whatismyipaddress.com – вы должны увидеть IP-адрес вашего VPS, а не свой реальный
  2. Откройте dnsleaktest.com и запустите расширенный тест – ни один DNS-запрос не должен указывать на вашего реального провайдера
  3. Запустите тест скорости на speedtest.net – снижение скорости должно быть минимальным

Что дальше?

Ваш прокси Shadowsocks теперь работает. Вот несколько следующих шагов:

bash

docker pull jfca68/shadowsocks-server:latest
docker stop shadowsocks && docker rm shadowsocks
# Повторно выполните команду docker run из Шага 6
💡 Совет
Сохраните эту страницу в закладки. Если вам когда-нибудь понадобится пересобрать сервер или устранить неполадку, все необходимые команды находятся прямо здесь.