Свой VPN для самых маленьких | 3X-UI + VLESS

/articles/vpn_server/images/feature.png

Дисклеймер: Материл носит исключительно информационный характер. Автор не призывает к каким-либо действиям.

Статья-гайд, посвящённая установке своего VPN-сервера(вернее прокси) на удалённом хостинге с помощью 3X-UI панели и протокола VLESS/XTLS-Reality

А вот и гайдик подъехал. Плюсы своего VPN-сервера, что такое VPS и VLESS мы обговаривали в предыдущей статье, сейчас же пошагово разберёмся, как его настроить, также обсудим некоторую теоретическую часть по ходу установки.

Тут будет много работы с терминалом, поэтому желательно понимать, как взаимодействовать с этой сущностью. В Windows можно работать через PowerShell/cmd от имени администраторы, в macOS — через стандартный терминал. Если у вас Linux — вы и без меня всё знаете :)

Аренда сервера

UPD 28.10.2025

Покупаем VPS/VDS. Вообще вопрос выбора хорошего хостера с минимальным бюджетом довольно сложный. Небольшой список действительно недорогих хостеров и моём мнении о них (P.S. Имеющиеся ссылки — реферальные):

  • hip-hosting — хороший uptime. Фактически пропускная способность канала около 1гбит/сек, хотя пишут о 100мбит/сек. Подозреваю, что при постоянно высоком потреблении трафика канал рубят до указанного значения. Отсутствует поддержка;
  • blackmore.cloud — попадались плохие IP, но поддержка решала вопросы;
  • HSHP — затягивают с выдачей IP, uptime не самый лучший;
  • freakhosting — вечные проблемы с серверами и доступом к ним. Для VPN не советую;
  • aeza — постоянно попадают под блокировки. Не наш клиент;
  • pq.hosting (ныне the.hosting) — пользовался до момента краха серверов Эстонии, а затем и всей конторы в целом, из-за санкций ЕС, наложенных на владельцев. Ситуацию они решили ребрендингом и передачей прав третьему лицу… Есть вероятность повторения ситуации, поэтому не поднимается язык рекомендовать их;
  • timeweb.cloud — слышал о массовом сносе аккаунтов из-за использования VPN на серверах.

Возможно буду дополнять список позже. Но важно также понимать, что провайдеры могут меняться как в плохую, так и в хорошую сторону с течением времени, поэтому то, что я описал — всего лишь скрин ситуации на момент апдейта.

Разумеется, при покупке нужно выбирать расположение сервера вне России. Для личного пользования хватит 1 ядра и 1гб RAM, желательно хотя бы 10гб на диске, ОС — Ubuntu 22.04 (для других дальнейшие инструкции могут отличаться). Также важным фактором для нас является скорость передачи данных. Советую выбрать тариф с каналом от 500мбит/сек

/articles/vpn_server/images/VPS.png

Первое подключение к серверу

На своём пк открываем терминал/Bash/PowerShell от имени администратора. Пишем следующую команду ssh root@ip_сервера, где вместо “ip_сервера”, соответственно, вставляем ip своего сервера. Терминал сначала спросит, точно ли мы хотим подключиться — пишем “yes”, затем предложит ввести пароль, скорее всего при покупке хостинг самостоятельно сгенерировал его, ищем на почте или на странице купленной услуги.

Инфо
Вставка текста в терминал осуществляется либо клавишами Ctrl + Shift + V, либо правой кнопкой мыши (PowerShell/cmd/PuTTY).
При вбивании пароля символы отображаться не будут, поэтому удобнее делать копи-пастом. Если не получается авторизоваться, хотя пароль правильный, измените раскладку клавиатуры на английскую.
Инфо
SSH — сетевой протокол, позволяющий удалённо управлять ОС
/articles/vpn_server/images/ssh.png

Если вы видите приглашение типа root@host_name — вы внутри, поздравляю! Да, тут нет привычного графического интерфейса как в обычном пк, но он и не нужен, ведь всё можно сделать через консоль.

Защита сервера

