Привет. Я хочу арендовать в другой стране сервер и...

Создано: 15 августа 2025 г.

Отвечено с использованием GPT-5 Thinking от Chat01

Вопрос

Привет. Я хочу арендовать в другой стране сервер и развернуть на нем VLESS VPN.
Найди всю информацию и дай подробную инструкцию с момента аренды сервера до подключения к этому серверу как клиент VPNа и с телефона и с компьютера. Распиши максимально подробную инструкцию, что бы справилась даже моя бабушка.

Мысль

Providing link instructions

While I couldn’t find an authoritative URL scheme doc, the community mentions using VLESS links like “vless://xxxxx.” To make it easier for the user, I’ll present both manual parameters and an example link. I'll also add a caution to manually input if the app doesn’t recognize the link.

I'll detail how to import links on different platforms too:

  • Android: v2rayNG (import from clipboard).
  • Windows/macOS: v2rayN & V2RayXS (macOS only).
  • iOS: Stash supports Reality (3.1 update) or V2Box (App Store).

Clarifying app support

To avoid misinformation, I'll recommend Shadowrocket (paid) for its support of multiple protocols. The app shows XTLS Vision logs, suggesting it supports Reality, though not explicitly listed. I’ll mention both Shadowrocket and V2Box as compatible with VLESS/XTLS/REALITY, citing their pages and the Xray-core docs for iOS/macOS.

Testing connectivity

For testing connectivity, I'll suggest checking logs with docker logs and using curl -vk --http2 on a decoy domain. However, since REALITY uses a special handshake, curl won't work for verification. Instead, I'll recommend testing port 443 with nc -zv, though that won't verify the handshake. I'll also mention a "Plan B" using Nginx if necessary and provide a link to alternative configurations.

Providing guidance

It’s better to avoid recommending WS since it’s outdated. Instead, I’ll suggest XTLS Vision for users with a real domain, linking them to the relevant documentation. To ensure understanding, I’ll keep it simple—ask if they have a domain or prefer proceeding without, all while respecting the complexity of the task.

Thought for 3m 50s

Ответ

Круто, что хочешь поднять свой VLESS-VPN! Скажу сразу простыми словами и «по кнопкам», чтобы справилась и бабушка 🙂
План такой: дам 2 маршрута — А: без домена (REALITY) и Б: с доменом (XTLS Vision). Начнём с самого простого и надёжного сегодня — Маршрут А. Если у тебя есть домен и хочешь вариант Б — он ниже.

Перед стартом один короткий вопрос (ответь после прохождения шагов 1–2): у тебя есть домен? Если нет — спокойно делай «Маршрут А».


Маршрут А (рекомендую): VLESS + TCP + REALITY (без домена)

Почему этот вариант
REALITY — это «замена TLS», которая маскирует трафик, не требуя покупки домена и настройки веб-сервера. Клиенту просто нужен публичный ключ и параметры «маскировки». Это убирает TLS-отпечатки сервера и часто устойчивее обычного TLS. Официальный пример конфигурации и пояснения — в репозитории Xray-examples (см. как выглядят поля serverNames, privateKey, shortIds и пр.). (Git - esin.io)

0) Что нужно заранее

  • VPS в любой стране (1 vCPU/1 ГБ RAM хватает). Любой провайдер с Ubuntu 22.04/24.04 LTS.
  • Компьютер (Windows/macOS/Linux) и/или телефон (Android/iOS).
  • Внимание к закону: используй VPN легально.

1) Подключаемся к серверу

Получив IP и пароль/ключ:

  • Windows: открой PowerShell → ssh root@IP_СЕРВЕРА
  • macOS/Linux: Терминал → ssh root@IP_СЕРВЕРА

(Пароль присылает хостинг или используешь свой SSH-ключ.)

2) Создаём обычного пользователя и обновляем систему

bash
adduser vpnuser usermod -aG sudo vpnuser su - vpnuser sudo apt update && sudo apt -y upgrade sudo timedatectl set-timezone UTC

3) Включаем файрвол

bash
sudo apt -y install ufw sudo ufw allow OpenSSH sudo ufw allow 443/tcp sudo ufw --force enable sudo ufw status

