Глубокая инспекция пакетов (DPI) позволяет сети смотреть дальше адресов и портов и оценивать «форму» вашего трафика. У классических протоколов VPN узнаваемые рукопожатия, поэтому цензор может блокировать их, не расшифровав ни байта. Приватная конечная точка на вашем VPS обходит общие списки блокировки, а протокол, имитирующий обычный HTTPS, обходит отпечатки. Это руководство настраивает один такой протокол: VLESS с REALITY на Xray.
Как DPI распознаёт VPN
Цензоры опираются на три сигнала: фиксированные шаблоны рукопожатия (они есть и у OpenVPN, и у WireGuard), известные диапазоны IP-адресов коммерческих VPN-провайдеров и активное зондирование, когда цензор подключается к вашему серверу и проверяет, как тот отвечает. Чтобы протокол продержался, он должен пережить все три.
- Шаблоны рукопожатия: обходятся упаковкой трафика в настоящий сеанс TLS.
- Общие диапазоны IP: обходятся использованием сервера, которым пользуетесь только вы.
- Активное зондирование: обходится тем, что сервер ведёт себя как настоящий сайт для всех, у кого нет ключа.
Почему REALITY
REALITY заимствует рукопожатие TLS у настоящего популярного сайта. Зонд, не знающий вашего ключа, просто перенаправляется на этот сайт и видит обычный сертификат и страницу. Клиент, знающий ключ, получает прокси. У вас нет собственного сертификата, который можно пометить, и не нужно регистрировать домен.
Шаг 1: подготовьте сервер
Возьмите новый VPS с Ubuntu в локации с хорошим маршрутом до ваших пользователей и сначала выполните базовую защиту. Затем установите Xray официальным скриптом.
sudo apt update && sudo apt -y upgrade
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
xray x25519
Последняя команда выводит закрытый и открытый ключи. Закрытый ключ оставьте на сервере, а открытый передайте клиентам. Идентификатор пользователя создайте командой xray uuid.
Шаг 2: напишите конфигурацию Xray
Выберите сайт-маскировку, который поддерживает TLS 1.3 и HTTP/2 и доступен с вашего сервера. Впишите его имя хоста и в dest, и в serverNames.
{
"inbounds": [{
"port": 443,
"protocol": "vless",
"settings": {
"clients": [{ "id": "YOUR-UUID", "flow": "xtls-rprx-vision" }],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"dest": "example.org:443",
"serverNames": ["example.org"],
"privateKey": "YOUR-PRIVATE-KEY",
"shortIds": ["a1b2c3d4"]
}
}
}],
"outbounds": [{ "protocol": "freedom" }]
}
Сохраните файл как /usr/local/etc/xray/config.json, затем выполните sudo systemctl restart xray и проверьте systemctl status xray.
Шаг 3: откройте брандмауэр и подключитесь
sudo ufw allow OpenSSH
sudo ufw allow 443/tcp
sudo ufw enable
На клиенте укажите адрес сервера, порт 443, UUID, открытый ключ, short ID и то же имя сервера. REALITY поддерживают такие клиенты, как v2rayN, Nekoray, Streisand и Hiddify. Установите flow в xtls-rprx-vision, чтобы он совпадал с сервером.
Поддерживайте работоспособность
- Используйте один VPS на небольшую группу пользователей. Нагруженную конечную точку легче профилировать.
- Если сайт-маскировка становится недоступен с сервера, подключения прекращаются. Выберите стабильный сайт и при необходимости смените его.
- Обновляйте Xray; исправления протокола выходят часто.
- Не запускайте ничего другого на порту 443 того же IP.
Ни один инструмент не гарантирует доступ при любой цензуре. Тестируйте в той сети, которой будете реально пользоваться, и держите второй протокол про запас. Для более простого повседневного VPN см. WireGuard на вашем VPS, а для выбора между двумя классическими вариантами прочитайте WireGuard или OpenVPN.