~/admin
READING LOG_FILE: vless-websocket-cloudflare-proxy-setup.log

Ваш личный невидимый прокси: VLESS + WebSocket + Cloudflare за 20 минут

[ cd .. ] BACK TO LOGS
FILE_ID: 0x0001AUTHOR: ROOT
T-STAMP: 2026.07.06 09:46STATUS: VERIFIED
TAGS:[Linux][NGINX][X-Ray][VLESS][WebSocket]

Ваш личный «невидимый» прокси: VLESS + WebSocket + Cloudflare за 20 минут.

Привет, хакеры-любители и просто страдальцы от блокировок! Сегодня мы соберем такой прокси, что ваш провайдер будет думать, будто вы смотрите видео с котиками, а на самом деле вы будете сидеть в заблокированном Twitter и смотреть мемы. Никакой воды — только суть, пара полезных лайфхаков и, конечно, юмор, потому что без него в IT грустно.

Что получим на выходе:

Поехали!


Шаг 1: VPS – наш боевой конь

Берем любого VPS-провайдера (DigitalOcean, Vultr, Hetzner – не реклама). Система – Ubuntu 22.04 или 24.04 LTS (старые версии не юзаем, там могут быть танцы с бубном).

// code
ssh root@<IP-вашего-сервера>
# Пароль вводим, если по ключу – то без пароля

Сразу обновляем всё, что можно:

// code
apt update && apt upgrade -y
apt install curl wget unzip nginx -y

Настройка фаервола (UFW):
Открываем только самое необходимое – 22 (SSH), 80 (HTTP), 443 (HTTPS). Всё остальное глушим.

// code
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
ufw status

Увидите примерно такую красоту:

// code
Status: active
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere

Теперь наш сервер готов к приключениям.


Шаг 2: Cloudflare – маскировка и защита

