Развёртывание 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 — Доступные домены с бесплатной защитой конфиденциальности.
- Перейдите на namecheap.com и найдите домен
- Выберите недорогую зону (
.uk,.xyz,.siteчасто стоят менее $3/год) - Добавьте WhoisGuard (бесплатно) для скрытия ваших личных данных
- Завершите покупку
- Перейдите в Domain List → ваш домен → Advanced DNS для управления DNS-записями
Cloudflare Registrar — Домены по оптовой цене, без наценки.
- Создайте аккаунт на cloudflare.com
- Перейдите в Domain Registration → Register Domain
- Найдите домен и купите его (
.comстоит ~$9/год по себестоимости) - DNS автоматически управляется через Cloudflare — дополнительная настройка не нужна
Porkbun — Низкие цены, бесплатная приватность WHOIS и SSL.
- Перейдите на porkbun.com и найдите домен
- Многие зоны доступны дешевле $5/год
- Приватность WHOIS включена бесплатно для каждого домена
- Завершите покупку и управляйте DNS через панель управления
Шаг 2: Выбор VPS-провайдера
Вам нужен виртуальный частный сервер (VPS) – небольшой облачный компьютер, который будет запускать ваш прокси Shadowsocks круглосуточно. Самого дешёвого тарифа любого крупного провайдера более чем достаточно.
DigitalOcean – Надёжный, удобный для начинающих, серверы в 15+ регионах.
- Зарегистрируйтесь на digitalocean.com
- Нажмите Create Droplet
- Выберите Ubuntu 24.04 LTS в качестве операционной системы
- Выберите тариф $4/месяц (512 МБ ОЗУ, 1 vCPU) – этого более чем достаточно
- Выберите регион ближе к вам (например, London, Frankfurt, New York)
- В разделе Authentication выберите SSH Key (рекомендуется) или Password
- Нажмите Create Droplet и запишите IP-адрес
Vultr – Конкурентные цены, 32 локации серверов по всему миру.
- Зарегистрируйтесь на vultr.com
- Нажмите Deploy New Server
- Выберите Cloud Compute (Regular Performance)
- Выберите Ubuntu 24.04 LTS
- Выберите тариф $3.50/месяц (512 МБ ОЗУ, 1 vCPU)
- Выберите локацию сервера ближе к вам
- Добавьте свой SSH-ключ или установите пароль root
- Нажмите Deploy Now и запишите IP-адрес
Hetzner – Отличное соотношение цены и качества, базируется в ЕС, строгая политика конфиденциальности.
- Зарегистрируйтесь на hetzner.com/cloud
- Создайте новый проект, затем нажмите Add Server
- Выберите Ubuntu 24.04 в качестве образа
- Выберите CX22 (2 vCPU, 4 ГБ ОЗУ, примерно 4 евро/месяц) или самый дешёвый доступный
- Выберите локацию (Falkenstein, Nuremberg, Helsinki или Ashburn)
- Добавьте свой SSH-ключ
- Нажмите Create & Buy Now и запишите IP-адрес
OVH – Бюджетный вариант, базируется в ЕС, хорошо подходит для тех, кто заботится о конфиденциальности.
- Зарегистрируйтесь на ovhcloud.com
- Перейдите в Public Cloud → Create an instance
- Выберите Ubuntu 24.04 в качестве образа
- Выберите тариф Starter (примерно 3,50 евро/месяц)
- Выберите регион (Gravelines, Strasbourg, London и т.д.)
- Добавьте свой SSH-ключ
- Запустите инстанс и запишите IP-адрес
Шаг 3: Направьте домен на сервер
Вам нужно доменное имя, указывающее на ваш VPS, чтобы получить подлинный SSL-сертификат. Именно это делает ваш трафик похожим на обычный HTTPS-трафик.
- Войдите в панель управления вашего доменного регистратора (Namecheap, Cloudflare, GoDaddy и т.д.)
- Перейдите в DNS-настройки для вашего домена
- Создайте A-запись:
- Name/Host:
@(или поддомен, напримерproxy) - Value/Points to: IP-адрес вашего VPS (например,
203.0.113.42) - TTL: Automatic или 300 секунд
- Name/Host:
Шаг 4: Подключение к серверу по SSH
Откройте терминал на вашем компьютере и подключитесь к VPS:
ssh root@YOUR_SERVER_IP
Замените YOUR_SERVER_IP на IP-адрес из Шага 2. Если вы установили пароль вместо SSH-ключа, вам будет предложено его ввести.
ssh, указанную выше. Также можно использовать PuTTY, если предпочитаете графический интерфейс.После подключения вы увидите командную строку вида root@your-server:~#. Теперь вы готовы к настройке сервера.
Шаг 5: Установка Docker
Docker позволяет запускать Shadowsocks в изолированном контейнере. Установите его одной командой:
curl -fsSL https://get.docker.com | sh
Эта команда скачивает и запускает официальный скрипт установки Docker. Он работает на Ubuntu, Debian, CentOS и Fedora. Процесс занимает около минуты.
Проверьте, что Docker установлен и работает:
docker --version
Вы должны увидеть вывод вида Docker version 27.x.x, build ....
Шаг 6: Развёртывание контейнера Shadowsocks
Теперь разверните сервер Shadowsocks с поддержкой v2ray-plugin:
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 (самое надёжное из доступных)
Проверьте, что контейнер запущен:
docker ps
Вы должны увидеть контейнер с именем shadowsocks и статусом Up.
Шаг 7: Установка и настройка Nginx
Nginx будет работать как обратный прокси, принимая HTTPS-соединения на порту 443 и перенаправляя WebSocket-трафик в контейнер Shadowsocks.
Установите Nginx:
apt update && apt install -y nginx
Создайте файл конфигурации Nginx для вашего домена:
nano /etc/nginx/sites-available/YOUR_DOMAIN
Вставьте следующую конфигурацию (замените YOUR_DOMAIN на ваш реальный домен):
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:
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 и получите сертификат:
apt install -y certbot python3-certbot-nginx
certbot --nginx -d YOUR_DOMAIN
Certbot выполнит следующее:
- Проверит, что вы контролируете домен
- Получит бесплатный SSL-сертификат от Let’s Encrypt
- Автоматически настроит Nginx для использования HTTPS
- Настроит автоматическое обновление сертификата (сертификаты истекают каждые 90 дней, но Certbot обновляет их автоматически)
Когда будет предложено, введите ваш email-адрес (для уведомлений об обновлении) и примите условия использования. Когда спросят о перенаправлении HTTP на HTTPS, выберите Yes (вариант 2).
Шаг 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 |
Проверка соединения
После подключения через клиент Shadowsocks:
- Откройте whatismyipaddress.com – вы должны увидеть IP-адрес вашего VPS, а не свой реальный
- Откройте dnsleaktest.com и запустите расширенный тест – ни один DNS-запрос не должен указывать на вашего реального провайдера
- Запустите тест скорости на speedtest.net – снижение скорости должно быть минимальным
Что дальше?
Ваш прокси Shadowsocks теперь работает. Вот несколько следующих шагов:
- Подключите все свои устройства – Настройте клиент на Windows, macOS, Linux, Android и iOS
- Узнайте больше о Shadowsocks – Разберитесь, как работает технология и почему она устойчива к цензуре
- Настройте автоматические обновления – Поддерживайте Docker-образ в актуальном состоянии:
docker pull jfca68/shadowsocks-server:latest
docker stop shadowsocks && docker rm shadowsocks
# Повторно выполните команду docker run из Шага 6