INTEGRITY Документация

Распространённые ошибки

В этом разделе перечислены наиболее распространенные ошибки, с которыми вы можете столкнуться при подключении ресурсов через Cloudflare Tunnel. Если нужной проблемы нет в списке ниже, обратитесь к Устранение неполадок Cloudflare One, просмотрите свой Журналы туннеля, или обратитесь в службу поддержки Cloudflare.

Статус туннеля

Вы можете проверить статус подключения туннеля либо через панель управления Cloudflare (перейдя в Сеть > Tunnels) или выполнив cloudflared tunnel list команду. Для каждого туннеля отображается статус, который отражает его текущее состояние подключения:

Статус Значение Рекомендуемое действие
Исправно Туннель активен и обслуживает трафик через четыре подключения к глобальной сети Cloudflare. Действие не требуется. Ваш туннель работает корректно.
Неактивен Туннель создан (через API или панель управления), но cloudflared connector ни разу не запускался для установления подключения. Установите и запустите cloudflared на вашем исходном сервере, чтобы подключить туннель к Cloudflare. Команду установки можно найти в панели управления Cloudflare в разделе Сеть > Tunnels : выберите свой туннель, затем на Обзор вкладке выберите Добавьте реплику. Для настройки через API см. Установите и запустите туннель.
Down Ранее туннель был подключён, но сейчас отключён, потому что cloudflared процесс остановлен. 1. Убедитесь, что cloudflared служба или процесс активно выполняется на вашем сервере.
2. Проверьте возможные проблемы на стороне сервера: например, компьютер выключен, произошёл сбой приложения или недавно изменилась сеть.
Degraded cloudflared connector работает, и туннель обслуживает трафик, но как минимум одно отдельное подключение завершилось сбоем. Дальнейшее ухудшение доступность туннеля может привести к тому, что туннель отключится и перестанет обслуживать трафик. 1. Просмотрите свой cloudflared журналы для сбоев подключения или сообщений об ошибках.
2. Проверьте правила локальной сети и брандмауэра и убедитесь, что они не блокируют подключения к IP-адреса и порты Cloudflare Tunnel.

Я вижу cloudflared service is already installed.

Если эта ошибка появляется при установке удаленно управляемого туннеля, убедитесь, что никакой другой cloudflared экземпляры работают как служба на этой машине. На этой машине может работать только один экземпляр cloudflared может работать как служба только на одной машине. Вместо этого добавьте дополнительные маршруты к существующему туннелю. Либо вы можете запустить sudo cloudflared service uninstall чтобы удалить cloudflared.

Я вижу An A, AAAA, or CNAME record with that host already exists.

Если не удается сохранить публичное имя хоста туннеля, выберите другое имя хоста или удалите существующую запись DNS. Проверьте DNS-записи для вашего домена из Панель управления Cloudflare.

Файл учётных данных туннеля не существует или не является файлом.

Если при запуске туннеля вы получаете следующую ошибку, ещё раз проверьте config.yml файл и убедитесь, что credentials-file указывает на правильное расположение. Возможно, потребуется изменить /root/ в вашу домашнюю директорию.

cloudflared tunnel run
2021-06-04T06:21:16Z INF Starting tunnel tunnelID=928655cc-7f95-43f2-8539-2aba6cf3592d
Tunnel credentials file '/root/.cloudflared/928655cc-7f95-43f2-8539-2aba6cf3592d.json' doesn't exist or is not a file

Мой туннель не проходит аутентификацию.

Чтобы начать использовать Cloudflare Tunnel, пользователь с ролью Super Administrator в аккаунте Cloudflare должен сначала войти через cloudflared login. Клиент откроет окно браузера и предложит пользователю выбрать имя хоста в своем аккаунте Cloudflare. После выбора Cloudflare сгенерирует сертификат, состоящий из трех компонентов:

Эти три компонента объединяются в единый файл PEM, который загружается один раз в ходе этого процесса входа. Сертификат хоста действителен для корневого домена и любого поддомена первого уровня вложенности. Cloudflare использует этот файл сертификата для аутентификации cloudflared чтобы создать DNS-записи для своего домена в Cloudflare.

Третий компонент, токен, состоит из идентификатора зоны (для выбранного домена) и API-токена, привязанного к пользователю, который первым прошёл аутентификацию с помощью команды входа. При изменении прав пользователя (например, если этот пользователь удаляется из аккаунта или становится администратором другого аккаунта) Cloudflare обновляет API-ключ пользователя. Однако файл сертификата, загруженный через cloudflared сохраняет старый API-ключ, что может привести к ошибкам аутентификации. Пользователю потребуется снова войти через cloudflared и перегенерируйте сертификат. Также администратор может создать выделенного служебного пользователя для аутентификации.

Появляется ошибка: x509: certificate signed by unknown authority.

Это означает, что источник использует сертификат, который cloudflared не доверяет. Например, эта ошибка может появиться, если вы используете проверку SSL/TLS в прокси между вашим сервером и Cloudflare. Чтобы устранить проблему:

При попытке запустить туннель появляется ошибка 1033.

A 1033 ошибка означает, что ваш туннель не подключён к сети Cloudflare, так как сеть Cloudflare не может найти работоспособный cloudflared экземпляр для приёма трафика.

Сначала проверьте, отображается ли ваш туннель как Active в Панель управления Cloudflare перейдя в Сеть > Tunnels или выполните cloudflared tunnel list. Если туннель не Active, просмотрите следующее и предпримите действия, необходимые для статуса вашего туннеля:

Статус Значение Рекомендуемое действие
Исправно Туннель активен и обслуживает трафик через четыре подключения к глобальной сети Cloudflare. Действие не требуется. Ваш туннель работает корректно.
Неактивен Туннель создан (через API или панель управления), но cloudflared connector ни разу не запускался для установления подключения. Установите и запустите cloudflared на вашем исходном сервере, чтобы подключить туннель к Cloudflare. Команду установки можно найти в панели управления Cloudflare в разделе Сеть > Tunnels : выберите свой туннель, затем на Обзор вкладке выберите Добавьте реплику. Для настройки через API см. Установите и запустите туннель.
Down Ранее туннель был подключён, но сейчас отключён, потому что cloudflared процесс остановлен. 1. Убедитесь, что cloudflared служба или процесс активно выполняется на вашем сервере.
2. Проверьте возможные проблемы на стороне сервера: например, компьютер выключен, произошёл сбой приложения или недавно изменилась сеть.
Degraded cloudflared connector работает, и туннель обслуживает трафик, но как минимум одно отдельное подключение завершилось сбоем. Дальнейшее ухудшение доступность туннеля может привести к тому, что туннель отключится и перестанет обслуживать трафик. 1. Просмотрите свой cloudflared журналы для сбоев подключения или сообщений об ошибках.
2. Проверьте правила локальной сети и брандмауэра и убедитесь, что они не блокируют подключения к IP-адреса и порты Cloudflare Tunnel.

Дополнительные сведения см. в полный список ошибок Cloudflare 1xxx.

При подключении к приложению HTTP или HTTPS через туннель появляется ошибка 502 Bad Gateway.

A 502 Bad Gateway ошибка с Unable to reach the origin service. The service may be down or it may not be responding to traffic from cloudflared на маршруте туннеля означает, что сам туннель подключён к сети Cloudflare, но cloudflared не может подключиться к исходной службе, указанной в правиле ingress. В отличие от ошибка 1033, что означает отсутствие подключения туннеля к Cloudflare, ошибка 502 означает, что проблема находится между cloudflared и вашей локальной службой.

Чтобы определить точную причину, проверьте свои Журналы туннеля для error-уровня. Наиболее частые причины:

Служба источника не запущена

Если исходная служба остановлена или никогда не запускалась, cloudflared логи будут показывать ошибку, похожую на следующую:

