Решение проблем
Какой инструмент использовать
ДО УСТАНОВКИ → meridian preflight IP
"Будет ли этот сервер работать с Meridian?"
Проверяет: SNI доступность, порт 443, DNS, ОС, диск.
ПОСЛЕ УСТАНОВКИ, НЕ МОГУ ПОДКЛЮЧИТЬСЯ → meridian test IP
"Доступен ли прокси отсюда?"
Проверяет: TCP порт 443, TLS handshake (Reality), домен HTTPS.
SSH не нужен — запускается с клиентского устройства.
ПОСЛЕ УСТАНОВКИ, ЧТО-ТО СЛОМАЛОСЬ → meridian doctor IP
"Собрать всё для отладки."
Собирает: ОС сервера, Docker, логи 3x-ui, порты, фаервол, SNI, DNS.
Добавьте --ai к preflight или doctor для готовой к AI диагностической подсказки.
Не может подключиться вообще
Порт 443 не доступен
Причины:
- Брандмауэр облачного провайдера / группа безопасности блокирует входящий порт 443
- ISP или сетевая блокировка IP-адреса сервера целиком
- Сервер не работает или прокси не запущен
- UFW на сервере не разрешает порт 443
Решения:
- Проверьте консоль облачного провайдера — убедитесь, что 443/TCP разрешен входящему трафику
- Попробуйте с другой сети (мобильные данные, другой Wi-Fi)
- SSH на сервер и проверьте:
docker ps(3x-ui работает?),ss -tlnp sport = :443 - Проверьте UFW:
ufw status— должно показать 443/tcp ALLOW
TLS handshake не пройден
Причины:
- Xray не работает внутри Docker контейнера
- Порт 443 занят другим сервисом
- Целевой SNI Reality недоступен с сервера
Решения:
- Проверьте Xray:
docker logs 3x-ui --tail 20 - Проверьте порт:
ss -tlnp sport = :443— должен быть nginx - Протестируйте SNI:
meridian preflight IP
Домен не доступен
Причины:
- DNS не указывает на IP сервера
- nginx не работает или не получил TLS сертификат
- nginx не маршрутизирует домен SNI правильно
Решения:
- Проверьте DNS:
dig +short yourdomain.com @8.8.8.8 - Проверьте nginx:
systemctl status nginx - Проверьте конфигурацию nginx:
/etc/nginx/conf.d/meridian-stream.conf
Соединение прерывается через несколько секунд
Причины:
- Рассинхронизация системных часов >30 секунд между клиентом и сервером
- Проблемы с MTU на сетевом пути
- ISP сбрасывает долгоживущие TLS сессии
Решения:
- Сервер:
timedatectl set-ntp true. Клиент: включите автоматическую установку даты/времени - Попробуйте другую сеть
- Используйте WSS/CDN подключение (режим домена)
Установка не удалась
Конфликт порта 443
Другой сервис (Apache, Nginx) использует порт 443. Остановите его или используйте чистый сервер. meridian preflight скажет вам, что использует порт.
Docker установка не удалась
Конфликтующие Docker пакеты из репозиториев дистрибутива. Meridian автоматически их удаляет, но если Docker уже работает с контейнерами, он пропускает для предотвращения сбоев.
Ошибки подключения SSH
Протестируйте SSH вручную: ssh root@SERVER_IP. Убедитесь, что у вас есть доступ на основе ключей. Используйте флаг --user если не root.
Xray не запускается (ошибка invalid JSON / MarshalJSON)
Поля settings или streamSettings входящей 3x-ui содержат повреждённый JSON. Это происходит когда settings отправляется как вложенный объект вместо JSON-строки — Go-структура 3x-ui ожидает тип string. API возвращает success: true, но сохраняет только имя первого ключа вместо полного JSON-объекта.
Решение: Удалите и переустановите: meridian teardown IP && meridian deploy IP. Для проверки базы данных: sqlite3 /opt/3x-ui/db/x-ui.db "SELECT settings FROM inbounds;" — каждое поле должно быть валидным JSON.
Ошибка создания XHTTP inbound (конфликт порта)
В старых версиях (до v3.6.0) и Reality, и XHTTP пытались использовать порт 443. 3x-ui отклоняет дублирующиеся порты.
Решение: Обновитесь до v3.6.0+. XHTTP теперь работает на localhost-порту, маршрутизируясь через nginx.
Недостаточно места на диске
Менее 2ГБ свободного места. Освободите место: docker system prune -af, journalctl --vacuum-time=1d, проверьте /var/log/.
DNS не разрешается (режим домена)
Домен ещё не указывает на IP сервера. Обновите A-запись DNS. Распространение обычно занимает 5-15 минут (до 48 часов). Meridian предупреждает, если DNS не разрешается, но позволяет продолжить.
Было работающим, теперь остановилось
Самая частая причина: IP-адрес сервера был заблокирован. Это очень частое явление в цензурируемых регионах.
Подробные инструкции по восстановлению см. в Руководстве по восстановлению заблокированного IP.
Другие причины:
- Сервер перезагрузился и Docker не запустился автоматически →
docker start 3x-ui - Диск переполнен →
df -h /,docker system prune -af
Низкая скорость
- Выберите сервер географически ближе (Финляндия, Нидерланды, Швеция для Европы/Ближнего Востока)
- Проверьте нагрузку на сервер:
htopилиuptime - Попробуйте WSS/CDN ссылку — может иметь лучшую маршрутизацию через Cloudflare
- Проверьте, включен ли BBR:
sysctl net.ipv4.tcp_congestion_control
НЕ запускайте другие протоколы (OpenVPN, WireGuard) на том же сервере — это помечает IP.
AI-усиленная помощь
meridian doctor --ai
Копирует диагностическую подсказку в буфер обмена для использования с любым AI ассистентом.
Или соберите диагностику для GitHub issue:
meridian doctor
Релейный узел не работает
Проблемы, связанные с релейными узлами, см. в разделе Руководство релейных узлов — Решение проблем.
Интерпретация вывода preflight
| Проверка | Что проверяет | Если не прошла |
|---|---|---|
| Доступность SNI-цели | Может ли сервер достичь сайт маскировки? | Исходящий трафик сервера ограничен. Попробуйте другой SNI с --sni |
| Совпадение SNI ASN | Совпадает ли CDN/ASN SNI-цели с сервером? | Используйте глобальный CDN-домен. Избегайте apple.com (ASN Apple) |
| Доступность порта 443 | Свободен ли порт 443 или используется Meridian? | Другой сервис на 443. Остановите его или используйте чистый сервер |
| Внешняя доступность порта 443 | Может ли внешний мир достичь порта 443? | Облачный фаервол блокирует. Откройте порт 443/TCP входящий |
| DNS домена | Разрешается ли домен в IP сервера? | Обновите A-запись DNS |
| ОС сервера | Ubuntu/Debian? | Другие дистрибутивы могут работать, но не протестированы |
| Дисковое пространство | Минимум 2ГБ свободно? | Освободите место |
Интерпретация вывода doctor
| Раздел | На что обратить внимание |
|---|---|
| Локальная машина | Совместимость ОС |
| Сервер | Версия ОС, uptime (недавняя перезагрузка?), использование диска/памяти |
| Docker | Работает ли контейнер 3x-ui? Статус должен быть “Up” |
| Логи 3x-ui | Сообщения об ошибках, записи “failed to start”, проблемы с сертификатами |
| Прослушиваемые порты | Порт 443 должен показывать nginx. Если отсутствует, прокси не работает |
| Фаервол (UFW) | Порт 443/tcp должен быть ALLOW. Если не указан, он заблокирован |
| SNI-цель | Должно показывать CONNECTED с цепочкой сертификатов |
| DNS домена | Должен разрешаться в IP сервера |
Интерпретация вывода test
| Проверка | Пройдена | Не пройдена |
|---|---|---|
| TCP порт 443 | Сервер доступен по сети | Фаервол, блокировка ISP или сервер не работает |
| TLS handshake | Протокол Reality работает | Xray не работает, конфликт порта или проблема SNI |
| Domain HTTPS | nginx работает | Проблема DNS или nginx |
Если все проверки пройдены, но VPN-клиент всё ещё не может подключиться: пересканируйте QR-код, проверьте точность часов устройства (в пределах 30 секунд), или попробуйте другое приложение (v2rayNG, Hiddify).