Блог Clearway

Свой VPN-сервер на VPS: от выбора VDS до подключения клиентов

Коротко

Чтобы поднять свой VPN-сервер на VPS, возьмите VDS на KVM с 1 vCPU / 1 ГБ RAM и чистым IP (~3–6 €/мес), установите панель — 3x-ui для себя или Marzban/Remnawave для раздачи доступов, создайте инбаунд VLESS + Reality на порту 443 с flow xtls-rprx-vision, добавьте клиента и импортируйте ссылку или подписку в v2rayNG, Happ либо Streisand. Базовая установка занимает 15–30 минут. Главная засада не в настройке, а в живучести: при белых списках у провайдера подсети дата-центровых хостеров попадают под блок, и рабочий Reality перестаёт открываться, потому что режется весь /24 хостера — поэтому сразу закладывайте домен, резервные ноды в разных подсетях и, для зон жёстких блокировок, фронт через whitelisted-инфраструктуру.

Что значит «свой VPN-сервер» и когда он реально нужен

Свой VPN-сервер на VPS — это арендованная виртуалка (VPS/VDS), на которой вы сами поднимаете прокси-ядро Xray и держите ключи доступа у себя. В отличие от коробочного VPN-приложения вы получаете:

  • Свой IP и контроль — канал не делится с сотнями чужих людей, логи не уходят третьей стороне.
  • Современный транспорт — VLESS + Reality вместо OpenVPN/WireGuard, которые DPS/ТСПУ в РФ распознаёт по сигнатуре рукопожатия.
  • Масштабирование — от «одному себе» до раздачи друзьям или мини-реселла на подписках.

Когда оправдано: нужен стабильный личный доступ, вы не доверяете публичным сервисам, строите мини-сервис. Когда нет: если задача — «включил и забыл» на одном телефоне без возни, дешевле и быстрее купить готовую подписку; свой сервер требует минимального сопровождения.

Про VPS vs VDS: в быту это синонимы, но под VPN важна не вывеска, а тип виртуализации. Нужен KVM (аппаратная виртуализация) — он даёт собственное ядро и полный сетевой стек. Контейнерный OpenVZ дешевле, но там часть сетевых модулей и tun/tap может быть урезана, и настройка упрётся в ограничения хоста.

Выбор VPS/VDS: виртуализация, локация, чистый IP

Железо под VLESS-ноду нужно скромное — упор на сеть и «чистоту» адреса, а не на CPU.

ПараметрРекомендация
ВиртуализацияKVM (не OpenVZ)
vCPU / RAM1 / 1 ГБ для личной ноды; 2 / 2 ГБ под панель с подписками
Диск10–20 ГБ NVMe
Каналот 1 Гбит/с, большой лимит или анлим трафика
ОСUbuntu 22.04 / 24.04 LTS
Цена ориентир~3–6 €/мес за такую конфигурацию

На что смотреть кроме характеристик:

  • Локация. Для РФ-пользователя выигрывают близкие точки с низким пингом: Финляндия, Германия, Нидерланды, Стокгольм. Чем дальше гео — тем выше задержки на видеозвонках и играх.
  • Чистый IP. До оплаты попросите свежий адрес и прогоните его: ping + проверка по спам-базам и на прошлые блокировки. «Грязный» IP из-под чужого спама будет ловить капчи и баны с первого дня.
  • Abuse-политика. Хостеры с жёстким abuse-department могут снести VM по первой жалобе — читайте отзывы перед оплатой годового тарифа.
  • Оплата. Зарубежные провайдеры часто требуют карту, которой может не быть; заранее решите вопрос (крипта, посредники).

Не берите самый дешёвый шаред с переподпиской канала (oversell): на пике скорость просядет вдвое-втрое.

Как поднять VPN-сервер на VPS: гигиена и установка панели

Работать с голым JSON-конфигом Xray можно, но панель экономит часы и снимает ошибки в руках.

Сначала базовая гигиена сервера — до всякой панели:

apt update && apt upgrade -y
adduser deploy && usermod -aG sudo deploy # отдельный пользователь
# в /etc/ssh/sshd_config: PermitRootLogin no, PasswordAuthentication no, сменить Port
systemctl restart ssh
ufw allow <ssh_port>/tcp && ufw allow 443/tcp && ufw enable

SSH — только по ключу и на нестандартном порту, наружу открыты лишь SSH-порт и 443. Иначе боты найдут сервер и начнут брутить в первые же часы — это не преувеличение, а норма для любого свежего IP.

Панель под задачу:

  • 3x-ui — для себя и пары устройств, ставится одной командой:
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)

