VPN
January 31

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

Данная статья разработана и подготовлена в телеграмм канале Крипто Парень. Подписывайся на мой телеграмм канал, там много полезной и интересной информации по криптовалютам.

Предлагаю вам услуги своего бота, по заправке газом в сети TRC20.

Информацию по использованию и аренде газа в сети TRC20 можно найти в моей группе TRON TRX SELL ENERGY

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 сервер

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

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

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

Возможность: Принимает к оплате карты МИР и СБП.

Цена: Нам понадобится сервер за 3 евро в месяц.

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

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

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

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

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


Минуты 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/install.sh)


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

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

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

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

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

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

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

1. Тут предлагаю настроить фаервол. Действуйте аккуратно, а то можете потерять доступ к VPS!

Введите в терминал эти команды:

apt install ufw -y
ufw default deny incoming
ufw default allow outgoing
ufw allow 443
ufw allow 5580 (порт от веб панели выше)
ufw allow Ваш_новый_SSH_порт
ufw enable

Этим мы закрыли все порты кроме 443(понадобится дальше), 5580 и порта SSH.

Если вы устанавливаете что-то другое, то вместо вместо 443 используйте нужный вам порт.

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

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

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


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

adduser user


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

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

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

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

usermod -aG sudo user


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

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

su — user


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

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

sudo nano /etc/ssh/sshd_config


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

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

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

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

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

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

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

sudo service sshd restart

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

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

12. Включим BBR

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

В теории это увеличить скорость соединения.

Пункт 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. Подключение клиентов


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

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


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 по ссылке

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. Заключение


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

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

Пункт 7. Дополнения!

1. WARP.

На выход можно подключить WARP прокси от cloudflare, чтобы не палить на ру ресурсах, адрес твоего VPS. Своего рода маскировка в маскировке.

Xray is the fullest-featured fork of v2ray. The killer features are support for UDP and its new “vision” flow. Here I will show how to combine the benefits of xray with running it behind cloudflare warp, but only for the websites you need it for.

Requirements: domain name already set up, a VPS like Amazon Lightsail, dns pointing to the static IP of the VPS, a few ports open including 443

To make things simple, I’ll assume Ubuntu 20 LTS since that’s what Lightsail has. We’ll install x-ui first

sudo apt-get update -y

wget https://raw.githubusercontent.com/FranzKafkaYu/x-ui/master/install_en.sh
sudo chmod +x install_en.sh
sudo ./install_en.sh

hit y
type in username
password
port number

Using Let’s Encrypt

sudo snap install --classic certbot

sudo certbot certonly --standalone --preferred-challenges http --agree-tos --email your@email -d your.domain

it will generate two files

/etc/letsencrypt/live/your.domain/fullchain.pem/etc/letsencrypt/live/your.domain/privkey.pem

to troubleshoot, run

nslookup your.domain

to see if you messed anything up (like having old IP addresses in there)

Then you can go to your.domain:port and log in with the credentials you created, click on settings and bookmark the resulting URL since it will make something like your.domain:port/blahblah as the new root

Click on inbound, add a new one with protocol vless, add a new user with protocol xtls-rprx-vision, check tls and put in the paths of the files where cert is the full path to the fullchain.pem file and the key is the full path to the privkey.pem file

Once that’s done, you should test that you can click on the inbound and scan the code to use xray on your device

How to add Cloudflare Warp to this setup

But some websites won’t like it if you use an AWS address. Fortunately, they don’t block Cloudflare Warp, so you can set up first connecting to xray and xray will forward whatever domain you want to Cloudflare warp to bypass restrictions. For example, ChatGPT blocks my Amazon IP, but won’t block my Cloudflare warp IP. So we’ll connect the same way, but route via domain names.

First let’s install it and set it up, in this exact order

curl https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg

echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ focal main' | sudo tee /etc/apt/sources.list.d/cloudflare-client.list

sudo apt update

sudo apt install cloudflare-warp

warp-cli register

warp-cli set-mode proxy

warp-cli set-proxy-port 10086

Only when we run it in proxy mode should we turn it on

warp-cli connect

then test that it works and you get a different IP:

url -4 ip.gs -x socks5://127.0.0.1:10086

Then go into the settings of x-ui to edit the template in Xray config

add this to outbounds (adding a comma to the previous item)

{
      "protocol": "socks",
      "settings": {
         "servers": [{
            "address": "127.0.0.1",
            "port": 10086
         }]
      },
      "tag": "warp"
}

