Привет. Я хочу арендовать в другой стране сервер и...
Создано: 15 августа 2025 г.
Отвечено с использованием GPT-5 Thinking от Chat01
Создано: 15 августа 2025 г.
Отвечено с использованием GPT-5 Thinking от Chat01
Привет. Я хочу арендовать в другой стране сервер и развернуть на нем VLESS VPN.
Найди всю информацию и дай подробную инструкцию с момента аренды сервера до подключения к этому серверу как клиент VPNа и с телефона и с компьютера. Распиши максимально подробную инструкцию, что бы справилась даже моя бабушка.
Круто, что хочешь поднять свой VLESS-VPN! Скажу сразу простыми словами и «по кнопкам», чтобы справилась и бабушка 🙂
План такой: дам 2 маршрута — А: без домена (REALITY) и Б: с доменом (XTLS Vision). Начнём с самого простого и надёжного сегодня — Маршрут А. Если у тебя есть домен и хочешь вариант Б — он ниже.
Перед стартом один короткий вопрос (ответь после прохождения шагов 1–2): у тебя есть домен? Если нет — спокойно делай «Маршрут А».
Почему этот вариант
REALITY — это «замена TLS», которая маскирует трафик, не требуя покупки домена и настройки веб-сервера. Клиенту просто нужен публичный ключ и параметры «маскировки». Это убирает TLS-отпечатки сервера и часто устойчивее обычного TLS. Официальный пример конфигурации и пояснения — в репозитории Xray-examples (см. как выглядят поля serverNames
, privateKey
, shortIds
и пр.). (Git - esin.io)
Получив IP и пароль/ключ:
ssh root@IP_СЕРВЕРА
ssh root@IP_СЕРВЕРА
(Пароль присылает хостинг или используешь свой SSH-ключ.)
bashadduser vpnuser usermod -aG sudo vpnuser su - vpnuser sudo apt update && sudo apt -y upgrade sudo timedatectl set-timezone UTC
bashsudo apt -y install ufw sudo ufw allow OpenSSH sudo ufw allow 443/tcp sudo ufw --force enable sudo ufw status
Xray официально публикует образ на GitHub Container Registry. В нём конфиги лежат в /usr/local/etc/xray/
, логи — /var/log/xray/
. (xtls.github.io)
bashsudo 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
bashmkdir -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)www.cloudflare.com
/ www.apple.com
и т.п.). Это улучшает правдоподобие рукопожатия. (Git - esin.io)Создадим два файла: входы (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)
docker-compose.yml
yamlservices: 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)
Запускаем:
bashdocker compose up -d docker logs -f xray # смотрим, что без ошибок
Готово: сервер слушает 443/tcp и принимает VLESS через REALITY.
Многие клиенты умеют импорт по ссылке vless://…
. Общепринятые параметры для REALITY:
textvless://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)
v2rayNG (поддерживает Xray-ядро, VLESS, REALITY): ставим из GitHub Releases/Play, внутри нажимаем + → Import config from clipboard, вставляем ссылку vless://…
, запускаем. (GitHub, Gist)
Альтернатива: Clash Meta / NapsternetV — тоже умеют REALITY и импорт по ссылке. (Gist)
v2rayN — универсальный GUI-клиент для Windows, также есть сборки для Linux/macOS, поддерживает Xray/sing-box. В нём можно импортировать VLESS-ссылку из буфера обмена и подключиться. (GitHub, Gist)
Самые ходовые варианты:
(Также на официальной странице Xray перечислены GUI-клиенты для iOS/macOS и для macOS — V2RayXS, если хочешь нативно на Mac. (xtls.github.io))
https://ipinfo.io
— должен показывать IP твоего сервера (или страны сервера).docker logs -f xray
— нет ли ошибок формата.serverNames
и sni
совпадают (например www.cloudflare.com
), pbk
— публичный ключ от x25519
, sid
соответствует shortIds
.05_inbounds.json
и перезапускаешь контейнер.docker compose pull && docker compose up -d
— получишь свежий образ.~/xray/logs
.Если домен есть и хочешь именно «классический 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)
VLESS-TCP-XTLS-Vision-REALITY
(включая клиентские поля serverName
, publicKey
, shortId
, fingerprint=chrome
). (Git - esin.io)docker compose up -d
, порт 443 открыт)?ipinfo.io
с новым IP?Если хочешь, дальше могу:
05_inbounds.json
/docker-compose.yml
с твоими значениями.