Cloudfkare Tunel - это zerotier подключение для публикации сервисов и сайтов без использования белого ip адреса. Имеет ряд ограничений и особенностей таких как ограничение разовой передачи данных (100 Мб за файл на бесплатном плане) более низкая надежность и легкая блокируемость.
Документация: Cloudflare Tunnel | Cloudflare Zero Trust docs
Пример docker compose файла:
type: docker-compose
tags:
aliases:
program:
- cloudflared
modified: 2024-10-06T00:57:38+03:00
МОС: “[[Docker Compose]]”
Докер файл написан из расчет на подключение к Traefik в сети докер proxy. Токен выдается при создании нового подключения в cloudflare
services:
cloudflare:
image: cloudflare/cloudflared:latest
container_name: cloudflare
command: tunnel --no-autoupdate run
environment:
- TUNNEL_TOKEN=$TUNNEL_TOKEN
networks:
- proxy
restart: unless-stopped
networks:
proxy:
external: true
Настройка Cloudflare Tunel вместе с Traefik
type: note
tags:
aliases:
data: 2024-08-18 01:15
modified: 2024-10-25T13:00:53+03:00
dg-publish: true
Для переадресации запросов через [[Self-hosting. Cloudflare Tunel|Self-hosting. Cloudflare Tunel]] на внутренний [[Self-hosting. Traefik|Traefik]] необходимо выполнить дополнительные настройки для передачи заголовков.
Для этого при создании нового подключения необходимо указать следующие настройки:
Для случая когда в единой сети докера, или указать Ip адрес контейнера/сервера на котором прослушивает traefik входящий трафик на 443 порту.
Включить настройку HTTP2 connection, а так же заполнить Origin Server Name и HTTP Host Header указав https адрес по которому traefik обрабатывает сервис который необходимо пробросить.
[!urls]- Упоминания:
Передача ip клиента при использовании тунеля
type: note
tags:
aliases:
data: 2025-06-09 00:05
modified: 2025-06-09T01:48:04+03:00
dg-publish: true
discourse_post_id: 59
discourse_topic_id: 39
discourse_url: https://gig.ovh//t/39
discourse_tags:
discourse_category_id: 6
discourse_category: Статьи от Deniom
При использование защиты [[Self-hosting. CrowdSec|CrowdSec]] в связке с проксирование cloudflare или [[Self-hosting. Cloudflare Tunel|Cloudflare Tunel]] возникает проблема с баном не атакующего клиента а вышестоящего прокси.
В обычной настройке crowdsec получает ip адрес клиента которого надо заблокировать из журнала доступа, но при использовании сложной системы проксирования когда перед [[Self-hosting. Traefik|Traefik]] находится еще один сервер пробирования (например cloudflare) клиентом в журнале становиться сам вышестоящий прокси сервер.
Настройка при использовании cloudflare tunnel
Для решения данной проблемы в статическую конфигурацию traefik необходимо добавить разрешенные прокси.
Разрешенные ip с которых необходимо передавать ip клиента указываются в разделе
forwardedHeaders:
trustedIPs:
Пример:
entryPoints:
http:
address: ":80"
forwardedHeaders:
trustedIPs: &trustedIPs
- 192.168.0.1/24
- 100.127.101.215
http:
middlewares:
- crowdsec@file
redirections:
entryPoint:
to: https
scheme: https
https:
address: ":443"
forwardedHeaders:
trustedIPs: *trustedIPs
http:
middlewares:
- crowdsec@file
Необходимо указать ip адрес машины на которой непосредственно установлен cloudflare tunnel (если на одной машине в единой сети докер проблем не должно быть).
[!note]
Конструкция&trustedIPsиспользуется при объявлении блока конфигурации для повторного использования. Для вызова используется конструкция*trustedIPs
Настройка при использовании проксирования cloudflare без cloudflare tunnel
Для решения проблемы когда перед traefik находится только сам сервер cloudflare можно воспользоваться плагином для traefik.
Плагин: Plugin
GitHub: GitHub - BetterCorp/cloudflarewarp
[!danger]
Плагин не обновляется возможно состав адресов неактуальный
Плагин по сути выполняет те же функции что и указание доверенных прокси при этом в его состав уже включены все адреса серверов cf используемые для проксирования.
Пример статической конфигурации:
entryPoints:
http:
address: ":80"
http:
middlewares:
- crowdsec@file
- cloudflarewarp@file
redirections:
entryPoint:
to: https
scheme: https
https:
address: ":443"
http:
middlewares:
- crowdsec@file
- cloudflarewarp@file
experimental:
plugins:
crowdsec-bouncer-traefik-plugin:
moduleName: "github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin"
version: "v1.4.2"
cloudflarewarp:
moduleName: github.com/BetterCorp/cloudflarewarp
version: v1.3.3
В папке динамической конфигурации необходимо создать файл для нового middlewares следующего содержимого:
http:
middlewares:
cloudflarewarp:
plugin:
cloudflarewarp:
disableDefault: false
[!urls]- Упоминания:
[!urls]- Упоминания:
- [[Self-hosting программы]]
- [[Сервер Gateway]]
- [[Получите доступ к локальной установке Immich через Интернет, используя свой собственный домен|Инструкция по настройке на примере Immich]]
[!description]- Примечание
Примечание:: Публикация сервиса в интернете без белого IP