Cloudflare будет стоять между пользователем и сервером, скрывая реальный IP. Заодно он умеет проксировать WebSocket – нам это и нужно.

  1. Заходим в dash.cloudflare.com, добавляем свой домен (меняем NS-записи у регистратора).
  2. Создаем A-запись: ваш_домен.com → IP VPS, обязательно включаем прокси (оранжевое облачко).
  3. В разделе SSL/TLS ставим режим Full (strict) – чтобы шифрование было от начала и до конца.
  4. Включаем Always Use HTTPS.
  5. В разделе Network проверяем, что WebSockets включены (по умолчанию они активны).
  6. Создаем Page Rule для секретного пути (например, /secret-ws/*):
    • URL: ваш_домен.com/secret-ws/*
    • Settings: Cache Level – Bypass, Security Level – Medium, WebSockets – On.

Этот путь будет использоваться только для прокси, а все остальные запросы пойдут на наш сайт-маскировку.

Сертификат:
Можно использовать бесплатный Let's Encrypt (позже установим) или сгенерировать Origin CA в Cloudflare. Я рекомендую Let's Encrypt – он проще и не требует постоянного обновления вручную.


Шаг 3: X-Ray – сердце нашего прокси

X-Ray – это форк V2Ray, который умеет VLESS и другие вкусности. Ставим одной командой:

// code
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install

(Обратите внимание: в PDF была опечатка – Xray- install – мы её исправили, не повторяйте чужих ошибок!)

Генерируем UUID для клиента:

// code
xray uuid
# Сохраните вывод, например: d342d11e-d424-4583-b36e-524ab1f0afa4

Теперь правим конфиг /usr/local/etc/xray/config.json. Останавливаем сервис перед редактированием:

// code
systemctl stop xray

Вставляем следующий исправленный и полный JSON:

// code
{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "port": 8443,
      "protocol": "vless",
      "settings": {
        "clients": [
          {
            "id": "ВАШ-UUID-сюда",
            "level": 0
          }
        ],
        "decryption": "none"
      },
      "streamSettings": {
        "network": "ws",
        "security": "tls",
        "wsSettings": {
          "path": "/secret-ws"
        },
        "tlsSettings": {
          "certificates": [
            {
              "certificateFile": "/etc/letsencrypt/live/ваш_домен.com/fullchain.pem",
              "keyFile": "/etc/letsencrypt/live/ваш_домен.com/privkey.pem"
            }
          ]
        }
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom"
    }
  ]
}

Важно:

Сохраняем, запускаем и включаем автозагрузку:

// code
systemctl start xray
systemctl enable xray
systemctl status xray   # должно быть active (running)

Шаг 4: Сертификат Let's Encrypt – чтобы всё было по-честному

Ставим certbot и получаем сертификат для нашего домена:

// code
apt install certbot python3-certbot-nginx -y
certbot --nginx -d ваш_домен.com

Следуем инструкциям (вводим почту, соглашаемся). После успеха certbot сам обновит конфиг NGINX и добавит пути к сертификатам.

Обновляем пути в config.json (если они отличаются от указанных выше) и перезапускаем X-Ray:

// code
systemctl restart xray

Шаг 5: NGINX – маскировка под реальный сайт

NGINX будет отдавать обычную HTML-страницу для всех, кто зайдет на ваш домен, и только по секретному пути /secret-ws проксировать трафик на X-Ray.

Создаем заглушку для сайта (чтобы не светить пустотой):

// code
mkdir -p /var/www/html
echo '<!DOCTYPE html><html><body><h1>Привет, это мой блог о котиках</h1><p>Здесь могла быть ваша реклама, но я проксирую трафик.</p></body></html>' > /var/www/html/index.html

Теперь редактируем конфиг /etc/nginx/sites-available/default (или создаем новый, но для простоты правим default). Вставляем такой конфиг:

// code
server {
    listen 80;
    server_name ваш_домен.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name ваш_домен.com;

    ssl_certificate /etc/letsencrypt/live/ваш_домен.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ваш_домен.com/privkey.pem;

    # Основной сайт-маскировка
    location / {
        root /var/www/html;
        index index.html;
        try_files $uri $uri/ =404;
    }

    # Прокси WebSocket на X-Ray
    location /secret-ws {
        proxy_pass http://127.0.0.1:8443;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 86400;
        proxy_send_timeout 86400;
    }
}

Проверяем синтаксис и перезагружаем NGINX:

// code
nginx -t
systemctl reload nginx

Теперь если открыть браузер и перейти на https://ваш_домен.com – увидите страницу с котиками. А если подключиться через клиент по пути /secret-ws – пойдет прокси-трафик.


Шаг 6: Клиент Nekoray – настраиваем за 2 минуты

Скачиваем Nekoray (есть для Windows, Linux, Android) с GitHub. Распаковываем, запускаем.

Добавляем новую конфигурацию:

Либо просто скопируйте готовую ссылку (подставьте свои данные):

// code
vless://<UUID>@ваш_домен.com:443?type=ws&path=%2Fsecret-ws%3Fed%3D2048&host=ваш_домен.com&security=tls#MyCloudflareProxy

Импортируйте её через Import from Clipboard.

Подключаемся – и вуаля! Проверяем свой IP на whatismyipaddress.com – должен быть IP Cloudflare, а не вашего VPS.


Шаг 7: Тесты и защита от блокировок

Дополнительные плюшки для защиты:

Пример фрагмента для inbounds:

// code
"fallbacks": [
  { "dest": 80, "xver": 0 }
]

Мониторинг логов:

Если видите ошибки вроде upstream timed out – увеличьте таймауты еще больше.


Заключение: что мы имеем?

Мы собрали полностью рабочий, обфусцированный прокси, который:

Провайдер видит лишь HTTPS-соединения на Cloudflare, а внутри – WebSocket-чат с вашим сервером. Никто не догадается, что вы смотрите запрещенный контент, а не котиков.

Пара советов напоследок:

На этом всё. Если что-то пошло не так – перечитайте инструкцию, скорее всего, забыли поставить запятую в JSON.

Удачи в обходе блокировок и помните: интернет должен быть свободным, а провайдеры – невнимательными! 🚀

[ EOF - END OF FILE ]