sing-box решает это через Reality, но официальная документация фрагментарна, и собрать рабочий конфиг с первого раза получается редко.sing-box: настройка сервера с нуля — полное руководство (VLESS + Reality)
Обновлено
Проблема
У вас есть свой VPS, но привычные протоколы вроде Shadowsocks или обычного VLESS уже распознаются и блокируются провайдером по DPI. Нужен современный сервер, который маскирует трафик под обычный HTTPS к реальному сайту и не выдаёт себя активным зондированием.
Что мы будем делать (обзор решения)
sing-box — это универсальное ядро (и сервер, и клиент), которое поддерживает VLESS, VMess, Trojan, Hysteria2, TUIC и, главное, Reality — технологию, при которой ваш сервер «прикрывается» TLS-сертификатом чужого популярного сайта (например, www.microsoft.com). Для стороннего наблюдателя и для активных зондов соединение неотличимо от честного захода на этот сайт. Ниже мы поднимем сервер с протоколом VLESS + Vision + Reality — это самая устойчивая к блокировкам связка на 2026 год. Понадобится VPS (Ubuntu/Debian) с root-доступом и 10–15 минут.Пошаговая инструкция
- Подготовьте сервер. Подключитесь по SSH и обновите систему:
apt update && apt upgrade -yЖелательно брать VPS за пределами зоны блокировок (Нидерланды, Германия, Финляндия) — но проверьте, что выбранная локация не отрезается вашим провайдером по IP. - Установите sing-box. Используйте официальный скрипт установки, который сам подберёт нужную сборку под архитектуру и подключит репозиторий:
bash <(curl -fsSL https://sing-box.app/install.sh)Проверьте версию (должна быть свежая, не ниже 1.8):sing-box version - Сгенерируйте ключи Reality и UUID. Reality использует пару ключей x25519, а VLESS — UUID для идентификации клиента:
sing-box generate reality-keypair sing-box generate uuid sing-box generate rand --base64 8Запишите:PrivateKeyиPublicKeyиз первой команды, UUID из второй и короткийshort_id(hex-строку) из третьей. PublicKey и short_id понадобятся в клиенте, PrivateKey — только на сервере. - Выберите сайт-прикрытие (SNI). Это должен быть существующий сайт с TLS 1.3 и HTTP/2, расположенный географически рядом с вашим VPS и не заблокированный у вас. Хорошие кандидаты:
www.microsoft.com,www.icloud.com,www.nvidia.com. Проверьте поддержку TLS 1.3:echo | openssl s_client -connect www.microsoft.com:443 -tls1_3 2>/dev/null | grep -i "TLSv1.3" - Создайте конфигурацию. Откройте файл
/etc/sing-box/config.jsonи впишите конфиг сервера, подставив свои значения (UUID, PrivateKey, short_id, SNI):{ "log": { "level": "info", "timestamp": true }, "inbounds": [ { "type": "vless", "tag": "vless-in", "listen": "::", "listen_port": 443, "users": [ { "uuid": "ВАШ-UUID", "flow": "xtls-rprx-vision" } ], "tls": { "enabled": true, "server_name": "www.microsoft.com", "reality": { "enabled": true, "handshake": { "server": "www.microsoft.com", "server_port": 443 }, "private_key": "ВАШ-PRIVATE-KEY", "short_id": ["ВАШ-SHORT-ID"] } } } ], "outbounds": [ { "type": "direct", "tag": "direct" } ] }Важно:server_nameиhandshake.serverдолжны совпадать с выбранным сайтом-прикрытием, аflowобязательно равенxtls-rprx-vision— без этого Reality работать не будет. - Проверьте синтаксис конфига. Это сэкономит время на отладке — sing-box укажет точную строку с ошибкой:
sing-box check -c /etc/sing-box/config.jsonКоманда должна завершиться без вывода (код 0). - Откройте порт в файрволе. Если используется
ufw:ufw allow 443/tcp ufw reloadНа некоторых провайдерах (Oracle, AWS) порт нужно дополнительно открыть в панели управления — в Security Group / Network ACL. - Запустите и включите автозапуск. Установочный скрипт уже создал unit для systemd:
systemctl enable --now sing-box systemctl status sing-box --no-pagerСтатус должен бытьactive (running). Если сервис падает — смотрите причину в логах:journalctl -u sing-box -e --no-pager - Соберите данные для клиента. Для подключения вам нужны: IP сервера, порт
443, UUID, flowxtls-rprx-vision, SNI (www.microsoft.com), PublicKey, short_id. Готовую ссылку можно собрать в формате:vless://UUID@IP:443?security=reality&flow=xtls-rprx-vision&sni=www.microsoft.com&pbk=PUBLIC-KEY&sid=SHORT-ID&type=tcp#MyServerИмпортируйте её в клиент (sing-box, v2rayN, NekoBox, Hiddify, Streisand на iOS). - Проверьте соединение. Подключитесь клиентом и убедитесь, что внешний IP сменился на серверный:
curl -s https://api.ipify.orgЕсли IP совпадает с VPS и сайты открываются — сервер настроен правильно.
Частые вопросы (FAQ)
Чем Reality лучше обычного TLS с собственным сертификатом?
Обычному VLESS+TLS нужен домен и валидный сертификат (Let's Encrypt), а сам сайт-заглушка на сервере выглядит подозрительно пустым. Reality не требует домена вообще: сервер на лету выполняет TLS-рукопожатие с настоящим чужим сайтом, поэтому активное зондирование видит легитимный сертификат microsoft.com, а не ваш самоподписанный.
Можно ли использовать порт, отличный от 443?
Технически да, но не нужно. Весь смысл маскировки под HTTPS пропадает, если трафик идёт на нестандартный порт — это само по себе аномалия для DPI. Оставляйте 443.
Сервис запустился, но клиент не подключается — что проверять?
В порядке убывания частоты: (1) порт 443 закрыт в облачной панели провайдера; (2)
flow в клиенте не совпадает с сервером (должен быть xtls-rprx-vision с обеих сторон); (3) опечатка в PublicKey/short_id; (4) выбранный SNI заблокирован у вас — поменяйте сайт-прикрытие. Логи сервера через journalctl -u sing-box -e почти всегда называют причину.Как добавить несколько пользователей?
Добавьте новые объекты с отдельными UUID в массив
users внутри inbound. Каждому выдайте свой UUID — это позволяет отзывать доступ индивидуально, не меняя ключи остальных.Похожие руководства
- Настройка клиента sing-box на Windows, macOS и Android
- VLESS Reality против Shadowsocks: что выбрать в 2026 году
- Как выбрать VPS для обхода блокировок и не попасть на чёрный IP
- Настройка Hysteria2 на сервере для нестабильных мобильных сетей
Канал Univista в Telegram
В канале — свежие рабочие конфиги, статус узлов и разбор частых проблем.
Перейти в каналПоделиться этим руководством
Уже подписались? Помощь — импорт и устранение неполадок.
Готовы к стабильному доступу в интернет?
ТарифыМатериал носит технический характер. Соблюдайте местные законы при использовании сетевых инструментов. Univista не отвечает за ваш сценарий использования.