← Cloudflare One / cloudflare-one / networks / connectors / cloudflare-tunnel / get-started
Создание туннеля (API)
Следуйте этому руководству, чтобы настроить Cloudflare Tunnel с помощью API.
Создание API-токена
Создание API-токена со следующими разрешениями:
| Type | Элемент | Разрешение |
|---|---|---|
| Аккаунт | Cloudflare Tunnel | Изменить |
| Zone | DNS | Изменить |
2. Создайте туннель
Сделайте POST запрос к Cloudflare Tunnel конечная точка:
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Cloudflare One Connectors WriteCloudflare One Connector: cloudflared WriteCloudflare Tunnel Write
curl "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"
}'{
"success": true,
"errors": [],
"messages": [],
"result": {
"id": "c1744f8b-faa1-48a4-9e5c-02ac921467fa",
"account_tag": "699d98642c564d2e855e9661899b7252",
"created_at": "2025-02-18T22:41:43.534395Z",
"deleted_at": null,
"name": "example-tunnel",
"connections": [],
"conns_active_at": null,
"conns_inactive_at": "2025-02-18T22:41:43.534395Z",
"tun_type": "cfd_tunnel",
"metadata": {},
"status": "inactive",
"remote_config": true,
"credentials_file": {
"AccountTag": "699d98642c564d2e855e9661899b7252",
"TunnelID": "c1744f8b-faa1-48a4-9e5c-02ac921467fa",
"TunnelName": "api-tunnel",
"TunnelSecret": "bTSquyUGwLQjYJn8cI8S1h6M6wUc2ajIeT7JotlxI7TqNqdKFhuQwX3O8irSnb=="
},
"token": "eyJhIjoiNWFiNGU5Z..."
}
}Скопируйте id и token значения, отображаемые в выводе. Они понадобятся вам для настройки и запуска туннеля.
Дальнейшие шаги зависят от того, хотите ли вы опубликовать приложение в интернете или подключить частную сеть.
3a. Опубликуйте приложение
Прежде чем публиковать приложение через туннель, необходимо:
Чтобы опубликовать приложение в интернете, выполните следующие действия. Если вы хотите подключить приватный ресурс, перейдите сразу к Подключите сеть раздел.
-
Сделайте
PUTзапрос для маршрутизации вашего URL локальной службы к публичному имени хоста. Например,
Хотя бы одно из следующих права доступа токена требуется:Необходимые разрешения 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:8001", "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": "c1744f8b-faa1-48a4-9e5c-02ac921467fa.cfargotunnel.com" }'Эта DNS-запись позволяет Cloudflare проксировать
app.example.comтрафик к вашему Cloudflare Tunnel (<tunnel-id>.cfargotunnel.com).
Это приложение станет общедоступным в интернете, как только вы Запустите туннель. Чтобы разрешить или заблокировать конкретных пользователей, создание приложения Access.
3b. Подключите сеть
Чтобы подключить частную сеть через свой туннель, Добавьте маршрут туннеля:
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Cloudflare One Networks WriteCloudflare Tunnel Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/teamnet/routes" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"network": "172.16.0.0/16",
"tunnel_id": "c1744f8b-faa1-48a4-9e5c-02ac921467fa",
"comment": "Example private network route"
}'cloudflared теперь может направлять трафик на эти IP-адреса назначения. Инструкции по настройке политик Zero Trust и подключению в качестве пользователя приведены в Подключите частные сети.
4. Установите и запустите туннель
Установка cloudflared на вашем сервере и запустить туннель с помощью token значение, полученное в 2. Создайте туннель. Вы также можете получить токен туннеля с помощью Токен Cloudflare Tunnel конечная точка.
-
Скачайте и установите ↗
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>
5. Проверьте статус туннеля
Чтобы проверить, обслуживает ли туннель трафик:
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Cloudflare One Connectors WriteCloudflare One Connectors ReadCloudflare One Connector: cloudflared WriteCloudflare One Connector: cloudflared ReadCloudflare Tunnel WriteCloudflare Tunnel Read
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/cfd_tunnel/c1744f8b-faa1-48a4-9e5c-02ac921467fa" \
--request GET \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"{
"success": true,
"errors": [],
"messages": [],
"result": {
"id": "c1744f8b-faa1-48a4-9e5c-02ac921467fa",
"account_tag": "699d98642c564d2e855e9661899b7252",
"created_at": "2025-02-18T22:41:43.534395Z",
"deleted_at": null,
"name": "example-tunnel",
"connections": [
{
"colo_name": "bos01",
"uuid": "2xz99mfm-a59e-4924-gyh9-z9vafaw6k0i2",
"id": "2xz99mfm-a59e-4924-gyh9-z9vafaw6k0i2",
"is_pending_reconnect": false,
"origin_ip": "10.1.0.137",
"opened_at": "2025-02-19T19:11:12.101642Z",
"client_id": "4xh4eb3f-cz0j-2aso-hu6i-36207018771a",
"client_version": "2025.2.0"
},
{
"colo_name": "phl01",
"uuid": "axe2socu-2fb5-3akx-b860-898zyes3cs9q",
"id": "axe2socu-2fb5-3akx-b860-898zyes3cs9q",
"is_pending_reconnect": false,
"origin_ip": "10.1.0.137",
"opened_at": "2025-02-19T19:11:12.006297Z",
"client_id": "4xh4eb3f-cz0j-2aso-hu6i-36207018771a",
"client_version": "2025.2.0"
},
{
"colo_name": "phl01",
"uuid": "9b5y0wm9-ca7f-ibq6-8ff4-sm53xekfyym1",
"id": "9b5y0wm9-ca7f-ibq6-8ff4-sm53xekfyym1",
"is_pending_reconnect": false,
"origin_ip": "10.1.0.137",
"opened_at": "2025-02-19T19:11:12.004721Z",
"client_id": "4xh4eb3f-cz0j-2aso-hu6i-36207018771a",
"client_version": "2025.2.0"
},
{
"colo_name": "bos01",
"uuid": "g6cdeiz1-80f5-3akx-b18b-3y0ggktoxwkd",
"id": "g6cdeiz1-80f5-3akx-b18b-3y0ggktoxwkd",
"is_pending_reconnect": false,
"origin_ip": "10.1.0.137",
"opened_at": "2025-02-19T19:11:12.110765Z",
"client_id": "4xh4eb3f-cz0j-2aso-hu6i-36207018771a",
"client_version": "2025.2.0"
}
],
"conns_active_at": "2025-02-19T19:11:12.004721Z",
"conns_inactive_at": null,
"tun_type": "cfd_tunnel",
"metadata": {},
"status": "healthy",
"remote_config": true
}
}Туннель со статусом Healthy имеет четыре соединения с сетью Cloudflare.