Быстрый старт configuration Обновлено 6 sing-box

sing-box VLESS: какие поля нужны для импорта профиля

Разбираем поля профиля VLESS для sing-box: обязательные параметры outbound, transport, tls, настройки route, dns и TUN. Пошаговая диагностика и частые ошибки.

VLESSimportprofileJSONroutednstun
Содержание
КороткоДля импорта VLESS в sing-box нужны поля: server, server_port, uuid, tls, transport. Обязательно настроить route и dns, при необходимости TUN. Проверяйте конфигурацию командой sing-box check.

Что такое профиль VLESS и зачем импортировать его в sing-box

VLESS — это легковесный прокси-протокол, разработанный для эффективной передачи трафика. В отличие от многих других протоколов, он не встраивает шифрование на уровне приложения, а полагается на внешний транспорт (например, TLS). Это делает его гибким и быстрым. Чтобы использовать VLESS в sing-box, необходимо импортировать профиль — набор параметров подключения к удалённому серверу. Профиль может быть получен из подписки или создан вручную.

Профиль VLESS для sing-box — это часть JSON-конфигурации, которая описывает outbound (исходящее подключение). В одном файле конфигурации может быть несколько outbound, но для импорта достаточно одного. Помимо outbound, понадобится настроить маршрутизацию и, при необходимости, TUN.

Обязательные поля для VLESS-подключения

Минимальный блок outbound для VLESS выглядит так:

