October 10

Настройка лучших VPN протоколов! VLESS с XTLS-Reality на сервере XRay с установкой через 3X-UI панель⁠⁠

VLESS с XTLS-Reality — используют уникальный метод идентификации на этапе TLS-рукопожатия по принципу свой/чужой. Если сервер определяет клиента как «своего», он просто работает как прокси.

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

При этом, в реальном времени, ваш прокси-трафик скрывается под обычным браузерным трафиком в виде HTTPS соединения, используя реальный TLS-сертификат.

В случае неузнаваемого трафика, соединение перенаправляется на реальный сайт (например, google.com) и имитирует его поведение. Это обеспечивает высокую степень маскировки и делает практически невозможным детектирование прокси.

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

Вы наверное спросите: а лучше ли этот вариант настройки, чем тот же WireGuard или Outline с Shadowsocks? — Да! В разы лучше!

Как минимум, потому что WG – уже научились блокировать, а SS – достаточно устаревший протокол.

Таким образом, VLESS с XTLS-Reality являются самыми современными протоколами обфускации и шифрования. Вычислить которые сторонние инструменты не смогут ещё ближайшие пару лет.

Плюс ко всему, после установки графической панели 3X-UI на сервере также можно будет настроить такие протоколы VPN, как: VMESS, Trojan, Shadowsocks-2022, Transparent Proxy, Dokodemo-Door и Socks.

Окей, давайте приступим к установке и настройке сервера.

Пункт 1. Про VPS/VDS сервер

*Данный этап можно пропустить, если у вас уже есть VPS/VDS сервер. Например, на который ранее был установлен OpenVPN или WireGuard, и которые впоследствии перестали работать из-за блокировки протоколов.

Если, всё-таки, у вас нет своего VPS/VDS сервера, то я рекомендую вам арендовать его у хостинг-провайдера Aeza.

Почему? — (спросите вы) — потому что я сам ещё ни разу не пожалел, когда однажды наткнулся на этого хостинга и с тех пор регулярно пользуюсь их услугами. Конечно, пару раз у них были технические неполадки — но это бывает у всех. Кстати, спасибо поддержке в части оперативного решения этих проблем:)

Говоря о том, что нам там предлагают под наши цели — это виртуальные VPS сервера, расположенные в странах европы, России и США. С реальной скоростью соединения с сервером примерно 500 мбит/с и безлимитным трафиком (что очень важно для VPN сервера) .

Итак, если вы, всё-таки решили арендовать сервер у Аезы, а не пошли писать гневные комментарии под моим постом этому поводу, то алгоритм действий такой:

1. Для начала вам нужно перейти по этой ссылке, зарегистрироваться и перейти в личный кабинет.

Обратите внимание! С 24 октября внутренней валютой сервиса стал Евро.Оплату точно также можно осуществлять в рублях, например, через СБП (комиссия 1%). И все рубли будут автоматически конвертироваться в евро по актуальному курсу ~100 руб.

2. Далее, нажмите на Виртуальный сервер, выберите нужную страну, тариф Shared и минимальную конфигурацию сервера.

3. На наш сервер нужно установить операционную систему Ubuntu 20.04— её и выберите. Отключите бекапы — тут они не нужны (в случае чего всё можно быстро переустановить) . Выберите период оплаты и, собственно, оплатите аренду.

Кстати, после регистрации по моей реферальной ссылке у вас в течении 24 часов будет бонус 15% к пополнению баланса.

Минуты 2-3 сервер будет активироваться и после на почту придут данные для авторизации для подключения к серверу. Либо, ip-адрес и пароль можно будет посмотреть в разделе мои услуги и нажать на название вашего сервера.

Пункт 2. Подключение к серверу по SSH и установка графической панели 3X-UI

1. Откройте командную строку (Windows) или терминал (MacOS) и введите следующую команду:

ssh root@ip_adress

где ip_adress — ip_адрес вашего сервера.