error="dial tcp [::1]:8080: connect: connection refused"

Чтобы устранить это, убедитесь, что служба запущена и прослушивает ожидаемый порт:

curl -v http://localhost:8080

Если служба не запущена, запустите или перезапустите её. Убедиться, что служба прослушивает порт, можно с помощью команды ss -tlnp | grep <PORT> (Linux) или lsof -iTCP -sTCP:LISTEN -nP | grep <PORT> (macOS).

URL-адрес службы источника использует неверный протокол

Если источник ожидает HTTPS, а в маршруте туннеля указан http://, или наоборот, cloudflared логи будут показывать ошибку, похожую на следующую:

error="net/http: HTTP/1.x transport connection broken: malformed HTTP response \"\x15\x03\x01\x00\x02\x02\""

Чтобы устранить это, измените URL-адрес службы в маршруте туннеля в соответствии с протокол который ожидает ваш источник. Например, измените http://localhost:8080 к https://localhost:8080. Если вы используете туннель с локальным управлением, обновите правило входящего трафика в файл конфигурации.

URL-адрес службы источника указывает на неверный порт

Если порт в маршруте туннеля не совпадает с портом, который прослушивает ваша служба, cloudflared запишет в журнал connection refused ошибка для этого порта. Проверьте URL службы в правиле ingress и сравните его с портом, к которому привязано ваше приложение.

Источник использует сертификат, который cloudflared не доверяет

Если источник предъявляет сертификат TLS, который cloudflared не может проверить, в журналах отобразится ошибка, похожая на следующую:

error="x509: certificate is valid for example.com, not localhost"

Обычно это происходит, когда исходный сервер использует самоподписанный сертификат, или когда прокси-сервер проверки SSL/TLS находится между cloudflared и источником.

Чтобы устранить это, используйте один из следующих подходов:

Я вижу ERR_TOO_MANY_REDIRECTS при попытке подключения к самостоятельно размещённому приложению Access.

Эта ошибка возникает, когда cloudflared не распознаёт SSL/TLS-сертификат, предоставленный вашим источником. Чтобы устранить проблему, задайте имя исходного сервера параметр в имя хоста, указанное в сертификате источника. Ниже приведён пример конфигурации туннеля с локальным управлением:

ingress:
  - hostname: test.example.com
    service: https://localhost:443
    originRequest:
      originServerName: test.example.com

cloudflared access отображает ошибку websocket: bad handshake.

Это означает, что ваш cloudflared access клиент не может подключиться к вашему cloudflared tunnel источник. Чтобы это диагностировать, посмотрите cloudflared tunnel логи. Распространённая основная причина заключается в том, что cloudflared tunnel не может проксировать запросы к вашему источнику (например, из-за неправильной настройки ingress, недоступности источника или невозможности проверить HTTPS-сертификат источника с помощью cloudflared tunnel). Если cloudflared tunnel не имеет журналов, это значит, что сеть Cloudflare не может направить к нему websocket-трафик.

У этой ошибки может быть несколько возможных первопричин:

Подключения туннеля завершаются с ошибкой SSL.

Если cloudflared возвращает ошибку error="remote error: tls: handshake failure", убедитесь, что данное имя хоста охвачено SSL-сертификатом. При использовании многоуровневого субдомена расширенный сертификат может потребоваться, так как Universal SSL не покрывает более одного уровня поддомена. В браузере это может отображаться как ERR_SSL_VERSION_OR_CIPHER_MISMATCH.

Подключения туннеля завершаются с ошибкой Too many open files ошибка.

Если ваш Журналы Cloudflare Tunnel возвращает socket: too many open files ошибка, это означает, что cloudflared исчерпал лимит открытых файлов на вашем компьютере. Максимальное количество открытых файлов, или дескрипторов файлов, это настройка операционной системы, которая определяет, сколько файлов может открыть процесс. Чтобы увеличить лимит открытых файлов, вам нужно настроить параметры ulimit на машине, где выполняется cloudflared.