add to routing rules (again, remembering to add a comma)

{
	"type": "field",
	"outboundTag": "warp",
	"domain": [
		"chat.openai.com"
	]
}

then save (it will tell you if you made a typo that has a syntax error) and restart the service

Now chatGPT will work even through a proxy!


2. Приложения клиентские.

Приложений много, они есть практически под все платформы, и они проверены временем.

Windows:

Android:

iOS:

macOS:

3. Настройка CDN CloudFlare

Переходим к последнему, самому интересному разделу.

Любое управление рисками сводится к трём шагам:

  • Определить риск (в данном случае, это риск, что рф-цензура заблокирует ваш сервер)
  • Минимизировать риск (вы это уже сделали, воплотив знания из "Теории ч3")
  • Определить План Б на тот редкий случай, если риск всё-же реализуется.
Хотя я не верю, что - с принятой предосторожностью - сервер вообще может быть когда-либо заблокирован, но обычно реальность не интересуется нашими верованиями.

Проксирование через CDN - это и есть "План Б". Сейчас вы настроите ещё одно, запасное соединение, которое будет работать, даже если ваш VPS станет недоступен изнутри РФ.

Шаг 1: Выберите продавца доменного имени и убедитесь что доменное имя свободно (см. Теория ч2), но НЕ ПОКУПАЙТЕ его пока. CloudFlare работает только с доменными именами второго уровня (есть исключения, но они нам не помогут). Доменное имя второго уровня — это имя с одной точкой, вроде

mypersonalsite.com

или

myhabraproxy.ru

Для этой инструкции я выбрал доменное имя

habraproxy.store

у продавца Dreamhost. Прямо сейчас dreamhost бесплатно раздаёт доменные имена.store на 1 год — но эта халява только для клиентов, которые в прошлом что‑то уже покупали.

Кстати, если у вас уже есть свой сайт с доменом...

Итак, продавец выбран, доменное имя выбрано но не куплено, идём дальше.

Шаг 2: Зарегистрируйтесь на CloudFlare.com (Sign Up — Тариф Free — Add Website — e‑mail+пароль). Сохраните пароль, подтвердите аккаунт по ссылке из письма.

Кажется дождь начинается

Шаг 3: Зайдите в CloudFlare, в верхнем разделе "Websites" добавьте ещё не купленное доменное имя. Далее - Тариф Free - Continue... пока наконец вы не попадёте на страницу "Change your nameservers" с двумя оранжевыми облаками.

Эти две строки нам понадобятся. Ваши строки могут отличаться от моих.

Мы пойдём другим путём

Шаг 4: Теперь смело покупайте ваше доменное имя, а во время покупки укажите, что будете использовать name-сервера свои, а не те что предлагает продавец. Впишите эти две строки и завершите покупку.

На скриншоте - сайт моего продавца.

Итак, вы купили домен и указали нужные неймсервера. Активация свежекупленного домена займёт несколько минут, самое время донастроить CloudFlare.

Шаг 6: В разделе DNS создайте A‑запись для вашего домена и IP вашего сервера. У меня это выглядит вот так:

Маскировка 80 Level

Шаг 7: В разделе Network включите "gRPC" (обойдусь без скриншота).

Мировое господство, "основанное на правилах"

Шаг 7: В разделе Rules->Origin Rules создайте два правила:

(1) Все запросы на сервер направляйте на порт 54321 (укажите порт, на котором работает ваша панель 3xui)

(2) Все запросы по секретному адресу

/my-gRPC-3049382

(придумайте что-то своё) направляйте на порт 2053

Последовательность этих двух правил важна.

Нажми на кнопку - получишь результат!

Шаг 8: Вернитесь на Overview, и если под оранжевыми облаками найдёте кнопку "Check nameservers now" - нажмите её, чтобы поторопить систему.

(если прошло много времени и там нет ни облаков, ни кнопки - вообще отлично, переходите к следующему шагу)

Цензура нервно курит в сторонке

Шаг 9: Создайте второе VLESS-подключение для CDN.

Вернитесь в панель 3X-UI. Inbound -Add Inbound

Самое важное:

- Порт - тот же, что и во "втором правиле". 2053 или любой другой на ваш выбор (но смысла менять его на другой не вижу).

- Transmission - gRPC, именно такой тип соединения безлимитен на CloudFlare.

- Service name - секретная строка из "второго правила"

my-gRPC-3049382

, но строго без "/" в начале.

