přeskočit na obsah
[JJ]
zpět na články
cloudflarenetworkingtunnelsecurity4. 5. 2026 6 min

Cloudflare Tunnel k 17 serverům: setup guide

Step-by-step nasazení Cloudflare Tunnel na celou síť. Žádné public IP, žádný port forwarding, žádný VPN. HTTPS zdarma.

Mám doma 17 serverů, ale doma žádný public port nemám. Žádný router-forward, žádná NAT brána pro každou službu, žádný kus hardwaru, který by mohl umřít. Cloudflare Tunnel mi dal HTTPS na všechno, transparentně, zdarma.

Architektura

text
internet → cloudflare edge → tunnel daemon na jednom LXC → reverse proxy → backendy

cloudflared běží na jednom serveru (malý LXC stačí). Tunnel udržuje outbound HTTPS connection na Cloudflare edge. Když uživatel přijde na ssh.example.com, edge ho přes tunnel pošle na tunelovací server, který přepošle na backend.

Setup

1. Vytvoř tunnel v Cloudflare dashboardu

Zero Trust → Networks → Tunnels → Create Tunnel. Pojmenuj. Zkopíruj token.

2. Nainstaluj cloudflared

Detailní step-by-step v snippet/cloudflare-tunnel-systemd.

3. Config

yaml
# /etc/cloudflared/config.yml
tunnel: <TUNNEL_ID>
credentials-file: /etc/cloudflared/cert.json

ingress:
  - hostname: ssh.example.com
    service: ssh://localhost:22

  - hostname: tasks.example.com
    service: http://192.168.1.20:3456

  - hostname: git.example.com
    service: http://192.168.1.30:3000

  - hostname: grafana.example.com
    service: http://192.168.1.40:3000

  # catch-all
  - service: http_status:404

4. DNS records

bash
cloudflared tunnel route dns <tunnel-id> ssh.example.com
cloudflared tunnel route dns <tunnel-id> tasks.example.com
# ...

Vytvoří CNAME na <tunnel-id>.cfargotunnel.com. Žádný A record.

Cloudflare Access

Pro SSH a admin paneli přidávám Cloudflare Access — buď email OTP, nebo Google SSO. Bezpečnostně víc než Tailscale, protože každý request je autorizovaný.

Application policy:

  • Application type: Self-hosted
  • Domain: ssh.example.com
  • Identity provider: One-time PIN (email OTP)
  • Policy: email == "[email protected]" — jen tvoje adresa, nic víc

Výsledek

  • 17 serverů dostupných z internetu přes HTTPS
  • 0 otevřených portů na routeru
  • 0 public IP adres
  • automatický HTTPS, žádné Let's Encrypt rotace
  • 0 EUR/měsíc

Nevýhody:

  • single point of failure na cloudflared daemon (mitiguju healthcheck + systemd restart)
  • závislost na Cloudflare jako CA
  • Cloudflare vidí veškerý traffic (end-to-end TLS by řešil, ale ne pro web traffic)

Nevadí. Pohoda.