Скрипт спросит логин/пароль и порт админки — обязательно смените дефолты и не вешайте панель на публичные 80/443, её не должно быть видно снаружи (доступ через SSH-туннель или отдельный порт под IP-фильтром).

  • Marzban — когда раздаёте доступы нескольким людям: подписки, лимиты трафика, сроки действия из коробки.
  • Remnawave — REST API, мульти-нодовость, система подписок; выбор тех, кто строит сервис на десятки-сотни пользователей.

Если планируете домен и маскировку — заранее наведите A-запись на IP сервера, пригодится дальше.

Настройка VLESS + Reality: рабочая база

Дефолт для условий РФ сегодня — VLESS + Reality. Reality маскирует ваше подключение под TLS-хендшейк к реальному чужому сайту: нет своего сертификата, нет палевного self-signed TLS, для DPI трафик выглядит как обычный визит на популярный ресурс.

В панели создайте инбаунд:

  • Протокол: VLESS
  • Порт: 443
  • Flow: xtls-rprx-vision
  • Security: Reality
  • Dest / SNI-цель: реальный чужой сайт с TLS 1.3 и HTTP/2, географически близкий, не заблокированный и сам не являющийся VPN-ресурсом. Проверить кандидата можно так:
echo | openssl s_client -connect example.com:443 -alpn h2 -tls1_3 2>/dev/null \
 | grep -E 'Protocol|ALPN'
# нужны TLSv1.3 и ALPN protocol: h2
  • Ключи Reality: сгенерируйте пару x25519 (панель делает кнопкой; вручную — xray x25519) и задайте несколько shortIds.

После сохранения панель отдаст готовую vless:// ссылку и QR.

Про XHTTP и транспорт через CDN здесь сознательно не углубляюсь — это отдельная тема со своими требованиями (режим packet-up, особенности GET-запросов у CDN), ей посвящён отдельный разбор. Коротко: Reality хорош для прямого коннекта к ноде, а XHTTP нужен, когда нода прячется за фронтом. Сначала доведите базовый Reality-инбаунд до рабочего состояния, потом усложняйте.

Подключение клиентов и проверка

Один инбаунд обслуживает все платформы — меняются только приложения.

  • Android: v2rayNG, Happ, NekoBox — импорт vless:// или скан QR.
  • iOS: Happ, Streisand, V2Box, FoXray — по ссылке/QR или как подписка.
  • Windows: Hiddify, NekoRay, v2rayN.
  • macOS: Streisand, Hiddify, V2Box.

Два способа раздачи:

  1. Прямая ссылка — быстро для себя: скопировали vless://…, вставили в клиент.
  2. Подписка (subscription URL) — правильнее при нескольких пользователях или планах менять серверы: клиент периодически тянет список нод по одному адресу, и при переезде рассылать новые ссылки не нужно.

Обязательно проверьте после подключения:

curl https://ifconfig.me # должен показать IP вашего VPS, а не провайдера

Плюс тест на DNS-утечку (например, browserleaks.com/dns или dnsleaktest.com) — резолверы должны быть не провайдерскими.

Заметка по iOS: ряд клиентов (в частности Happ) агрессивно кэширует подписку и не подхватывает изменения сразу. Лечится отдачей подписки с заголовками Cache-Control: no-cache на стороне сервера либо удалением и повторным добавлением подписки в приложении.

Живучесть: почему нода в дата-центре блокируется

Частая иллюзия новичка — «поднял VLESS, значит защищён навсегда». На практике голый VPS в дата-центре — самая уязвимая часть схемы.

Механика: при белых списках (когда ТСПУ/провайдер пропускает только доверенные подсети и режет остальное) диапазоны крупных зарубежных хостеров по наблюдениям массово оказываются за пределами белого списка. Ваш идеально настроенный Reality при этом технически работает — но пакет до ноды просто не доходит, потому что заблокирован весь /24 хостера. Reality маскирует содержимое, но не прячет сам факт соединения с «нехорошим» IP.

Что повышает живучесть прямой ноды:

  • Домен вместо голого IP и аккуратный, «живой» SNI-таргет у Reality.
  • Резервные ноды у разных хостеров и в разных подсетях — через подписку клиент переключится сам.
  • Панель и SSH не на публичных портах, дефолты сменены.

Но принципиально проблему «IP ноды в чёрном списке» это не снимает. Радикально устойчивость даёт вынос точки входа с дата-центрового IP на инфраструктуру, которая уже в белых списках, — фронт через whitelisted-CDN: клиент коннектится к доверенному адресу CDN, а тот проксирует трафик на вашу ноду, и блокировка подсети хостера не роняет доступ. Это отдельный слой поверх базовой схемы из гайда; закладывайте его в архитектуру, если сервер нужен именно в зоне жёстких блокировок, а не для обхода геоблоков на отдыхе. Детали — в отдельных материалах про белые списки и панели за CDN.