root — стандартная учётная запись администратора, которая чаще других становится целью брутфорс-атак (перебора паролей). Обезопасим себя, создав нового пользователя и запретив вход для root (также называемого суперпользователем). Пишем adduser новое_имя, придумываем сложный пароль и вбиваем/вставляем его. Для генерации сильных паролей я использую KeePass. Дальше нажимаем Enter несколько раз, пока не появится вопрос. Жмём y. Даём новому пользователю возможность выполнять команды от имени суперпользователя: usermod -aG sudo имя_пользователя, выходим из системы командой exit либо закрывая терминал.

/articles/vpn_server/images/passwd.png

Зайдём под именем созданного пользователя: ssh имя_пользователя@ip_сервера, и проверим работоспособность командой sudo ls -la /root. Вывод есть? Значит всё хорошо, идём дальше.

Теперь перед каждой командой, требующей доступ администратора, нам придётся писать sudo и вводить пароль (единоразово для сессии), ведь мы работаем не через суперпользователя, имеющего доступ ко всему и вся.

/articles/vpn_server/images/new_user.png

Так, пора бы обновить систему. Пишем sudo apt update && sudo apt full-upgrade -y и ждём.

Установим nano: sudo apt install nano, откроем конфиг SSH командой sudo nano /etc/ssh/sshd_config и изменим параметр “PermitRootLogin” с “yes” на “no”.

Инфо

nano — консольный текстовый редактор Linux (UNIX-подобных ОС). Он покажется довольно специфичным юзеру, пользовавшемся только графическими редакторами, поэтому вот пару советов, которые могут вам помочь:

  1. Передвигать курсор мышкой не получится, впрочем как и во всём терминале, так что используйте для этого стрелки на клавиатуре.
  2. Нажмите Ctrl + O -> Enter, чтобы сохранить файл; Нажмите Ctrl + X, чтобы выйти из редактора.
/articles/vpn_server/images/nano.png

Так лучше, теперь root не сможет зайти в систему никоим образом. Ещё один важный шаг: нужно перевесить порт SSH с дефолтного на повыше. Открываем (если уже закрыли) тот же самый файл sshd_config, раскомментируем строку “Port”, убрав # и пишем произвольный номер порта. Нужно запомнить его.

Инфо
IP — адрес сетевого устройства, порт — адрес сетевой службы/программы на этом IP
/articles/vpn_server/images/nano2.png
Инфо
Если вам надоело, что соединение с сервером теряется после нескольких минут бездействия, измените значения параметров ClientAliveInterval и/или ClientAliveCountMax на более высокие. У меня стоят 300 и 12 соответственно

Не забываем перезапустить службу SSH: sudo systemctl restart sshd.
Выйдем и зайдём нормально :D
Прописываем exit, затем подключаемся к серверу с нового порта: ssh имя_пользователя@ip_сервера -p номер_порта.

Все предыдущие шаги были сделаны с целью обезопасить систему от непрошеных гостей. Сейчас же начнём установку 3X-UI панели, которая облегчит настройку XRay и даст графический интерфейс.

- Так, стоп, а что за XRay?
- XRay — ПО, выполняющее функции прокси. Оно не является таковым в физическом смысле, но содержит протоколы, транспорты и всё нужное для работы прокси-сервера.

- Окей, кажется ещё упоминались какие-то VLESS и Reality?
- VLESS — протокол передачи данных, поддерживающий технологии маскировки, к примеру XTLS-Reality, позволяющий скрыть трафик под обычные HTTPS запросы.

- Я запутался…
- Давайте ещё разок с самого начала. VPS — виртуальный сервер, размещённый на физическом. В нашем случае он находится где-то в Германии. На нём установлена операционная система, вроде Windows, но не он, а дистрибутив (реализация) Linux, называемый Ubuntu. На эту ОС мы накатим 3X-UI — программу, которая облегчит настройку XRay — ПО для маршрутизации и проксирования трафика, использующее для этой цели протоколы по типу VLESS, а последний, в свою очередь, улучшает свой функционал, работая с технологией XTLS-Reality, которая позволит маскироваться под определённый сайт. Фух, ну с объяснениями вроде закончили…

Установка 3x-ui

UPD 28.10.2025

Многие читатели жаловались на ошибки докера и сложность управления сертификатами, которая тоже отчасти вытекает из установки панели через докер, поэтому было решено упростить процесс. Чтобы установить панель, перейдём в суперпользователя (su - -> пароль хостера) и скопируем в консоль:

1
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)

Начнётся установка панели, в ходе которой появится вопрос “Would you like to customize the Panel Port settings?” — отвечаем n. По окончании процесса нам выпадает вся нужная для доступа информация: ссылка, логин и пароль. Сохраните их, чтобы не потерять.

/articles/vpn_server/images/setup.png
Предупреждение
Перед тем как заходить в панель, настоятельно рекомендую подключить сертификаты

Переходим в браузер, в поисковую строку вставляем скопированный URL, пишем логин с паролем.

/articles/vpn_server/images/3x-uii.png

Настройка VLESS и Reality

UPD 28.10.2025

Теперь, наконец-таки, займёмся подключением протокола! Переходим во вкладку “Инбаунды” (подключения) и жмём “Создать инбаунд”.

В “Примечании” (Remark) пишем любое название подключения, протокол — vless, порт — 443.

/articles/vpn_server/images/vless11.png

Идём в самый низ. Выбираем “Безопасность”: Reality — открылось ещё множество полей.
В “uTLS” выбирайте что хотите из знакомого и популярного, я оставил chrome. В “Target” прописываем адрес сайта, по которому будет перенаправляться подключения для маскировки трафика. Тут всё чуток сложнее. Если не хотите заморачиваться, ставьте что-то популярное, типа google.com:443 или yahoo.com:443.

Главное выбрать популярный зарубежный сайт, который заблокируют с наименьшей долей вероятности для жителей РФ. Также важно учесть пинг: в идеале он должен быть <10мс. Проверить можно командой ping выбранный_сайт (Ctrl + C, чтобы остановить процесс).

Я выберу google.com:443, основываясь на вышеуказанных критериях. В таком случае, в “SNI” указываем google.com,www.google.com.
Отныне провайдер будет думать, что мы подключаемся к google.com, даже если на самом деле находимся на nelzagram.com.

“Sniffing” оставляем по дефолту по дефолту.

/articles/vpn_server/images/vless22.png

Возвращаемся повыше — к настройкам клиента. Сперва меняем Email (по факту никнейм) на что-то уникальное и удобочитаемое. ID сгенерировано панелью, общий расход, начало использования и дату окончания устанавливаем по усмотрению, я же оставлю эти поля как есть.
В поле “Flow” выбираем xtls-rprx-vision.

/articles/vpn_server/images/vless33.png

Жмём заветную кнопку “Создать”!

Подключение к VPN

UPD 28.10.2025

Готово! Осталось только подключиться. Для этого воспользуемся каким-либо из клиентов. Легче всего будет подключиться через Happ, v2raytun или Hiddify. Поскольку раньше здесь была инструкция для последнего, её и оставлю, но не брезгуйте посмотреть и в сторону альтернатив!

И-так, в этом гайде всё же остановимся на Hiddify. Чтобы скачать его, перейдите по ссылке или найдите репозиторий в поисковике, промотайте вниз до “Direct Download” и выберите свою платформу.

Вернёмся к панельке. Сейчас имеем такую ситуацию:

/articles/vpn_server/images/inbound11.png

Жмём на плюсик рядом с “ID”, выпадут текущие пользователи. Тыкаем на значок qr-кода, затем на сам высветившийся qr (с надписью “Подписка”) — ссылка будет скопирована в буфер обмена.

/articles/vpn_server/images/inbound22.png

Теперь откроем Hiddify. Жмём на плюсик в правом верхнем углу, далее на “Добавить из буфера обмена”. Осталось нажать на центральную кнопку.. та-дам! Всё работает, можно пользоваться :)

/articles/vpn_server/images/hiddify.png

В параметрах конфигурации вы можете поставить регион ru, чтобы подключаться к сайтам с доменами .ru напрямую — так шанс идентификации использования прокси приближается к нулю. Если же всякие нельзяграммы так и не работают, измените в настройках режим работы на “VPN”. Учтите, что в этом случае нужно будет открыть приложение с правами администратора. У меня, к примеру, по дефолту режим стоял “Прокси”.

/articles/vpn_server/images/hiddify2.png