Я вижу failed to sufficiently increase receive buffer size в моих журналах cloudflared.

Об этом увеличении размера буфера сообщает библиотека quic-go используемый cloudflared. Подробнее об этом сообщении журнала можно узнать в репозиторий quic-go. Это сообщение в журнале обычно не имеет значения, и при устранении неполадок его можно спокойно игнорировать. Однако если вы развернули cloudflared в уникальной среде с высокой пропускной способностью, то размер буфера можно вручную переопределить для целей тестирования.

Чтобы задать максимальный размер буфера приёма в Linux:

  1. Создайте новый файл в /etc/sysctl.d/:

    sudo vi 98-core-rmem-max.conf
  2. В файле укажите нужный размер буфера:

    net.core.rmem_max=2500000
  3. Перезагрузите хост-машину, на которой выполняется cloudflared.

  4. Чтобы убедиться, что изменения вступили в силу, используйте grep команда:

    sudo sysctl -a | grep net.core.rmem_max
    net.core.rmem_max = 2500000

Cloudflare Tunnel буферизует мой потоковый ответ вместо того, чтобы передавать его в реальном времени.

Проксируемый трафик через Cloudflare Tunnel по умолчанию буферизуется, если только исходный сервер не включает Content-Type: text/event-stream заголовок ответа. Этот заголовок сообщает cloudflared чтобы передавать данные потоком по мере их поступления, а не буферизировать весь ответ.

Мой туннель периодически отключается.

Долгоживущие соединения, инициированные через Cloudflare One, например SSH-сессии, могут длиться до восьми часов. Однако сбои на пути прохождения трафика могут приводить к более частым разрывам соединения. Часто такие разрывы вызваны плановыми работами по обслуживанию, например обновлениями и перезапусками дата-центров, серверов или служб. Если вы считаете, что причина не в этих событиях, соберите соответствующие журналы клиента и Журналы туннеля и обратитесь в Support.

Если отключения в основном затрагивают неактивные сессии SSH, соединения WebSocket или другие долгоживущие соединения, причина может быть в транспортном протоколе.

Когда cloudflared использует QUIC, неактивные сеансы могут быть более чувствительны к сетевым устройствам, которые агрессивно завершают неактивный трафик UDP по тайм-ауту. Если неактивные соединения обрываются постоянно, попробуйте один или несколько из следующих способов:

Об ошибках установления соединения из-за блокировки трафика QUIC см. в разделах устранения неполадок QUIC выше.

ping и traceroute команды не работают.

Чтобы отправить эхо-запрос (ping) на IP-адрес за Cloudflare Tunnel, система должна разрешать трафик ICMP через cloudflared. Инструкции по настройке см. в документация по ICMP-прокси.

Я вижу Error: This route's network is inside an existing subnet's network at "100.96.0.0/12".

Эта ошибка возникает, когда вы пытаетесь добавить маршрут CIDR, который попадает в диапазон Cloudflare One Client Диапазон IP-адресов CGNAT. 100.96.0.0/12 диапазон, который охватывает адреса от 100.96.0.1 к 100.111.255.254, зарезервирован для внутренней маршрутизации WARP и не может быть добавлен как маршрут Cloudflare Tunnel. Чтобы подключить вашу приватную сеть, нужно изменить её IP/CIDR так, чтобы он не пересекался с 100.96.0.0/12.

Я вижу This site can't provide a secure connection.

Если вы видите ошибку с заголовком This site can't provide a secure connection и подзаголовок <hostname> uses an unsupported protocol, вам необходимо заказать Advanced Certificate.

Если вы добавили многоуровневый субдомен (более одного уровня поддомена), необходимо заказать Advanced Certificate для имени хоста так как универсальный сертификат Cloudflare по умолчанию не покрывает публичное имя хоста.

Дополнительные сведения об ошибках Tunnel см. в ваших Журналы туннеля или обратитесь в службу поддержки Cloudflare.