- uTLS - именно Chrome, чтобы маскироваться под самый популярный браузер

- ALPN сделайте пустым.

- Кнопка (Get Сert from Panel) вписывает ключи.

- Allow Insecure - включайте на время тестирования, когда начнёте пользоваться CDN - можно будет выключить.

Наконец, проверяйте что получилось. Экспортируйте строку-ключ этого нового соединения и скопируйте её в приложение - прокси должен работать. (пока это не CDN, вы лишь подключились к своему VPS через порт 2053 по протоколу VLESS-gRPC, но скоро вместо вас это будет делать CloudFlare)

Шаг 10: Финальная настройка CloudFlare.

Каково это, быть избранным?

Обновите раздел Overview.

CloudFlare должен вас обрадовать сообщением: "Great news! Cludflare is now protecting your site"

Если этого сообщения нет, а вместо него - страница, на которой остались два оранжевых облака - значит одно из двух:

  • Нужно ещё немного подождать
  • Вы что-то сделали не так.

Доквантовая криптография, скриншот начала 21 века

Если всё так, тогда: в разделе SSL/TLS включите режим Full

Теперь вы точно завершили настройку CloudFlare.

Шаг 11: Проверка.

Откройте браузер и перейдите по адресуhttps://habraproxy.store/mysecreturl/(меняйте имя сайта на своё, и адрес страницы на свой - тот что установили для панели 3x-ui).

Откроется панель 3x-ui. Теперь управлять панелью вы будете с этого адреса!

Сохраните этот адрес где-нибудь.

Шаг 12: Ещё одна проверка.

Откройте браузер по адресуhttps://habraproxy.storeи убедитесь, что там пустая страница 404.

Это значит любой цензор, зайдя на ваш сайт, убедится: там есть настоящий веб-сервер. В качестве веб-сервера выступает сама панель 3x-ui, которая отдаёт 404 ошибку на любой неизвестный ей адрес. Никакой внешний наблюдатель не узнает адрес панели (
/secreturl/
). А если цензор послушает трафик, то увидит зашифрованный поток gRPC, который используется для обслуживания веб-приложений по всему интернету.

Шаг 13: Настало время МАГИИ:

Отредактируйте строку-ключ второго подключения:

  • Замените IP на доменное имя,
  • Замените порт на :443,
  • Удалите
allowInsecure=1
  • Отредактируйте имя (после
#
  • ) по своему желанию

Было:

vless://[email protected]:2053?type=grpc&serviceName=my-gRPC-3049382&security=tls&fp=chrome&alpn=&allowInsecure=1#My%20CDN-tjo1gifl

Стало:

vless://[email protected]:443?type=grpc&serviceName=my-gRPC-3049382&security=tls&fp=chrome&alpn=&#My%20CDN

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

Самое время процитировать @MiraclePtr:

Fair useПонятное дело, что то, что CDN разрешают на своих бесплатных тарифах проксировать Websockets и gRPC — это такой жест доброй воли от них. Давайте не наглеть и использовать эти возможности только в совсем безвыходных случаях, которые, надеюсь, все‑таки не наступят.

</КОНЕЦ ИНСТРУКЦИИ>

(только для параноиков с прямыми руками) Есть возможность полностью исключить риск MITM даже между VPS и CloudFlare. Для этого вместо генерации самоподписанных сертификатов нужно создать пару сертификат/ключ в CloudFlare→мойсайт→SSL/TLS→Origin Server, загрузить их в панель, перезагрузить её, а затем поменять шифрование Full на Full(strict).

3.Маршрутеризация

Айпи напрямую
geoip:ru

Домен напрямую
geosite:category-gov-ru,regexp:.*\.ru$

домен блок
geosite:category-ads-all,ext:geosite_IR.dat:category-ads-all

4. NEKOBOX

GeoIP из Nekobox (да и других клиентов) знает российские диапазоны, а вот GeoSite - уже нет, ага.

В итоге у меня работает вот такая настройка, GeoIP активируется стандартным образом в Nekobox:

После этого весь трафик до .ru-доменов и российских IP-адресов будет идти напрямую.

Если нужно заблокировать полностью - то в первом окне вместо Direct вставить в Block, а в JSON-коде исправить direct на block.

Защита VPS

1) Поставьте на сервер утилиту fail2ban (легко найти в Гугле и YouTube мануалы)

2) смените порт с 22 на любой более 10000 до 50000

3) поставьте этот скрипт защиты от перебора портов: тык