Схема подключения на мобильных устройствах практически идентична. Ссылку можете получить, отсканировав qr или переслав через тот же телеграм. Также нужно выбрать режим работы VPN и установить регион по желанию. К слову, я использую VPN для всех сайтов (регион — Другой), и за полтора месяца проблем не было.

/articles/vpn_server/images/hiddify_android.png

Пользователи

Для каждого подключения есть возможность создания нескольких пользователей. Для чего? Ну можно следить за расходом трафика, ограничивать его, задавать начальную и конечную даты использования и может что-то ещё…

Создать новых пользователей очень просто. Ищем наше подключение, нажимаем на значок под “Меню” -> “ Создать клиента”. В качестве Email пишем уникальное имя, а в качестве Flow устанавливаем тот же “xtls-rprx-vision”.

/articles/vpn_server/images/add_user11.png

Супер, теперь у нас есть 2 пользователя. Ко второму может подключиться, например, наш друг. Просто берём ссылку, нажав на соответствующий qr в строке пользователя.

/articles/vpn_server/images/add_user22.png

Установка сертификата

UPD 28.10.2025

Если вы уже зашли в панель, то наверняка заметили предупреждение о том, что соединение не защищено. Так и есть, ведь мы подключаемся по протоколу http, а вот чтобы подключаться по https, нужен SSL/TLS сертификат. Разберём наиболее простой и эффективный способ подключения этой сущности.

Переходим на сайт и регистрируемся. К слову, кроме корректного email’а, можно ввести выдуманные данные. Активируем аккаунт через письмо на почте, тыкаем сюда и выбираем желаемый ПУБЛИЧНЫЙ домен -> попадаем в окно настройки. В поле “Subdomain” пишем имя, которое хотим видеть перед основным доменом, в “Destination” вставляем ip сервера -> сохраняем. Готово.

/articles/vpn_server/images/subdomainn.png

Возвращаемся в консоль. Если ещё не в суперпользователе, заходим в него (su - -> пароль) -> apt install cron -y -> x-ui -> 18 (SSL Certificate Management) -> 1 (Get SSL) -> вбиваем свой домен -> Enter -> n для “Would you like to modify –reloadcmd for ACME?” -> y для “Would you like to set this certificate for the panel?”.

Вот и всё! Теперь доступ к панели защищён. В одной из последний строк появится новый URL для доступа к ней. Копируем и идём дальше.

Инфо
Также ссылку для доступа к панели можно узнать в CLI меню: sudo x-ui -> 10
Предупреждение
Если на этом этапе вы получили отказ из-за слишком большого количества выданных сертификатов за последнее время “There were too many requests of a given type :: too many certificates (50) already issued for…”, то нужно либо подождать указанное время и попробовать снова, либо получить и попробовать новый поддомен, расположенный в другой доменной зоне (в моём случае не .strangled.net).

Подписки

UPD 28.10.2025

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

Сейчас же просто расскажу, зачем она нужна и почему вы будете пользоваться только ею, а не прямыми ссылками.

Подписка / подписочная ссылка — интересная сущность, позволяющая придать процессу создания своего VPN коммерческий вектор. С помощью подписки можно создать ссылку сразу на несколько подключений, то есть у пользователя появится сразу несколько конфигураций VPN в клиенте, к тому же, изменения будут подтягиваться автоматически (без подписки придётся удалять и создавать подключения в клиенте заново). Вдруг какой-то перестанет работать, а тут второй как раз под рукой.
Для обычного же пользователя подписки полезны тем, что не нужно заново вставлять новую ссылку после малейшего изменения настроек инбаунда.

Единственное, что стоит настроить самостоятельно, это порт подписки и её url-путь. Переходим в “Настройки” в боковой панели -> Подписка -> меняем “Порт подписки” и “Корневой путь URL-адреса подписки” на что-то другое. Порт выбираем в пределах от 20000 до 50000.

/articles/vpn_server/images/subscription.png

The end

Вот гайд и подошёл к концу! Если у вас возникнут трудности/вопросы/предложения, жду их в лс или в комментариях ниже! Спасибо, что читаете! 🎃

Поддержать автора
NoisyCake cloudtipscloudtips
0%