4) Ставим Docker (удобнее и чище)

Xray официально публикует образ на GitHub Container Registry. В нём конфиги лежат в /usr/local/etc/xray/, логи — /var/log/xray/. (xtls.github.io)

bash
sudo apt -y install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg \ | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" \ | sudo tee /etc/apt/sources.list.d/docker.list >/dev/null sudo apt update sudo apt -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin

5) Готовим каталог и генерируем ключи/UUID

bash
mkdir -p ~/xray && cd ~/xray # UUID для клиента: cat /proc/sys/kernel/random/uuid # Сгенерировать ключи REALITY (X25519) через контейнер: docker run --rm ghcr.io/xtls/xray-core xray x25519 # ВЫХОД: Private key: <...> Public key: <...>

(В референсной конфигурации Xray прямо указано, что id берём через xray uuid, а privateKey — через xray x25519.) (Git - esin.io)

Ещё нужно придумать:

  • shortId — 2–16 шестнадцатеричных символов (например a1b2c3d4e5f6a1b2). (Git - esin.io)
  • «Сайт-приманка» (SNI) — реальный крупный сайт, поддерживающий TLS 1.3 и HTTP/2 (например www.cloudflare.com / www.apple.com и т.п.). Это улучшает правдоподобие рукопожатия. (Git - esin.io)

6) Пишем конфиг Xray (REALITY inbound)

Создадим два файла: входы (inbounds) и выходы (outbounds).

05_inbounds.json

json
{ "inbounds": [ { "listen": "0.0.0.0", "port": 443, "protocol": "vless", "settings": { "clients": [ { "id": "ВСТАВЬ_ТВОЙ_UUID", "flow": "xtls-rprx-vision" } ], "decryption": "none" }, "streamSettings": { "network": "tcp", "security": "reality", "realitySettings": { "show": false, "dest": "www.cloudflare.com:443", "xver": 0, "serverNames": ["www.cloudflare.com"], "privateKey": "ВСТАВЬ_PRIVATE_KEY_ОТ_x25519", "shortIds": ["ВСТАВЬ_shortId_напр_a1b2c3d4e5f6a1b2"] } } } ] }

06_outbounds.json

json
{ "outbounds": [ { "protocol": "freedom", "tag": "direct" }, { "protocol": "blackhole", "tag": "blocked" } ] }

Формат и поля совпадают с примером из Xray-examples для VLESS-TCP-XTLS-Vision-REALITY (там же пояснения по serverNames, shortIds и т.д.). (Git - esin.io)

7) Docker Compose

docker-compose.yml

yaml
services: xray: image: ghcr.io/xtls/xray-core:latest container_name: xray restart: unless-stopped network_mode: host volumes: - ./05_inbounds.json:/usr/local/etc/xray/05_inbounds.json:ro - ./06_outbounds.json:/usr/local/etc/xray/06_outbounds.json:ro - ./logs:/var/log/xray

(Пути монтирования соответствуют структуре образа ghcr.io/xtls/xray-core из официальной документации.) (xtls.github.io)

Запускаем:

bash
docker compose up -d docker logs -f xray # смотрим, что без ошибок

Готово: сервер слушает 443/tcp и принимает VLESS через REALITY.


8) Создаём «волшебную ссылку» VLESS (удобно бабушке)

Многие клиенты умеют импорт по ссылке vless://…. Общепринятые параметры для REALITY:

text
vless://UUID@IP_СЕРВЕРА:443 ?security=reality &encryption=none &flow=xtls-rprx-vision &fp=chrome &pbk=ПУБЛИЧНЫЙ_КЛЮЧ_ОТ_x25519 &sid=ТВОЙ_shortId &sni=www.cloudflare.com &type=tcp #Мой_VLESS

Если какой-то клиент не поймёт ссылку — просто вбей эти поля вручную (они 1-в-1 совпадают с клиентской схемой из примера REALITY: serverName, publicKey, shortId, fingerprint=chrome, flow=xtls-rprx-vision). (Git - esin.io)


9) Подключаемся как клиент

ANDROID (проще всего)

