← Cloudflare Tunnel / tunnel
Настройка
Создайте Cloudflare Tunnel и опубликуйте своё первое приложение менее чем за 5 минут.
Предварительные требования
- A Аккаунт Cloudflare ↗
- A домен в Cloudflare (требуется для публикации приложений)
- Сервер или ВМ с доступом в интернет, на котором вы установите
cloudflared
Создать туннель
Чтобы создать новый Cloudflare Tunnel:
-
В Панель управления Cloudflare ↗, перейдите в Сеть > Tunnels.
Перейдите в Tunnels ↗ -
Выберите Create Tunnel.
-
Введите имя туннеля (например,
production-webилиstaging-api). -
Выберите Create Tunnel.
-
В разделе Настройка окружения, выберите операционную систему и архитектуру сервера.
-
Скопируйте команды установки, показанные в разделе Установка и запуск и выполните их в терминале на вашем сервере.
-
После подключения туннеля выберите Продолжение.
Туннель должен появиться на Tunnels страница с Healthy статус.
-
Создание API-токена со следующими разрешениями:
Тип Элемент Разрешение Аккаунт Cloudflare Tunnel Изменить Zone DNS Изменить -
Создайте туннель:
Хотя бы одно из следующих права доступа токена требуется:Необходимые разрешения API-токена
Cloudflare One Connectors WriteCloudflare One Connector: cloudflared WriteCloudflare Tunnel Write
Создайте Cloudflare Tunnelcurl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/cfd_tunnel" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "name": "api-tunnel", "config_src": "cloudflare" }' -
Скопируйте
idиtokenзначения из ответа. Они понадобятся вам для настройки и запуска туннеля.
Публикация приложения
Чтобы сделать приложение доступным из интернета, добавьте в туннель маршрут для публикации приложения. Маршрут туннеля сопоставляет публичное имя хоста с локальным сервисом.
-
В Панель управления Cloudflare ↗, перейдите в Сеть > Tunnels и выберите ваш туннель. Перейдите в Tunnels ↗
-
В разделе Маршруты, выберите Добавить маршрут.
-
Выберите Published application.
-
В разделе Имя хоста, введите поддомен и выберите домен в выпадающем меню.
-
Для URL службы, введите локальный адрес и порт приложения.
Например, если веб-сервер работает на той же машине, что и
cloudflared:- HTTP на порту
80:http://localhost:80 - HTTPS на порту
443:https://localhost:443
Если ваш веб-сервер работает на другом компьютере:
http://192.0.2.1:80 - HTTP на порту
-
Выберите Добавить маршрут.
-
Настройте правила входящего трафика туннеля:
Хотя бы одно из следующих права доступа токена требуется:Необходимые разрешения API-токена
Cloudflare One Connectors WriteCloudflare One Connector: cloudflared WriteCloudflare Tunnel Write
Обновите конфигурацию Tunnelcurl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/cfd_tunnel/$TUNNEL_ID/configurations" \ --request PUT \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "config": { "ingress": [ { "hostname": "app.example.com", "service": "http://localhost:80", "originRequest": {} }, { "service": "http_status:404" } ] } }'Ваши правила ingress должны включать catch-all-правило в конце списка. В этом примере
cloudflaredответит кодом состояния 404, если запрос не соответствует ни одному имени хоста. -
Создайте DNS-запись для своего приложения:
Хотя бы одно из следующих права доступа токена требуется:Необходимые разрешения API-токена
DNS Write
Create DNS Recordcurl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "type": "CNAME", "proxied": true, "name": "app.example.com", "content": "<TUNNEL_ID>.cfargotunnel.com" }' -
Установка
cloudflaredна вашем сервере и запустить туннель с помощьюtokenполученный в Создать туннель:-
Скачайте и установите ↗
cloudflared. -
Выполните следующую команду:
sudo cloudflared service install <TUNNEL_TOKEN>
-
Скачайте и установите
cloudflared. -
Откройте командную строку от имени администратора.
-
Выполните следующую команду:
cloudflared.exe service install <TUNNEL_TOKEN>
-
Скачайте и установите
cloudflared. -
Откройте окно терминала и выполните следующую команду:
sudo cloudflared service install <TUNNEL_TOKEN>
-
Откройте окно терминала.
-
Выполните следующую команду:
docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token <TUNNEL_TOKEN>
-
Приложение теперь доступно по указанному вами имени хоста. Cloudflare автоматически проксирует трафик через свою сеть, применяя кеширование CDN, защиту WAF и защиту от DDoS-атак.
Быстрые туннели (для разработки)
Для локальной разработки можно мгновенно предоставить доступ к localhost без учётной записи Cloudflare:
cloudflared tunnel --url http://localhost:8080Это генерирует случайный trycloudflare.com поддомен, который проксирует трафик на ваш локальный сервер. Quick Tunnels предназначены только для тестирования: они ограничены 200 одновременными запросами и не поддерживают Server-Sent Events (SSE).
Для использования в рабочей среде создать туннель взамен.
Следующие шаги
- Маршрутизация : настройте записи DNS, балансировщики нагрузки и поддержку протоколов.
- Конфигурация : разверните реплики, управляйте токенами и настраивайте производительность.
- Руководства по развёртыванию : разверните в Kubernetes, AWS, GCP, Terraform и других средах.
- Устранение неполадок : устраняйте типичные ошибки и проблемы с подключением.