← Cloudflare Spectrum / spectrum / reference
Устранение неполадок
Чтобы разобраться в проблемах с приложением Spectrum, используйте журналы и средства диагностики, описанные на этой странице. Об ошибках проверки API, возвращаемых при создании или обновлении приложения, см. Коды ошибок.
Журналы событий Spectrum
Spectrum регистрирует жизненный цикл каждого проксируемого соединения, включая коды состояния для сбоев на пути от периферии к источнику (например, 521 в подключении отказано, 522 тайм-аут, 523 недоступен). См. Журналы событий.
Источники в виртуальной сети
Когда приложение Spectrum использует источник в виртуальной сети, трафик к источнику проходит через коннектор, связанный с виртуальной сетью. Диагностируйте подключение к источнику со стороны коннектора, используя источники данных для вашего типа коннектора.
Cloudflare Tunnel в качестве коннектора
- Журналы туннеля записи об активности между
cloudflaredи сетью Cloudflare, а также междуcloudflaredи вашим источником. См. Потоки журналов. - Диагностические журналы туннеля соберите диагностический отчет с одного
cloudflaredинстанс. См. Диагностические журналы. - Подключение к приватной сети описывает частые причины, по которым трафик не доходит до приватного источника через туннель. См. Подключение к приватной сети.
Cloudflare WAN в качестве коннектора
Диагностику состояния туннеля, BGP и маршрутизации для источников, подключённых через WAN, см. в Устранение неполадок Cloudflare WAN.
Не удаётся создать приложение Spectrum: DNS-запись уже существует
Симптомы
- При создании приложения Spectrum в панели управления появляется ошибка: "Запись A, AAAA или CNAME с таким хостом уже существует."
- У вас уже есть вручную созданная проксируемая DNS-запись (
A,AAAA, илиCNAME) для имени хоста, которое вы пытаетесь использовать для нового приложения Spectrum.
Причина
Cloudflare не поддерживает одновременное использование вручную созданной проксируемой DNS-записи (A, AAAA, или CNAME) и приложение Spectrum на одном и том же имени хоста. Это связано с тем, что Spectrum создаёт и обслуживает собственную DNS запись для приложения, которая конфликтует с уже существующей записью, созданной вручную. Это ограничение платформы, а не только панели управления.
Это ограничение действует только для проксируемых записей, созданных вручную. Несколько приложений Spectrum, включая сочетание типов HTTP/HTTPS и TCP/UDP, могут использовать одно и то же имя хоста, поскольку Spectrum управляет DNS-записью для каждого из них.
Решение
Если для этого имени хоста нужны только приложения Spectrum (например, приложение Spectrum HTTP/HTTPS вместе с приложением Spectrum TCP/UDP), обходной путь не требуется: просто создайте дополнительное приложение Spectrum на том же имени хоста.
Если вам нужно сохранить вручную созданную проксированную запись DNS для этого имени хоста (например, чтобы направлять стандартный трафик HTTP/HTTPS через CDN и WAF, а не через Spectrum), используйте архитектура с раздельными хостами вместо этого, если вручную созданная проксируемая запись и приложение Spectrum используют разные хосты:
| Тип трафика | Имя хоста | сервис Cloudflare |
|---|---|---|
| HTTPS (веб-интерфейс, API) | app.example.com |
Вручную созданная проксированная запись DNS с CDN/WAF |
| TCP (пользовательский протокол, ICA/HDX и аналогичные) | app-tcp.example.com |
Приложение Spectrum |
Настройте приложение или клиент так, чтобы для каждого типа трафика использовалось соответствующее имя хоста.
Подробнее об этом ограничении см. в Ограничения Spectrum.
Источник получает HTTP вместо HTTPS (несоответствие протоколов)
Симптомы
- Порт приложения Spectrum на стороне Cloudflare использует HTTP (например, порт 8012), тогда как источник ожидает HTTPS на порту 443.
- Источник отклоняет соединение или возвращает ошибки, потому что вместо зашифрованного HTTPS получает нешифрованный HTTP.
- Эта конфигурация работает следующим образом:
http:8012 → Cloudflare Spectrum → http:443 (origin)вместо ожидаемогоhttp:8012 → Cloudflare Spectrum → https:443 (origin).
Причина
Spectrum работает на уровне L4 (TCP/UDP). Если для параметра Edge TLS Termination задано значение off (Passthrough) Spectrum передает необработанные данные TCP на источник без изменений. Протокол при этом не обновляется: подключение к источнику через порт 443 не означает автоматически, что соединение будет использовать HTTPS.
Решение
Чтобы отправлять зашифрованный трафик от Cloudflare к вашему источнику, необходимо включить Edge TLS Termination в приложении Spectrum и установите значение Full или Full (Strict):
- Full: Cloudflare подключается к источнику по TLS, но не проверяет сертификат источника.
- Full (Strict): Cloudflare подключается к источнику по TLS и проверяет сертификат источника в доверенном центре сертификации или через Cloudflare Origin CA.
Вы можете настроить Edge TLS Termination в параметрах приложения Spectrum в панели управления или через API, задав tls поле в full или strict.
См. Edge TLS Termination для дополнительных сведений.
Сбои TLS-рукопожатия (ошибка 525)
Симптомы
- Для TCP-приложений, у которых Edge TLS Termination настроен на Full или Full (Strict): подключения к источнику завершаются ошибкой. В журналах событий Spectrum может отображаться
521(отказано в подключении) или522(тайм-аут подключения), поскольку неудачное TLS-рукопожатие на источнике регистрируется как ошибка подключения к источнику. См. Журналы событий с полным справочником кодов состояния. - Для приложений HTTP/HTTPS: клиенты получают ошибку
525(сбой SSL-рукопожатия).
Обычно эти ошибки появляются после создания приложения Spectrum или изменения настроек TLS.
Причина
TLS-рукопожатие между Cloudflare и вашим исходным сервером не удалось. Наиболее частые причины:
- Edge TLS Termination настроен на Full или Full (Strict), но источник не имеет действительного TLS сертификата или не принимает TLS соединения на настроенном порте.
- Источник приложения Spectrum указывает на другое имя хоста, проксируемое через Cloudflare (например,
origin.example.com.cdn.cloudflare.net). Это создаёт цепочку двойного проксирования, которая не поддерживается для приложений типа TCP и может вызывать сбои TLS handshake. - Несовпадение версии TLS или набора шифров между периферийной сетью Cloudflare и сервером-источником.
Решение
- Убедитесь, что на сервере источника установлен действительный сертификат TLS и настроен приём TLS-подключений на порту источника.
- При использовании Full (Strict), убедитесь, что сертификат источника выпущен общедоступным доверенным центром сертификации (CA) или Сертификат Cloudflare Origin CA.
- Убедитесь, что источник приложения Spectrum не указывает на другое имя хоста, проксируемое через Cloudflare. Используйте прямой IP-адрес источника или DNS-имя, которое разрешается непосредственно в адрес вашего сервера источника (минуя прокси Cloudflare).
- Если источник поддерживает только определенные версии TLS, учтите, что при включенном параметре Edge TLS Termination Spectrum поддерживает TLS 1.1, 1.2 и 1.3.
Распространённые коды состояния в журнале событий Spectrum
Spectrum использует собственный набор кодов состояния соединения, отличный от кодов состояния HTTP, используемых на уровне CDN Cloudflare. У некоторых кодов совпадают номера (например, 444, 499), но они имеют разное значение.
Полную таблицу кодов состояния см. в Журналы событий.
Типичные паттерны
В следующей таблице перечислены часто встречающиеся коды состояния Spectrum и их вероятные причины:
| Шаблон | Вероятная причина | Рекомендуемое действие |
|---|---|---|
| Большой объём 444 (источник отправил RST) | Сервер источника активно сбрасывает соединения. Это может указывать на перегрузку источника, неверно настроенный брандмауэр или сбой приложения. | Проверьте состояние сервера источника, правила брандмауэра и журналы приложения. |
| Большой объём 445 (тайм-аут источника) | Установленные соединения с источником завершаются по тайм-ауту. Это может указывать на медленный отклик источника или проблемы с сетевым маршрутом. | Проверьте производительность сервера источника и сетевое соединение между Cloudflare и источником. |
| Большой объём 497 (тайм-аут клиента) | Истекает время ожидания клиентских соединений. Это может указывать на проблемы в сети между клиентами и периферийной сетью Cloudflare либо на клиентов с очень долгими неактивными соединениями. | Проверьте сетевые условия на стороне клиента и при необходимости скорректируйте ожидания по тайм-ауту простоя. |
| Большой объём 498 (обрыв канала на стороне клиента) | Клиентские соединения обрываются в середине сессии. Это может указывать на нестабильность сети на стороне клиента (например, у мобильных пользователей). | Обычно ожидаемо для мобильных или ненадежных сетей. Следите за тенденциями. |
| Большой объём 499 (клиент отправил RST) | Клиенты активно закрывают соединения. Это может указывать на тайм-ауты на стороне клиента или отключения на уровне приложения. | Проверьте настройки тайм-аута клиентского приложения. |
| 521 (источник отклонил подключение) | Источник не принимает соединения на настроенном порте. | Убедитесь, что сервер источника запущен и прослушивает нужный порт. Проверьте брандмауэр источника. |
| 522 (тайм-аут подключения к источнику) | Не удаётся установить TCP-соединение с источником. | Проверьте IP-адрес и порт источника и убедитесь, что источник доступен из сети Cloudflare. |