Личный VPN: юзер ликует, VLESS смеётся, а РКН плачет
- вторник, 17 декабря 2024 г. в 00:00:07
Эта статья — расширенный туториал того, как установить и настроить свой VPN на VLESS с XTLS-Reality с управлением через GUI интерфейс 3x-UI всего за 10 минут.
Особенность VLESS-Reality в том, что: берутся HTTPS-пакеты, и пускаются через наш заранее подготовленный зарубежный сервер (VPS), как через прокси. Однако, стоит учесть, что обращаться к нему мы будем как к какому-нибудь www.google.com
, но в стандартной процедуре хэндшейка выполняем скрытую процедуру авторизации - благодаря чему сервер поймёт, что мы его слон.
А если кто-то (читаем как РКН) попытается обратиться к нашему «сайту» без авторизации (атака именуемая как Active Probing) то в ответ лишь получит копию www.google.com
со всеми необходимыми сертификатами. РКН подумает, что наш сервер - это просто сервер Google, a никакой не VPN, и ничего блокировать не будет.
— Кроме того, поскольку HTTPS-пакеты, которые будут пропущены через прокси, уже зашифрованы, в дополнительном шифровании не нуждаются, и никакой deep package inspection т.е DPI соответственно нас ни в чём не заподозрит.
некоторые начнут задаваться вопросом, а почему не AmneziaWG или известный из поднебесья ShadowSocks, а потому что во время масштабных блокировок под нож может пойти всё, что не HTTPS.
Суть Reality в маскировке под какой-либо популярный сайт, поэтому когда вы решаете это делать, вам нужно добиться того, чтобы ваш IP (IP вашего VPS) вел себя полностью идентично настоящему серверу, которым вы прикидываетесь. Если тот "настоящий" сервер слушает на 80-м порту (plain HTTP), то вам тоже нужно настроить nginx или правило фаервола, чтобы переадресовывать HTTP-запросы на оригинальный сервер. Если "настоящий" сервер не слушает SSH-подключения на стандартном 22-м порту, то ваш тоже не должен.
— Если ваш хостер предоставляет reverse-DNS записи для IP-адреса, убедитесь, что там не осталось значение по умолчанию (обычно с доменом хостера), а лучше задайте такой reverse-DNS, какой виден у IP-адреса ресурса, под который вы маскируетесь.
Правда ли что VLESS не использует шифрование, и поэтому использовать его небезопасно для конфиденциальных данных.
Нет. То, что VLESS не предусматривает шифрования на уровне протокола, не значит, что данные передаются в нешифрованном виде. VLESS всегда работает поверх TLS, трафик шифруется именно механизмами TLS, а не самого VLESS. Никакой проблемы с безопасностью тут нет, все секьюрно.
Что лучше XTLS-Reality, или просто VLESS + XTLS-Vision?
Преимуществ XTLS-Reality два. Во-первых это простота настройки, не надо никаких доменов, сертификатов, и т.д. Во-вторых, из-за возможности маскировки под любой популярный сайт, с его помощью можно пролезать через белые списки цензоров - например, в Иране долгое время блочили/резали все по малейшему подозрению, но yahoo.com у них был в белых списках, и прокси, маскирующиеся под него работали.
А теперь приступим к установке и минимальной настройке VPN своими руками.
Есть масса хостингов, некоторые дешевле, но в этом материале разберём установку на aeza.net, его плюсами являются: пополнение по СБП; РФ картами всех мастей; установка сервера c 3x-UI в пару кликов и небольшая настройка пресета по ключам.
Первым делом необходимо зарегистрироваться (данные для входа продублируются на почту) и войти в панель управления, после чего, пополняем баланс удобными для вас способами, для граждан РФ все условия соблюдены, как и писал ранее пополнение по СБП; РФ картами всех мастей;
Далее в колонке под логотипом aeza выбираем «Виртуальный сервер» (речь о боковой панели) и с этого момента начинается настройка конфигурации нашего будущего сервера.
Название: не имеет значения, по желанию
Выбор локации: Амстердам
Выбор тарифа: Shared — тариф NLs-1
Выбор операционной системы и ПО: предустановленное ПО и ищем 3x-UI Ubuntu 22.04
Выбор периода оплаты и оформление заказа: я выставил помесячную оплату, мало ли, что с хостинг-провайдером станет.
Бэкапы: отключаем (в них нет необходимости под наши нужды)
После успешного оформления и оплаты сервера переходим в раздел «Мои услуги» (речь о боковой панели), далее кликаем по нашему названию сервера с флагом попадая на страницу с краткой сводкой о сервере:
На данном этапе нас интересует лишь IP-адрес; имя пользователя и пароль.
Постараюсь разобрать на трёх разных ОС параллельно, указывая для каждой какую команду и на каком этапе необходимо вводить.
Linux:
$ ssh username@ip-address -p 22
Где username — это логин администратора на сервере, а IP-address, соответственно, — ее IP-адрес.
Windows:
С некоторых пор подключаться через SSH из операционной системы Windows также стало можно через командную строку. Раньше для этого применялись сторонние приложения (вроде PuTTY или Cygwin и пр.), но в десятой версии ОС был добавлен встроенный OpenSSH клиент, который работает так же, как в Линукс.
Единственное отличие в том, что по умолчанию эта утилита отключена, и чтобы приступить к выполнению команд, необходимо установить ее в настройках.
Для этого совершите несколько шагов:
Откройте «Параметры» — «Приложения».
Выберите подпункт «Дополнительные компоненты».
Найдите в списке «Клиент OpenSSH» и нажмите «Установить». Если этой кнопки нет, значит, служба уже включена.
После установки перезагрузите компьютер.
Теперь нужно открыть командную строку. Можно найти ее через поиск или нажать Win+R, ввести в поле «cmd» и Enter. В этом случае процесс подключения по SSH в Windows и Linux будет идентичен.
Mac OS:
ssh username@ip-address -p 22
Итак, если в командной строке увидели «Welcome to Ubuntu 22.04.4 LTS (GNU/Linux 5.15.0-113-generic x86_64)» то вы на верном пути и всё хорошо складывается, далее вводим команду:
nano 3x-ui.txt
Перед нами появится три важных для нас строки: URL; Login; Password.
Лезем в браузер и вставляем в адресную строку свой ссылку, в моём случае это:
http://77.221.154.202:16068
Вводим логин и пароль, который мы получили благодаря команде nano 3x-ui.txt
и попадаем в панель управления, следующий шаг это создание ключа и настройка конфигурации.
Переходим в раздел «Подключения» — «Добавить подключение»
Примечание: наименование для более удобной идентификации ключей в панели управления (того стоит, в случае, если собираетесь раздать разные ключи)
Протокол: vless
Порт IP: оставляем пустым, как и на скриншоте выше
Порт: по умолчанию у вас будет выставлено определённое значение, его стираем и выставляем - 443
Ко вкладке «Клиент» вернёмся чуть позже, пока перейдём ниже:
Протокол передачи: TCP (всё, что ниже оставляем по умолчанию)
Безопасность: REALITY
xVer — оставьте значение 0;
uTLS— выбираем под какой браузер будет маскироваться VPN соединение. Рекомендую выбирать Chrome, ибо он наиболее популярен;
Dest — назначение, указываем домен и порт. Я оставил yahoo.com:443;
SNI — это домен, под который будем маскироваться. Ставим идентично пункту Dest yahoo.com, www.yahoo.com;
Short ID — приватный ключ сгенерированный автоматически;
Приватный ключ и Публичный ключ — не трогаем, стоит лишь нажать кнопку Get New Keys и ключи автоматически сгенерируются;
Sniffing, HTTP, TLS, QUIC, FAKEDNS — оставляем по умолчанию.
Настройка клиента:
Email: аналогично как и с примечанием, наименование для удобства;
Flow: выбираем из списка xtls-rprx-vision.
Остальное не трогаем, оставляем по умолчанию и кликаем на «Создать» (ключ готов)
Для удобства подключения с мобильных устройств жмём на «+» у клиента и перед нами появится иконка QR-кода, кликаем и сохраняем:
Для получения текстового ключа кликаем по значку «i»
Ключ готов, теперь необходимо определиться с клиентом для подключения, моя основная ОС — Mac OS, порекомендовать могу FoXray (для тех, у кого macOS 13.1 и новее) в случае если у вас более старые ОС, то рекомендую использовать V2Box; из клиентов на iOS советую поставить также FoXray, но есть и масса других клиентов.
Windows – InvisibleMan-XRay разворачиваем Assets и выбираем нужный zip х64 для 64 битных систем, x86 для 32 битных систем. Есть и другие клиенты постабильнее.
Android – NekoBox разворачиваем Assets и там будут apk. Выбираем arm64. На момент написания статьи последний назывался релиз: NB4A-1.3.1-arm64-v8a.ap