VLESS на Ubuntu/Debian: пошаговый гайд Печать

  • vless, vpn, vps, цензура, обход блокировок, proxy, windows
  • 0

VLESS + WebSocket + TLS (через Nginx) — классическая схема под домен/сертификат, дружит с прокси/ CDN. Простая поддержка. Подходит «почти везде». 
VLESS + REALITY (TCP, Vision/uTLS) — современная схема без своего TLS-серта; «маскируется» под настоящий SNI/сайт, минимизирует фингерпринты. Требует правильной генерации ключей и параметров. 
Marzban — удобная веб-панель (Docker) для управления Xray-пользователями/тарифами/нодами, со скриптом «быстрой установки». Есть отдельный агент Marzban Node для рабочих нод. 


VLESS + WS + TLS (Nginx) — стабильный «классический» вариант

Ниже конфигурация на домен vless.example.net. Замените этот домен в одном месте командой (покажу), остальное — автогенерация.

1) База: обновления, UFW, нужные пакеты

sudo apt update && sudo apt -y upgrade
sudo apt install -y nginx certbot python3-certbot-nginx curl jq
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp comment 'SSH'
sudo ufw allow 80,443/tcp comment 'HTTP/HTTPS'
sudo ufw enable

2) Установка Xray-core (официальный инсталлер)

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

Скрипт ставит бинарник xray, юнит systemd и данные GeoIP/GeoSite. (Этот способ установки прямо рекомендуют и в доках Marzban как «Manual». )

3) Генерация параметров и конфиг Xray (WS+TLS)

# домен
DOMAIN=vless.example.net

# UUID для клиента
UUID=$(xray uuid)

# создаём конфиг Xray под WebSocket на 127.0.0.1:10000
sudo tee /usr/local/etc/xray/config.json >/dev/null <<'JSON'
{
"log": { "access": "/var/log/xray/access.log", "error": "/var/log/xray/error.log", "loglevel": "warning" },
"inbounds": [{
"tag": "vless-ws",
"listen": "127.0.0.1",
"port": 10000,
"protocol": "vless",
"settings": {
"clients": [ { "id": "REPLACE_UUID", "email": "default@local" } ],
"decryption": "none"
},
"streamSettings": {
"network": "ws",
"wsSettings": { "path": "/ws-vless" }
}
}],
"outbounds": [{ "protocol": "freedom" }]
}
JSON

# подставим ваш UUID
sudo sed -i "s/REPLACE_UUID/$UUID/" /usr/local/etc/xray/config.json

sudo systemctl enable --now xray
sudo systemctl status xray --no-pager

Nginx + Let’s Encrypt

# минимальный сайт на ваш домен
sudo tee /etc/nginx/sites-available/vless >/dev/null <<NGINX
server {
listen 80;
server_name vless.example.net;
root /var/www/html;
location /ws-vless {
proxy_http_version 1.1;
proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host \$host;
proxy_pass http://127.0.0.1:10000;
}
}
NGINX
sudo ln -s /etc/nginx/sites-available/vless /etc/nginx/sites-enabled/vless
sudo nginx -t && sudo systemctl reload nginx

# выпуск сертификата и автоконфиг HTTPS
sudo certbot --nginx -d vless.example.net --agree-tos -m [email protected] -n --redirect

5) Клиент: готовая ссылка VLESS

echo "vless://[email protected]:443?encryption=none&security=tls&type=ws&path=%2Fws-vless#VLESS-WS-TLS"

6) Проверка и логи

curl -I https://vless.example.net/ # должен отдать 200/301
sudo tail -f /var/log/xray/error.log /var/log/xray/access.log

 

VLESS + REALITY (Vision/uTLS) — современный «невидимый» вариант


REALITY не требует вашего TLS-серта; сервер «выглядит» как реальный SNI (напр., www.cloudflare.com). Алгоритм/параметры — строго по докам: генерим X25519-ключи и короткий ShortID. (Подробные объяснения и примеры конфигов REALITY — в Xray-examples/XTLS docs.  )

1) Генерируем ключи и UUID

KEYS=$(xray x25519)
PRIV=$(echo "$KEYS" | awk '/Private key/{print $3}')
PUB=$(echo "$KEYS" | awk '/Public key/{print $3}')
UUID=$(xray uuid)
SHORTID=$(tr -dc 'a-f0-9' </dev/urandom | head -c 16)

echo "PRIVATE=$PRIV"
echo "PUBLIC=$PUB"
echo "UUID=$UUID"
echo "SHORTID=$SHORTID"

2) Конфиг Xray (VLESS+REALITY на 443/TCP)

sudo tee /usr/local/etc/xray/config.json >/dev/null <<JSON
{
"log": { "access": "/var/log/xray/access.log", "error": "/var/log/xray/error.log", "loglevel": "warning" },
"inbounds": [{
"tag": "vless-reality",
"port": 443,
"listen": "0.0.0.0",
"protocol": "vless",
"settings": {
"clients": [ { "id": "REPLACE_UUID", "flow": "xtls-rprx-vision" } ],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"dest": "www.cloudflare.com:443",
"serverNames": [ "www.cloudflare.com" ],
"privateKey": "REPLACE_PRIVATE",
"shortIds": [ "REPLACE_SHORTID" ]
}
}
}],
"outbounds": [{ "protocol": "freedom" }]
}
JSON

sudo sed -i "s/REPLACE_UUID/$UUID/" /usr/local/etc/xray/config.json
sudo sed -i "s/REPLACE_PRIVATE/$PRIV/" /usr/local/etc/xray/config.json
sudo sed -i "s/REPLACE_SHORTID/$SHORTID/" /usr/local/etc/xray/config.json

sudo systemctl restart xray && sudo systemctl status xray --no-pager

3) Клиентская ссылка VLESS (REALITY)

echo "vless://[email protected]:443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=www.cloudflare.com&fp=chrome&pbk=$PUB&sid=$SHORTID&type=tcp#VLESS-REALITY"

Примечание: dest/serverNames берутся из реально существующего домена с TLS (в примере Cloudflare). Правила и пояснения — в документации и примерах REALITY.


Помог ли вам данный ответ?

« Назад

Powered by WHMCompleteSolution


База знаний