Если что, по SSH можно подключиться ещё в Linux и даже с Android устройства через программу JuiceSSH.

2. У вас спросят "Are you sure you want to continue connecting(yes/no/[fingerprint]) ? " — ответьте yes.

3. Введите пароль от сервера, который вам пришёл на почту. При вводе пароль не будет отображаться, поэтому лучше скопировать и вставить с помощью сочетаний клавиш: Cntl+V (Windows) или Command+V (MacOS)

4. Первым делом, необходимо обновить компоненты операционной системы Ubuntu до последней версии. Для этого введите следующую команду:

apt update && apt upgrade -y

5. Теперь установим Curl — эта утилита нужна для загрузки файлов и пакетов в терминале. Сделаем это с помощью этой команды:

apt install curl -y

6. И, неожиданно, сразу же установим панель 3X-UI. Мы это будем делать напрямую в ОС с помощью скрипта из официального репозитория на GitHub:

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

Этот скрипт можно использовать и для первоначальной установки и для обновления версии графической панели. Каждый раз используется последняя актуальная версия.

7. После завершения установки вам у вас спросят: Хотите ли вы внести дополнительные модификации — ответьте Y (да)

Вводим username - Любой какой вам нравится — я введу Revelix.

Вводим password — Любой более-менее надёжный и запомните его — тут я тоже введу Revelix (Если что, запомните регистр, если также будете вводить)

И наконец, вводим порт, через который будет работать панель 3X-UI. Лучше всего где-нибудь в верхнем конце диапазона, до 65535. Я введу 5580.

8. Готово! Графическая панель 3X-UI установлена на ваш сервер!

Пункт 3. Защита сервера

1. Для защиты нашей системы установим программу fail2ban — она нужна для блокировки IP-адресов при превышении количества попыток совершения какого-либо действия, например, неудачного ввода SSH-пароля.

Введите эту команду:

apt install fail2ban -y && systemctl start fail2ban && systemctl enable fail2ban

2. Теперь, чтоб ещё лучше защитить свой сервер от несакционированно проникновения третьих лиц (или ботов) добавим нового пользователя с правами Root, а после чего отключим учётную запись root.

adduser user

где user - замените на своё имя пользователя. Я создам пользователя с названием Revelix.

3. Введите пароль для своей новой учётной записи. Лучше всего придумайте его с сочетанием верхнего регистра, нижнего регистра и цифр.

4. Далее вам будет предложено ввести информацию о вашем новом пользователе. Вы можете оставить их пустыми:

5. Добавьте новую учетную запись в группу sudo, введя:

usermod -aG sudo user

где user — также замените на своё ранее созданное имя пользователя.

6. Переключитесь на новую учётную запись с помощью команды:

su - user

где user — ваше новое имя пользователя.

7. Теперь заблокируем вход пользователя root по SSH. Для этого нужно отредактировать файл /etc/ssh/sshd_config

sudo nano /etc/ssh/sshd_config

Введите ранее созданный пароль для этой учётной записи и нажмите Enter.

8. Затем, найдите (перемещайтесь с помощью стрелок на клавиатуре) директиву PermitRootLogin и при необходимости раскомментируйте (если она закомментирована)

Установите её значение равным no, как показано на скриншоте ниже:

После ввода изменений нажмите сочетание клавиш Cnrl + X, подвердите сохранение: Y

А тут просто нажмите Enter:

9. Как только вы закончите, сохраните и закройте файл. У вас должна появиться командная строка.

Затем перезапустите службу sshd, чтобы применить последние изменения в конфигурациях.

sudo service sshd restart

10. После этого можете попробовать подключиться через ssh root@ip-адрес, но у вас ничего не получится.

Поэтому, теперь вам можно будет подключится к серверу только с помощью новой учётной записи, так же в формате: ssh user@ip-адрес, где user — ваше ранее созданное имя пользователя, а ip_adress — ip-адрес вашего сервера.

Пункт 4. Создание протоколов в графической панели 3X-UI

