Решение проблем
Какой инструмент использовать
Заголовок раздела «Какой инструмент использовать»ДО УСТАНОВКИ → meridian check IP "Будет ли этот сервер работать с Meridian?" Проверяет: SNI доступность, порт 443, DNS, ОС, диск.
ПОСЛЕ УСТАНОВКИ, ЗДОРОВ ЛИ? → meridian check "Панель, узлы, ретрансляторы, порты и сертификаты в порядке?" Проверяет каждый сервер в флоте по ролям, по SSH.
ПОСЛЕ УСТАНОВКИ, НЕ МОГУ ПОДКЛЮЧИТЬСЯ → meridian test IP "Доступен ли прокси отсюда?" Проверяет: настроенные слушатели, TLS/SNI, каноническую подписку и прокси-трафик. SSH не нужен — запускается с клиентского устройства.
ПОСЛЕ УСТАНОВКИ, ПРОВЕРИТЬ ЭКСПОЗИЦИЮ → meridian test IP --probe "Раскрывает ли развёртывание прокси или интерфейс управления?" Проверяет: публичные порты, TLS/HTTP, пути, SNI, DNS и политику топологии. SSH не нужен — запускается с клиентского устройства.
ПОСЛЕ УСТАНОВКИ, ЧТО-ТО СЛОМАЛОСЬ → meridian doctor IP "Собрать всё для отладки." Собирает: ОС сервера, Docker, логи узла Remnawave и nginx, порты, фаервол, SNI, DNS.Добавьте --ai к check или doctor для готовой к AI диагностической подсказки.
Не может подключиться вообще
Заголовок раздела «Не может подключиться вообще»Порт 443 не доступен
Заголовок раздела «Порт 443 не доступен»Причины:
- Брандмауэр облачного провайдера / группа безопасности блокирует входящий порт 443
- ISP или сетевая блокировка IP-адреса сервера целиком
- Сервер не работает или прокси не запущен
- UFW на сервере не разрешает порт 443
Решения:
- Проверьте консоль облачного провайдера — убедитесь, что 443/TCP разрешен входящему трафику
- Попробуйте с другой сети (мобильные данные, другой Wi-Fi)
- Подключитесь к серверу по SSH и проверьте:
docker ps(запущены лиctlsvc-apiиnetagent?),systemctl status nginx,ss -tlnp sport = :443 - Проверьте UFW:
ufw status— должно показать 443/tcp ALLOW
TLS handshake не пройден
Заголовок раздела «TLS handshake не пройден»Причины:
- Xray не работает внутри Docker контейнера
- Порт 443 занят другим сервисом
- Целевой SNI Reality недоступен с сервера
Решения:
- Проверьте Xray:
meridian logs IP -c node -n 20 - Проверьте порт:
ss -tlnp sport = :443— должен быть nginx - Протестируйте SNI:
meridian check IP --sni HOST
Домен не доступен
Заголовок раздела «Домен не доступен»Причины:
- DNS не указывает на IP сервера
- nginx не работает или не получил TLS сертификат
- nginx не маршрутизирует домен SNI правильно
Решения:
- Проверьте DNS:
dig +short yourdomain.com @8.8.8.8 - Проверьте nginx:
systemctl status nginx - Проверьте конфигурацию nginx:
/etc/nginx/stream.d/meridian.conf
Соединение прерывается через несколько секунд
Заголовок раздела «Соединение прерывается через несколько секунд»Причины:
- Проблемы с MTU на сетевом пути
- ISP сбрасывает долгоживущие TLS сессии
Решения:
- Попробуйте другую сеть
- Используйте WSS/CDN подключение (режим домена)
Установка не удалась
Заголовок раздела «Установка не удалась»Конфликт порта 443
Заголовок раздела «Конфликт порта 443»Другой сервис (Apache, Nginx) использует порт 443. Остановите его или используйте чистый сервер. meridian check IP подскажет вам, что использует порт.
Docker установка не удалась
Заголовок раздела «Docker установка не удалась»Конфликтующие Docker пакеты из репозиториев дистрибутива. Meridian автоматически их удаляет, но если Docker уже работает с контейнерами, он пропускает для предотвращения сбоев.
Переименование панели останавливается при обновлении
Заголовок раздела «Переименование панели останавливается при обновлении»meridian apply переносит панель, развёрнутую бета-версией 4.0, из /opt/remnawave в /opt/ctlsvc. Прежде чем что-либо остановить, он отказывается продолжать, если существуют оба каталога или /opt/remnawave является точкой монтирования. Оставьте как /opt/ctlsvc тот каталог, в котором лежат data/ и .env панели (или смонтируйте том туда), уберите другой в сторону и снова запустите meridian apply. Переименование, прерванное на середине, продолжится при следующем apply.
Ошибки подключения SSH
Заголовок раздела «Ошибки подключения SSH»Протестируйте SSH вручную: ssh root@SERVER_IP. Убедитесь, что у вас есть доступ на основе ключей. Используйте флаг --user если не root. Если сервер принимает только пароль, запустите meridian deploy в терминале без --yes и позвольте ему установить ключ (см. Серверы только с паролем) или один раз выполните ssh-copy-id root@SERVER_IP.
Xray не запускается в контейнере узла
Заголовок раздела «Xray не запускается в контейнере узла»Проверьте контейнер: meridian logs IP -c node -n 50. Частые причины: порт на хосте уже занят (узел работает с network_mode: host, поэтому порты из cluster.yml должны быть свободны), панель недоступна (при запуске узлу нужен выданный панелью node_secret_key) или отсутствует разрешение Linux NET_ADMIN.
Решение: запустите meridian check IP и выполните предложенные исправления перед переразворачиванием. Чтобы проверить состояние панели Remnawave, откройте интерфейс администратора по адресу https://<IP>/<secret_path>/ и перейдите в Nodes: узел должен иметь статус connected. Команда meridian fleet status показывает те же сведения в CLI.
Недостаточно места на диске
Заголовок раздела «Недостаточно места на диске»Менее 2ГБ свободного места. Освободите место: docker system prune -af, journalctl --vacuum-time=1d, проверьте /var/log/.
DNS не разрешается (режим домена)
Заголовок раздела «DNS не разрешается (режим домена)»Сертификат для вашего домена может быть выдан только когда A-запись домена указывает на сервер (серое облако во время развёртывания). Обновите запись, дождитесь распространения (обычно 5–15 минут), затем запустите команду развёртывания снова. meridian check IP --domain DOMAIN проверяет это перед развёртыванием.
Было работающим, теперь остановилось
Заголовок раздела «Было работающим, теперь остановилось»Самая частая причина: IP-адрес сервера был заблокирован. Запустите meridian test IP: результаты разделяют сетевую доступность, TLS, подписку и выполнение прокси. Ошибка TCP также может означать облачный фаервол или выключенный сервер.
Подробные инструкции по восстановлению см. в Руководстве по восстановлению заблокированного IP.
Другие причины:
- Сервер перезагрузился и сервисы не запустились автоматически →
meridian planпоказывает, что выключено, аmeridian applyэто чинит. Вручную:docker compose up -dв/opt/ctlsvcи/opt/netagent, затемsystemctl restart nginx - Диск переполнен →
df -h /,docker system prune -af
Низкая скорость
Заголовок раздела «Низкая скорость»- Выберите сервер географически ближе (Финляндия, Нидерланды, Швеция для Европы/Ближнего Востока)
- Проверьте нагрузку на сервер:
htopилиuptime - Попробуйте WSS/CDN ссылку — может иметь лучшую маршрутизацию через Cloudflare
- Проверьте, включен ли BBR:
sysctl net.ipv4.tcp_congestion_control
НЕ запускайте другие протоколы (OpenVPN, WireGuard) на том же сервере — это помечает IP.
AI-усиленная помощь
Заголовок раздела «AI-усиленная помощь»meridian doctor --aiКопирует диагностическую подсказку в буфер обмена для использования с любым AI ассистентом.
Или соберите диагностику для GitHub issue:
meridian doctorРелейный узел не работает
Заголовок раздела «Релейный узел не работает»Проблемы, связанные с релейными узлами, см. в разделе Руководство релейных узлов — Решение проблем.
Для V4-цепочки relay check намеренно недоступен: проверяйте клиентский маршрут через meridian test. В fleet status доступный relay означает только успешное TCP-соединение с публичным listener; внутренние hop’ы остаются unknown и могут дать общий код 3.
Интерпретация вывода предварительной проверки
Заголовок раздела «Интерпретация вывода предварительной проверки»| Проверка | Что проверяет | Если не прошла |
|---|---|---|
| Доступность SNI-цели | Может ли сервер достичь сайт маскировки? | Исходящий трафик сервера ограничен. Попробуйте другой SNI с --sni |
| Доступность порта 443 | Свободен ли порт 443 или используется Meridian? | Другой сервис на 443. Остановите его или используйте чистый сервер |
| Внешняя доступность порта 443 | Может ли внешний мир достичь порта 443? | Облачный фаервол блокирует. Откройте порт 443/TCP входящий |
| DNS домена | Разрешается ли домен в IP сервера? | Обновите A-запись DNS |
| ОС сервера | Ubuntu/Debian? | Без apt (CentOS, Fedora, Alpine) — ошибка; переустановите Ubuntu или Debian |
| Дисковое пространство | Минимум 2ГБ свободно? | Освободите место |
| Синхронизация часов | Расхождение клиента и сервера меньше минуты? | Одна из сторон не синхронизирует время. Включите NTP и автоматическую установку времени на обоих устройствах |
Интерпретация вывода doctor
Заголовок раздела «Интерпретация вывода doctor»| Раздел | На что обратить внимание |
|---|---|
| Локальная машина | Совместимость ОС |
| Сервер | Версия ОС, uptime (недавняя перезагрузка?), использование диска/памяти |
| Docker | Запущены ли контейнеры ctlsvc-api и netagent? Статус должен быть “Up” |
| Логи узла Remnawave | Ошибки запуска узла, записи “failed to start”, проблемы с сертификатами |
| Прослушиваемые порты | Порт 443 должен показывать nginx. Если отсутствует, прокси не работает |
| Фаервол (UFW) | Порт 443/tcp должен быть ALLOW. Если не указан, он заблокирован |
| SNI-цель | Должно показывать CONNECTED с цепочкой сертификатов |
| DNS домена | Должен разрешаться в IP сервера |
Интерпретация вывода test
Заголовок раздела «Интерпретация вывода test»| Проверка | Пройдена | Не пройдена |
|---|---|---|
| Доступность TCP | Каждый настроенный публичный TCP-слушатель доступен | Фаервол, блокировка ISP, выключенный сервер или неверная топология |
| Маскировка TLS/SNI | Цель показывает ожидаемую маскировочную идентичность | Ошибка TLS-маршрутизации, сертификата, DNS или SNI |
| Корень домена | Доступен защищённый ответ 403/404 | Ошибка DNS/nginx или непредусмотренный публичный контент |
| Каноническая подписка | Remnawave выдал корректный Xray JSON активного клиента | Нет активного клиента, ошибка панели или шаблона |
| Автоматический fallback | Выданная политика провела реальный трафик | Ошибка балансировщика, маршрута, учётных данных или endpoint |
| Проверки протоколов | Каждый outbound цели провёл реальный трафик | Ошибка слушателя, фаервола или выданной конфигурации протокола |
Итоговый код выхода различает результат: 0 — всё прошло, 4 — проверка завершена с отрицательными результатами, 3 — результат неопределён из-за отсутствующих обязательных данных. --timeout принимает 1–30 секунд и ограничивает каждую сетевую операцию или запуск протокола, а не длительность всей команды. При первом полном тесте Meridian может до 120 секунд загружать закреплённый Xray и проверять опубликованный checksum с GitHub; затем используется локальный cache.
Проверка реального трафика чередует несколько внешних IP-observer’ов. Если запросы через proxy не проходят, но observer работает напрямую, это отрицательный результат; если observer’ы недоступны и через proxy, и напрямую, Meridian не обвиняет proxy и возвращает неопределённость (3). --basic не подтверждает UDP-трафик Hysteria.
Интерпретация вывода probe
Заголовок раздела «Интерпретация вывода probe»probe использует те же коды 0/4/3 и тот же диапазон --timeout 1–30 секунд на операцию. Для управляемых маршрутов нарушение TLS trust, hostname или детерминированного SNI является находкой. Неполные повторные наблюдения и разные, но доверенные сертификаты независимых CDN edge считаются неопределёнными, а не ложным провалом. Пропущенная проверка никогда не учитывается как успех.
meridian scan требует IPv4: для IPv6-only сервера RealiTLScanner не запускается, и команда возвращает 3. В V4 выбранный SNI только показывается; изменяйте проверенный intent через meridian setup.
Если все проверки пройдены, но VPN-клиент всё ещё не может подключиться: пересканируйте QR-код, проверьте, что устройство устанавливает дату и время автоматически, или попробуйте другое приложение (v2rayNG, Hiddify).
