Перейти к содержимому

Решение проблем

ДО УСТАНОВКИ → 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 диагностической подсказки.

Причины:

  1. Брандмауэр облачного провайдера / группа безопасности блокирует входящий порт 443
  2. ISP или сетевая блокировка IP-адреса сервера целиком
  3. Сервер не работает или прокси не запущен
  4. UFW на сервере не разрешает порт 443

Решения:

  1. Проверьте консоль облачного провайдера — убедитесь, что 443/TCP разрешен входящему трафику
  2. Попробуйте с другой сети (мобильные данные, другой Wi-Fi)
  3. Подключитесь к серверу по SSH и проверьте: docker ps (запущены ли ctlsvc-api и netagent?), systemctl status nginx, ss -tlnp sport = :443
  4. Проверьте UFW: ufw status — должно показать 443/tcp ALLOW

Причины:

  1. Xray не работает внутри Docker контейнера
  2. Порт 443 занят другим сервисом
  3. Целевой SNI Reality недоступен с сервера

Решения:

  1. Проверьте Xray: meridian logs IP -c node -n 20
  2. Проверьте порт: ss -tlnp sport = :443 — должен быть nginx
  3. Протестируйте SNI: meridian check IP --sni HOST

Причины:

  1. DNS не указывает на IP сервера
  2. nginx не работает или не получил TLS сертификат
  3. nginx не маршрутизирует домен SNI правильно

Решения:

  1. Проверьте DNS: dig +short yourdomain.com @8.8.8.8
  2. Проверьте nginx: systemctl status nginx
  3. Проверьте конфигурацию nginx: /etc/nginx/stream.d/meridian.conf

Соединение прерывается через несколько секунд

Заголовок раздела «Соединение прерывается через несколько секунд»

Причины:

  1. Проблемы с MTU на сетевом пути
  2. ISP сбрасывает долгоживущие TLS сессии

Решения:

  1. Попробуйте другую сеть
  2. Используйте WSS/CDN подключение (режим домена)

Другой сервис (Apache, Nginx) использует порт 443. Остановите его или используйте чистый сервер. meridian check IP подскажет вам, что использует порт.

Конфликтующие Docker пакеты из репозиториев дистрибутива. Meridian автоматически их удаляет, но если Docker уже работает с контейнерами, он пропускает для предотвращения сбоев.

Переименование панели останавливается при обновлении

Заголовок раздела «Переименование панели останавливается при обновлении»

meridian apply переносит панель, развёрнутую бета-версией 4.0, из /opt/remnawave в /opt/ctlsvc. Прежде чем что-либо остановить, он отказывается продолжать, если существуют оба каталога или /opt/remnawave является точкой монтирования. Оставьте как /opt/ctlsvc тот каталог, в котором лежат data/ и .env панели (или смонтируйте том туда), уберите другой в сторону и снова запустите meridian apply. Переименование, прерванное на середине, продолжится при следующем apply.

Протестируйте SSH вручную: ssh root@SERVER_IP. Убедитесь, что у вас есть доступ на основе ключей. Используйте флаг --user если не root. Если сервер принимает только пароль, запустите meridian deploy в терминале без --yes и позвольте ему установить ключ (см. Серверы только с паролем) или один раз выполните ssh-copy-id root@SERVER_IP.

Проверьте контейнер: 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/.

Сертификат для вашего домена может быть выдан только когда 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
  1. Выберите сервер географически ближе (Финляндия, Нидерланды, Швеция для Европы/Ближнего Востока)
  2. Проверьте нагрузку на сервер: htop или uptime
  3. Попробуйте WSS/CDN ссылку — может иметь лучшую маршрутизацию через Cloudflare
  4. Проверьте, включен ли BBR: sysctl net.ipv4.tcp_congestion_control

НЕ запускайте другие протоколы (OpenVPN, WireGuard) на том же сервере — это помечает IP.

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 и автоматическую установку времени на обоих устройствах
РазделНа что обратить внимание
Локальная машинаСовместимость ОС
СерверВерсия ОС, uptime (недавняя перезагрузка?), использование диска/памяти
DockerЗапущены ли контейнеры ctlsvc-api и netagent? Статус должен быть “Up”
Логи узла RemnawaveОшибки запуска узла, записи “failed to start”, проблемы с сертификатами
Прослушиваемые портыПорт 443 должен показывать nginx. Если отсутствует, прокси не работает
Фаервол (UFW)Порт 443/tcp должен быть ALLOW. Если не указан, он заблокирован
SNI-цельДолжно показывать CONNECTED с цепочкой сертификатов
DNS доменаДолжен разрешаться в IP сервера
ПроверкаПройденаНе пройдена
Доступность 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 использует те же коды 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).