v2rayNG (поддерживает Xray-ядро, VLESS, REALITY): ставим из GitHub Releases/Play, внутри нажимаем + → Import config from clipboard, вставляем ссылку vless://…, запускаем. (GitHub, Gist)

Альтернатива: Clash Meta / NapsternetV — тоже умеют REALITY и импорт по ссылке. (Gist)

WINDOWS (и Linux/macOS)

v2rayN — универсальный GUI-клиент для Windows, также есть сборки для Linux/macOS, поддерживает Xray/sing-box. В нём можно импортировать VLESS-ссылку из буфера обмена и подключиться. (GitHub, Gist)

iOS (iPhone/iPad)

Самые ходовые варианты:

  • Shadowrocket (платное в App Store). Поддерживает XTLS/Vision; Xray-core README перечисляет его среди клиентов, поддерживающих VLESS/XTLS/REALITY. Импортируешь VLESS-ссылку и включаешь. (Apple, GitHub)
  • V2Box (в App Store) — прямо на странице указана поддержка Reality (xray) и VLESS Vision. Открой → Add/Import → вставь свою VLESS-ссылку. (Apple)

(Также на официальной странице Xray перечислены GUI-клиенты для iOS/macOS и для macOS — V2RayXS, если хочешь нативно на Mac. (xtls.github.io))


10) Проверяем, что всё работает

  1. На телефоне/компьютере включи клиент.
  2. Открой в браузере https://ipinfo.io — должен показывать IP твоего сервера (или страны сервера).
  3. Если не работает:
    • Проверь docker logs -f xray — нет ли ошибок формата.
    • В файрволе открыт 443/tcp.
    • serverNames и sni совпадают (например www.cloudflare.com), pbk — публичный ключ от x25519, sid соответствует shortIds.
    • На клиенте Fingerprint = chrome и Flow = xtls-rprx-vision — как в примере. (Git - esin.io)

11) Обслуживание (по минимуму)

  • Смена UUID/shortId: просто заменяешь в 05_inbounds.json и перезапускаешь контейнер.
  • Обновление Xray: docker compose pull && docker compose up -d — получишь свежий образ.
  • Логи лежат в ~/xray/logs.
  • Хочешь усложнить маскировку — смотри другие варианты в Xray-examples, например Vision-only и пр. (GitHub)

Маршрут Б (если есть домен): VLESS + TCP + XTLS Vision

Если домен есть и хочешь именно «классический TLS с доменом», то ставят VLESS + TCP + XTLS Vision (очень устойчиво при корректной конфигурации; подробный README и рекомендации есть в Xray-examples). Дальше логика похожа: берёшь готовый пример, выпускаешь сертификат (обычно через Caddy/NGINX/Certbot), на клиенте задаёшь flow=xtls-rprx-vision. (GitHub)

Примечание: старый стек с WebSocket поверх TLS (WSS) в примерах теперь помечают как устаревающий; взамен добавлен XHTTP-Reality. Если увидишь «VLESS-TCP-TLS-WS», знай, что это уже deprecated в примерах. (Git - esin.io)


Туториалы/доки (на случай, если захочешь почитать первоисточники)

  • REALITY (пример и объяснение полей): Xray-examples — VLESS-TCP-XTLS-Vision-REALITY (включая клиентские поля serverName, publicKey, shortId, fingerprint=chrome). (Git - esin.io)
  • Документация по установке и docker-образам Xray (официально): структура образов, пути конфигов, список GUI-клиентов. (xtls.github.io)
  • Протокол VLESS (описание): Project X docs. (xtls.github.io)

Быстрый чек-лист (скажи, что получилось)

  1. Сервер запустился (docker compose up -d, порт 443 открыт)?
  2. Получилось импортировать VLESS-ссылку на телефоне/ПК и зайти на ipinfo.io с новым IP?
  3. Хочешь остаться на REALITY без домена или перейти на XTLS Vision с доменом?

Если хочешь, дальше могу:

  • Выдать готовые файлы 05_inbounds.json/docker-compose.yml с твоими значениями.
  • Дать мини-маршрут для Vision (с доменом) с командами по Certbot/Caddy.

Поделиться этим Q&A