1. Чтобы войти в веб версию панели, в браузере идём по адресу:

http://xxx.xxx.xxx.xxx:PORT/panel/

где xxx.xxx.xxx.xxx — IP-адрес вашего сервера, а PORT - номер вашего порта. В моём случае это порт 5580.

Обратите внимание, протокол http://, а не https://

2. Если вы всё сделали правильно, перед вами откроется окно ввода. Введите здесь Логин и пароль, который вы создали через командную строку.

3. Логинимся и видим вот такую красивую панель управления 3X-UI

4. Нажимаем на раздел Подключения, далее Добавить подключение.

5. И переходим к настройке VLESS с XTLS-Reality. Сделайте всё так, как я написал ниже и показал на скриншоте.

  • Примечание — любое название
  • Протоколvless
  • Порт IP — оставляем пустым
  • Порт — вместо рандомного ставим 443

6. Далее переходим к настройкам Клиента.

  • Email - Напишите название клиента. У меня это Revelix.
  • Flow — надо выбрать xtls-rprx-vision. И, обратите внимание, поле Flow (см. скриншот) появится только после того, как чуть ниже вы поставите галочку на пункте Reality

7. Далее настроим транспорт.

  • Протокол передачи: TCP
  • AcceptProxyProtocol, HTTP Маскировка, Transparent Proxy, TLS — всё это должно быть выключено
  • xVer — оставьте значение 0
  • Reality — должно быть включено
  • XTLS — наоборот, должно быть выключено. Возможно тут вам стало не понятно, так как Reality тоже относится к XTLS. Но, здесь под XTLS подразумеваются только устаревшие версии протокола. А переключатели XTLS и Reality в панели являются взаимоисключающими.
  • uTLS — тут надо выбрать то, под какой браузер будет маскироваться наше VPN соединение. Но, можете выбрать chrome - так будет лучше всего.
  • Домен — на самом деле это адрес для подключения к вашему серверу. Оставьте пустым, и тогда туда автоматически подставится IP-адрес сервера.
  • Dest — это destination, то есть «назначение» — тут указываем домен и порт для переадресации google.com:443
  • Server names — это домен, под который вы будете маскироваться. Меням на google.com, www.google.com
  • ShortIds — это приватный ключ, сгенерируется автоматически.
  • Public Key, Private Key — нажмите на кнопку Get new keys, и ключи сгенерируются автоматически.
  • Sniffing, HTTP, TLS, QUIC, fakedns — оставьте включённым.

8. После того, как всё правильно сделали по инструкции, сравнили с моими скриншотами — нажимайтете кнопку Создать. Ивсё, настройка завершена!

По итогу имеем вот такую картину:

9. Если нажать на меню, то можно изменить, добавить одного или нескольких пользователей, сбросить трафик, экспортировать ключи и т. д.

10. Перед подключением устройств, которые будут использовать VPN соединение с сервером. Рекомендую вам зайти в настройки панели и поменять пароль, если он у вас не слишком сложный. А лучше всего включить ещё и секретный токен для максимальной безопасности(только не забудьте его сохранить в надёжном месте!)

Ну и плюс, сейчас, или после окончательной настройки можете покопаться в настройках, особенно в разделе Конфигурация Xray.

Пункт 5. Подключение клиентов

Чтобы долго не искать, выберите своё устройство, на котором вы хотите настроить VPN подключение:

Вариант 1. Подключение устройств на iOS (но не ниже 16 версии)

1. Скачайте приложение FoXray из AppStore по ссылке ниже:

FoXray

2. В графической панели 3X-UI создайте нового клиента. Для этого: нажмите на кнопку Меню в ранее созданной конфигурации, далее Добавить пользователя. В поле Email напишите название клиента, например "Мой iPhone", а в пункте Flow выберите xtls-rprx-vision.

3. Раскройте (плюсиком) список клиентов и под «Меню» рядом с только что созданным клиентом «Мой iPhone» нажмите на иконку QR-кода.

