
cloudflared v2026.8.1
Клиент для Cloudflare Tunnel, обеспечивающий безопасные исходящие подключения к источникам через архитектуру Zero Trust. Поддерживает HTTP, WebSocket, SSH и RDP трафик без изменений в файрволе, предоставляя контроль доступа и аутентификацию.
Клиент Cloudflare Tunnel
Содержит клиент командной строки для Cloudflare Tunnel — демона туннелирования, который проксирует трафик из сети Cloudflare к вашим источникам (origin).
Этот демон находится между сетью Cloudflare и вашим источником (например, веб-сервером). Cloudflare принимает клиентские запросы и отправляет их вам
через этот демон, не требуя открывать порты в вашем брандмауэре — ваш источник может оставаться максимально закрытым.
Обширная документация доступна в разделе Cloudflare Tunnel документации Cloudflare.
Все варианты использования, связанные с проксированием к вашим источникам, доступны в cloudflared tunnel help.
Вы также можете использовать cloudflared для доступа к источникам Tunnel (защищённым с помощью cloudflared tunnel) для TCP-трафика
на уровне 4 (то есть не HTTP/websocket), что актуально для таких сценариев, как SSH, RDP и т. п.
Такие варианты использования доступны в cloudflared access help.
Вместо этого вы можете использовать клиент WARP
для доступа к приватным источникам за Tunnel для трафика уровня 4 без необходимости команд cloudflared access на стороне клиента.
Перед началом работы
Прежде чем использовать Cloudflare Tunnel, вам нужно выполнить несколько шагов в панели управления Cloudflare: необходимо добавить веб-сайт в вашу учётную запись Cloudflare. Обратите внимание, что сегодня можно использовать Tunnel без веб-сайта (например, для приватной маршрутизации), но по историческим причинам это требование всё ещё действует:
Установка cloudflared
Загрузки доступны в виде автономных бинарных файлов, образа Docker, а также пакетов Debian, RPM и Homebrew. Релизы также можно найти здесь в репозитории cloudflared на GitHub.
- Вы можете установить на macOS через Homebrew или загрузив последний релиз для Darwin amd64
- Бинарные файлы, пакеты Debian и RPM для Linux можно найти здесь
- Образ Docker для
cloudflaredдоступен на DockerHub - Вы можете установить на машинах Windows, следуя инструкциям здесь
- Чтобы собрать из исходного кода, установите требуемую версию go, указанную в разделе Разработка ниже. Затем вы можете выполнить
make cloudflared.
Пользовательская документация по Cloudflare Tunnel доступна по адресу https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/
Создание туннелей и маршрутизация трафика
После установки вы можете аутентифицировать cloudflared в вашей учётной записи Cloudflare и начать создавать туннели для обслуживания трафика к вашим источникам.
- Создайте туннель, следуя этим инструкциям
- Направьте трафик к этому туннелю:
- Через публичные DNS-записи в Cloudflare
- Или через публичное имя хоста, управляемое Cloudflare Load Balancer
- Или из приватного трафика клиента WARP
TryCloudflare
Хотите протестировать Cloudflare Tunnel перед добавлением сайта в Cloudflare? Это можно сделать с помощью TryCloudflare, используя документацию доступную здесь.
Критические изменения
Удаление флагов CLI, переменных окружения, ключей конфигурации или команд является критическим изменением. О таких удалениях необходимо объявлять в журнале изменений Cloudflare Tunnel до выпуска, в котором они удаляются.
Устаревшие версии
В настоящее время Cloudflare поддерживает версии cloudflared, выпущенные в течение одного года до последнего релиза. Могут быть внесены критические изменения, не связанные с доступностью функций, которые затронут версии, выпущенные более года назад. Подробнее об обновлении cloudflared можно прочитать в нашей документации для разработчиков.
Например, по состоянию на январь 2023 года Cloudflare будет поддерживать cloudflared версии от 2023.1.1 до cloudflared 2022.1.1.
Разработка
Требования
- GNU Make
- capnp
- go >= 1.27.3
- Дополнительные инструменты:
Обновление Go
Директива go в go.mod должна указывать полную версию в формате major.minor.patch
(например, go 1.27.3). Не опускайте номер патча, включая релизы .0.
Это точная версия Go, используемая для сборки и тестирования cloudflared: Makefile экспортирует
из неё GOTOOLCHAIN=go<version>, поэтому make загружает этот инструментарий всякий раз, когда
установленная версия Go старше или новее. Инструменты, которые make запускает через go run pkg@version, также
используют этот инструментарий. Директива toolchain в go.mod игнорируется; не добавляйте её.
Чтобы использовать установленную версию Go, запустите make <target> GOTOOLCHAIN=local.
При обновлении Go обновите директиву go и все соответствующие ссылки на версию
в .gitlab-ci.yml, .ci/image/Dockerfile, .github/workflows/check.yaml и
Dockerfile-файлах. Обновите образ сборщика Linux CI и его дайджест в .ci/linux.gitlab-ci.yml
в соответствии с этим; его golangVersion выбирает семейство образов major/minor. В macOS и
Windows несоответствие приводит лишь к загрузке инструментария. Сборки, использующие GOTOOLCHAIN=local,
завершаются с ошибкой, если их версия Go старше указанной в go.mod, и используют собственную версию Go, если она новее.
Сборка
Чтобы собрать cloudflared локально, запустите make cloudflared
Тестирование
Чтобы запустить тесты локально, запустите make test
Линтинг
Чтобы отформатировать код и поддерживать хорошее качество кода, используйте make fmt и make lint
Моки
После изменений в интерфейсах может потребоваться перегенерировать моки, поэтому запустите make mocks
Git-хуки
Чтобы избежать ошибок CI, вы можете установить pre-push хуки, которые запускают линтинг и тесты перед каждым пушем:
make install-hooks
Это настроит git на использование хуков в .githooks/, которые запускают make fmt-check lint test перед каждым push.