Что значит «свой 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 / RAM | 1 / 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.
Два способа раздачи:
- Прямая ссылка — быстро для себя: скопировали
vless://…, вставили в клиент. - Подписка (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 без плана Б — в день блокировки подсети останетесь без доступа.