Чеклист и частые ошибки

Пробегитесь перед тем, как считать сервер готовым:

  • [ ] Виртуализация KVM, ОС — свежая LTS.
  • [ ] IP проверен на чистоту до оплаты.
  • [ ] root-логин по паролю отключён, SSH на нестандартном порту, вход по ключу.
  • [ ] Файрвол: наружу открыты только 443 и SSH-порт.
  • [ ] Панель не висит на публичном порту, дефолтные логин/пароль сменены.
  • [ ] Reality-инбаунд с валидным SNI-таргетом (TLS 1.3 + h2), flow xtls-rprx-vision.
  • [ ] Проверены реальный IP на выходе (curl ifconfig.me) и отсутствие DNS-утечек.
  • [ ] Продуман переезд: раздаёте через подписку, а не голые ссылки.

Типичные грабли:

  • OpenVZ вместо KVM — часть сетевых фич не заведётся.
  • SNI-цель Reality — заблокированный или медленный сайт: хендшейк рвётся, соединение нестабильно.
  • Забытые дефолты панели — сервер сканируют боты в первые же часы.
  • Один-единственный IP без плана Б — в день блокировки подсети останетесь без доступа.

Частые вопросы

VPS или VDS — что брать под VPN-сервер?

Технически это почти синонимы, вывеска роли не играет. Важна виртуализация: берите KVM (её нередко и называют «VDS»), а не контейнерный OpenVZ. KVM даёт собственное ядро, tun/tap и полный сетевой стек; на OpenVZ часть протоколов и модулей может быть урезана хостом. Характеристики скромные — 1 vCPU и 1 ГБ RAM личной ноде хватает.

Сколько ресурсов нужно и на сколько человек хватит?

VLESS-нода почти не грузит CPU — упор на сеть. 1 vCPU / 1 ГБ RAM на канале от 1 Гбит/с по наблюдениям спокойно тянет несколько десятков активных пользователей. Ограничением раньше станет трафик-лимит хостера или ширина канала, а не процессор. Для панели с сотнями подписок берите 2 vCPU / 2 ГБ с запасом.

Какой протокол выбрать в 2026-м — VLESS, OpenVPN или WireGuard?

Для условий РФ — VLESS + Reality. OpenVPN и WireGuard хорошо детектируются DPI по сигнатуре рукопожатия и в зонах блокировок отваливаются. Reality маскирует трафик под TLS-хендшейк к реальному чужому сайту без собственного сертификата, что делает соединение малозаметным. WireGuard при этом остаётся отличным вариантом там, где блокировок нет (личный доступ, домашняя сеть).

Мой Reality настроен верно, но соединения нет. В чём дело?

Частая причина — не ошибка конфига, а блокировка IP-подсети хостера на уровне провайдера/ТСПУ (белые списки). Reality прячет содержимое трафика, но не сам факт коннекта к «нехорошему» адресу: если заблокирован весь /24 дата-центра, пакет до ноды не доходит. Проверьте доступность IP с мобильного интернета; лечится сменой хостера/подсети или выносом точки входа на whitelisted-инфраструктуру (фронт через CDN).

Как раздать доступ нескольким людям и потом менять серверы без хаоса?

Используйте подписку (subscription URL), а не голые vless-ссылки. Клиент периодически тянет список нод по одному адресу, и при переезде или добавлении резервной ноды пользователям ничего пересылать не нужно — обновление прилетит автоматически. Для этого удобны Marzban или Remnawave: они генерируют подписки, лимиты и сроки из коробки.

Почему подписка на iOS не обновляется?

Ряд iOS-клиентов (например Happ) агрессивно кэширует подписку и не подхватывает изменения сразу. Два способа: отдавать подписку с заголовком Cache-Control: no-cache на стороне сервера, либо удалить и заново добавить подписку в приложении, чтобы сбросить кэш. Второй способ подходит как разовое быстрое лечение, первый — как системное.

Реально поднять свой VPN-сервер на VPS без опыта в Linux?

Базовую ноду — да. Установка панели вроде 3x-ui сводится к одной команде, а инбаунд VLESS + Reality создаётся кнопками в веб-интерфейсе. Но минимальную гигиену безопасности осилить придётся: сменить SSH-порт, отключить root по паролю, вход по ключу, закрыть файрволом всё лишнее и не светить панель наружу — иначе сервер найдут боты в первые часы.

Whitelisted-вход для вашего VPN-сервиса

Clearway даёт «белый» CDN-вход перед вашей нодой — устойчивый к троттлингу операторов. Первые 10 ГБ бесплатно, без карты.

Попробовать →