{
  "type": "vless",
  "tag": "vless-out",
  "server": "your-server.example.com",
  "server_port": 443,
  "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Обязательными являются: type (всегда "vless"), server (адрес сервера), server_port (порт) и uuid (идентификатор пользователя). Без них подключение невозможно. Поле tag необходимо задать, чтобы ссылаться на outbound в правилах маршрутизации.

Обратите внимание: адрес сервера может быть доменом или IP-адресом. UUID — это стандартный UUID v4, который выдается вашим провайдером. Никогда не публикуйте его в открытых источниках.

Настройка транспорта для VLESS

Поле transport определяет, как именно пакеты будут доставляться до сервера. Чаще всего используется WebSocket (ws), gRPC или HTTP Upgrade. Для транспортного уровня могут потребоваться дополнительные параметры, например:

{
  "type": "ws",
  "path": "/secret-path",
  "headers": {
    "Host": "your-server.example.com"
  }
}

Значения path и Host должны точно совпадать с тем, что ожидает сервер. Если вы импортируете профиль из подписки, обычно все параметры уже указаны. Вручную нужно скопировать путь и заголовки из предоставленного конфигурационного файла.

Другие типы транспорта — grpc, httpupgrade, xhttp — доступны в зависимости от версии sing-box. Проверяйте актуальную документацию. При импорте убедитесь, что тип транспорта соответствует серверу.

TLS и безопасность

Для защиты соединения крайне желательно использовать TLS. В конфигурации это выглядит так:

{
  "tls": {
    "enabled": true,
    "server_name": "your-server.example.com",
    "insecure": false
  }
}

Параметр server_name (SNI) должен совпадать с именем сертификата сервера. Если он не указан, sing-box может не установить соединение с сервером. Никогда не устанавливайте insecure в true на доверенных сетях, так как это отключает проверку цепочки сертификатов.

Некоторые серверы используют дополнительные параметры TLS, например alpn (список протоколов). Они тоже должны быть указаны в профиле. Если вы не уверены, оставьте пустым.

Маршрутизация и DNS для корректной работы

Один только outbound не заставит устройство использовать прокси. Необходимо настроить правила маршрутизации (route), которые определяют, какие адреса направлять в VLESS. Пример простой конфигурации route:

{
  "route": {
    "rules": [
      {
        "outbound": "vless-out",
        "domain_suffix": [".com", ".net"]
      }
    ]
  }
}

Здесь весь трафик на домены .com и .net пойдет через VLESS. В реальных профилях используются более сложные правила: geoip, geosite, IP-диапазоны и т.д. Правила можно копировать из стандартных конфигураций sing-box.

Для того чтобы DNS-запросы также обрабатывались правильно, добавьте блок dns:

{
  "dns": {
    "servers": [
      {
        "tag": "remote",
        "address": "https://8.8.8.8/dns-query"
      }
    ],
    "rules": [
      {
        "outbound": "any",
        "server": "remote"
      }
    ]
  }
}

Тип DNS-сервера может быть https, tls, udp и другие. Важно, чтобы DNS-запросы для сайтов, доступных через прокси, обрабатывались именно этим блоком.

Включаем TUN-режим

TUN (сетевой туннель) позволяет захватывать весь трафик на уровне ядра, даже если приложение не поддерживает прокси. Включить его можно так:

{
  "tun": {
    "enabled": true,
    "stack": "system",
    "auto_route": true,
    "strict_route": true
  }
}

Параметр stack может быть system, gvisor или mixed. auto_route автоматически добавляет маршрут для всего трафика, а strict_route активирует более агрессивную маршрутизацию. Без включённого TUN некоторые приложения могут игнорировать прокси. Но для использования TUN требуется наличие прав администратора/root.

Если вы не планируете перехватывать весь трафик, можно ограничиться настройкой системного прокси. sing-box умеет «слушать» на локальном порту и передавать трафик в outbound. Для этого достаточно настроить inbound типа http или socks. Выбор между TUN и системным прокси зависит от ваших задач.

Разделение ролей: клиент, core, сеть и сервер

Чтобы понять, какие поля нужны для импорта, полезно разделить роли компонентов:

  • Клиент — это параметры outbound (тип, server, uuid, tls, transport). Они описывают, как устанавливать соединение с удалённым сервером.
  • Core (ядро) — это механизм маршрутизации и DNS. Блоки route и dns отвечают за то, какой трафик куда направлять.
  • Сеть — это настройки TUN или локальных inbound, которые принимают трафик от системы.
  • Сервер — это внешний VLESS-сервер, к которому подключается клиент. Он задаётся адресом, портом и UUID, но не входит в конфигурацию sing-box как отдельный блок.

Понимание этого разделения помогает при импорте профиля: нужно не просто скопировать outbound, а правильно вставить его в основной конфигурационный файл вместе с route, dns и inbound.

Диагностика импортированного профиля

После того как конфигурация собрана, необходимо её проверить. Выполните команду:

sing-box check -c config.json

Она проверит синтаксис и логику конфигурации. Если вывод пустой — ошибок нет. Затем запустите sing-box в фоновом режиме и посмотрите лог. Обычно все ошибки подключения видны в логах.

Если подключение не устанавливается, проверьте следующие элементы: доступность сервера через ping или nc; правильность UUID и port; соответствие transport и TLS параметров; актуальность версии sing-box (некоторые поля поддерживаются только в новых версиях).

Используйте режим дебага: sing-box run -c config.json -d для подробного логирования.

Частые ошибки и их решение

Наиболее распространённые проблемы при импорте VLESS-профиля связаны с невнимательностью к деталям. Вот типичные ошибки:

  • Не указан server_name в TLS — соединение обрывается. Всегда прописывайте SNI.
  • Не совпадает path в WebSocket — сервер отвечает 404. Сверяйте путь с подпиской.
  • Отсутствуют правила маршрутизации — трафик идёт напрямую, прокси не работает. Добавьте хотя бы одно правило.
  • Неправильный UUID — сервер отклоняет подключение. Проверяйте регистр символов.
  • Не совпадает версия sing-box — старые версии не поддерживают некоторые транспорты. Обновите sing-box.

Если ошибка не устраняется, перечитайте официальную документацию по VLESS и outbound. Также полезно сравнить без TLS (если сервер позволяет) для изоляции проблемы.

Проверено на практике

  • Дата проверки: 2025-02-20
  • Среда: документация sing-box
  • Версии: 1.11+

Мини-чеклист

  • Убедитесь, что у вас установлена актуальная версия sing-box
  • Получите UUID, адрес сервера и порт из профиля VLESS
  • Запишите параметры транспорта и TLS
  • Создайте файл config.json с outbounds, route и dns
  • Проверьте конфигурацию: sing-box check -c config.json
  • Запустите sing-box и проверьте подключение

Частые ошибки

  • Не указан server_name в tls, из-за чего не проходит рукопожатие
  • Ошибка в transport: не совпадают path и Host с сервером
  • Отсутствуют правила route, поэтому трафик не попадает в прокси
  • TUN включен, но не настроен DNS, и сайты не открываются

Источники и документация

FAQ

Обязательно ли указывать поле flow для VLESS?

Нет, поле flow необязательно. Оно используется для управления потоком, например, для xtls-rprx-vision, если сервер это поддерживает. По умолчанию это поле можно опустить.

Какие типы транспорта поддерживает VLESS в sing-box?

sing-box поддерживает множество транспортов: tcp, udp, ws, grpc, httpupgrade, xhttp. Конкретный тип должен совпадать с сервером.

Можно ли использовать VLESS без TLS?

Да, но небезопасно. Если сервер не требует TLS, можно отключить шифрование, но данные будут передаваться открыто. Рекомендуется включать TLS.

Хотите перейти сразу к рабочему доступу?

Если сценарий уже ясен и не хочется проходить все шаги вручную, оформите доступ и проверьте подключение на своем устройстве.

Получить доступ

Дальше по теме

Связанные статьи