4. Запустите приложение FoXray и в левом верхнем углу нажмите значок сканирования QR-кода и отсканируйте его с экрана компьютера.

5. Всё, профиль добавлен! Теперь нажмите на кнопку «Play», далее разрешите добавление конфигурации VPN, введите пароль и можете пользоваться VPN соединением.

Вариант 2. Подключение устройств на Android.

1. Скачайте приложение NekoBox c GitHub по этой ссылке (там будет самая актуальная версия, останется только выбрать архитектуру вашего процессора, но скорее всего это arm64-v8a — самая верхняя строчка)

2. В графической панели 3X-UI создайте нового клиента. Для этого: нажмите на кнопку Меню в ранее созданной конфигурации, далее Добавить пользователя. В поле Email напишите название клиента, например "Мой Android", а в пункте Flow выберите xtls-rprx-vision.

3. Раскройте (плюсиком) список клиентов и под «Меню» рядом с только что созданным клиентом «Мой Android» нажмите на иконку QR-кода.

4. Установите Apk файл (ранее скаченный с GitHub) и запустите приложение NekoBox и в правом верхнем углу нажмите на иконку добавления нового подключения.

5. Далее нажмите на Отсканировать QR-код и отсканируйте QR-код, который мы только что создали в графической панели. В списке профилей у вас должен появиться новый профиль.

6. Для активации VPN подключения нажмите на соответствующую кнопку на главном экране NekoBox и подтвердите подключение.

Вариант 3. Подключение устройств на MacOS

1. Скачайте приложение FoXray из AppStore по ссылке ниже:

FoXray

2. В графической панели 3X-UI создайте нового клиента. Для этого: нажмите на кнопку Меню в ранее созданной конфигурации, далее Добавить пользователя. В поле Email напишите название клиента, например "Мой MacBook", а в пункте Flow выберите xtls-rprx-vision.

3. Раскройте (плюсиком) список клиентов и под «Меню« рядом с только что созданным клиентом »Мой MacBook» нажмите на иконку Информация.

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

5. Запустите приложение FoXray и нажмите на иконку вставки текста.

6. Готово, профиль добавлен! Теперь нажмите на кнопку "Play", далее разрешите добавление конфигурации VPN и можете пользоваться VPN соединением.

Вариант 4. Подключение устройств на Windows

1. Скачайте архив с программой Invisible Man XRay c GitHub по этой ссылке и распакуйте его (скачается сразу актуальная версия на момент написания этого поста, а вот по этой ссылке можете уже сами выбрать нужную вам версию и скачать её)

2. В графической панели 3X-UI создайте нового клиента. Для этого: нажмите на кнопку Меню в ранее созданной конфигурации, далее Добавить пользователя. В поле Email напишите название клиента, например "Мой Windows", а в пункте Flow выберите xtls-rprx-vision.

3. Раскройте (плюсиком) список клиентов и под «Меню", рядом с только что созданным клиентом "Мой Windows» и нажмите на иконку Информация.

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

5. Отправьте любым удобным способом данную ссылку на ваш компьютер, и там также её скопируйте.

6. Запустите программу Invisible Man XRay и перейдите в Manage server configuration.

7. Нажмите на кнопку "плюс" в правом нижнем углу окна.

8. Выберите Import from link и вставьте вашу ссылку, которую вы ранее скопировали в поле.

9. Если вы всё правильно сделали, должна добавиться новая конфигурция. Закройте этот менеджер и нажмите кнопку Run.

10. Готово! VPN на компьютере под управлением операционной системы Windows мы тоже настроили без проблем.

Пункт 6. Тесты скорости

Скорость на скачивание 450 мбит/с, а на загрузку 280 мбит/с - думаю, это очень даже хороший результат, учитывая уровень шифрования и маскировки прокси-трафика.

Пункт 7. Заключение

Если вам понравился мой гайд — ставьте лайк под этим постом и пишите комментарии — буду очень рад услышать ваше мнение. Спасибо!

Всем удачи в настройке!