← Cloudflare Tunnel / tunnel
Řešení potíží
Tato stránka vám pomůže diagnostikovat a vyřešit časté problémy s Cloudflare Tunnel. Řadu problémů vyřeší aktualizace na nejnovější verzi cloudflared : viz Aktualizace cloudflared před dalším zkoumáním.
Informace o monitorování stavu tunelu, protokolech a metrikách najdete v Monitoring.
Chyby připojení
Když cloudflared nemůže dosáhnout sítě Cloudflare, protokoly konkrétní chybové zprávy, které ukazují, zda problém spočívá v překladu DNS, v protokolu QUIC (UDP), nebo v připojení TCP.
Selhání překladu DNS
edge discovery: error looking up Cloudflare edge IPs
ERR edge discovery: error looking up Cloudflare edge IPs: the DNS query failed
error="lookup _v2-origintunneld._tcp.argotunnel.com on 172.19.64.1:53: no such host"Tato chyba znamená, že překladač DNS nastavený ve vašem počítači nedokáže přeložit záznamy SRV, které cloudflared používá k zjištění Cílové IP adresy Cloudflare Tunnel. Mezi časté příčiny patří firemní DNS resolvery, které odstraňují nebo blokují záznamy SRV, a DNS resolvery, které vrací komprimované záznamy SRV.
Diagnostika:
Na cloudflared hostitelském počítači spusťte:
dig SRV _v2-origintunneld._tcp.argotunnel.comPokud obdržíte SERVFAIL, NXDOMAIN, nebo prázdnou odpověď, otestujte ji vůči veřejnému resolveru Cloudflare:
dig SRV _v2-origintunneld._tcp.argotunnel.com @1.1.1.1Chcete-li problém vyřešit:
- Pokud
1.1.1.1vrátí výsledky, ale váš lokální resolver ne, nakonfigurujte hostitele tak, aby používal Cloudflare DNS (1.1.1.1) nebo jiného veřejného resolveru. - Pokud žádný z resolverů nevrátí výsledky, váš firewall pravděpodobně blokuje odchozí dotazy DNS (port UDP
53). Požádejte svého správce sítě, aby povolil provoz DNS.
DNS query failed ... i/o timeout
ERR edge discovery: error looking up Cloudflare edge IPs: the DNS query failed
error="lookup _v2-origintunneld._tcp.argotunnel.com on 127.0.0.11:53:
read udp 127.0.0.1:53467->127.0.0.11:53: i/o timeout"Tato varianta znamená, že DNS dotazy z cloudflared jsou zcela blokovány nebo zahazovány, resolver nikdy neodpoví. To je běžné v kontejnerových prostředích (Docker, Kubernetes), kde interní DNS resolver (127.0.0.11) je nedostupný nebo nesprávně nakonfigurovaný.
Chcete-li problém vyřešit:
- V Dockeru zkontrolujte konfiguraci DNS svého kontejneru (
/etc/resolv.conf). Resolver můžete přepsat pomocí--dns 1.1.1.1při spuštění kontejneru. - V Kubernetes zkontrolujte
kube-dnsneboCoreDNSslužba běží a je dostupná z podu. - Na
cloudflaredhostiteli ověřte, že resolver uvedený v/etc/resolv.confje dostupný a odpovídá na dotazy.
Časový limit handshake QUIC
Failed to dial a quic connection
ERR Failed to dial a quic connection error="failed to dial to edge with quic:
timeout: handshake did not complete in time" connIndex=0 ip=198.41.192.227
INF Retrying connection in up to 2s connIndex=0 ip=198.41.192.227Tato chyba znamená cloudflared přeložil Cílové IP adresy Cloudflare Tunnel ale nedokázal dokončit QUIC handshake přes UDP port 7844. Vaše síť nebo firewall blokuje odchozí provoz UDP do Cloudflare.
cloudflared provádí nové pokusy s exponenciální prodlevou (2, 4, 8, 16, 32, až 64 sekund). Po jejich vyčerpání přejde na HTTP/2 přes TCP:
INF Switching to fallback protocol http2 connIndex=0Pokud selže i záložní možnost, zobrazí se Časový limit připojení TCP chyba.
Diagnostika:
Na cloudflared hostitelském počítači otestujte konektivitu na portu 7844:
nc -uvz -w 3 198.41.192.227 7844Nahraďte 198.41.192.227 s IP adresou uvedenou ve vašem chybová zpráva. Pokud je port uzavřený nebo blokovaný firewallem, příkaz vrátí Connection refused nebo dojde k vypršení časového limitu.
Chcete-li problém vyřešit:
- Povolit odchozí provoz UDP na port
7844na svém firewallu nebo v security group. Viz úplný seznam IP adres a portů. - Pokud nemůžete otevřít UDP,
cloudflaredse automaticky přepne na HTTP/2 přes TCP. HTTP/2 můžete vynutit také nastavením--protocol http2parametr run, doporučujeme však použít QUIC pro lepší výkon.
Časový limit připojení TCP
DialContext error: dial tcp ... i/o timeout
ERR Unable to establish connection with Cloudflare edge
error="DialContext error: dial tcp 198.41.200.43:7844: i/o timeout" connIndex=0
ERR Serve tunnel error
error="DialContext error: dial tcp 198.41.200.43:7844: i/o timeout" connIndex=0Tato chyba znamená cloudflared se nemůže připojit k Cloudflare přes TCP port 7844. Pokud se také zobrazí Časový limit handshake QUIC nad ním jsou blokovány UDP i TCP, tunel se tak nemůže připojit vůbec.
Diagnostika:
Pro rychlý test spusťte:
curl -v https://region1.v2.argotunnel.com:7844Pokud spojení zamrzne, provoz je zahazován mezi vaším hostitelem a Cloudflare.
Chcete-li otestovat, zda cloudflared se může připojit na portu 7844, spusťte:
nc -vz -w 3 198.41.200.43 7844Nahraďte 198.41.200.43 s IP adresou uvedenou ve vašem chybová zpráva. Pokud je port uzavřený nebo blokovaný firewallem, příkaz vrátí Connection refused nebo dojde k vypršení časového limitu.
Chcete-li problém vyřešit:
- Povolit odchozí provoz TCP na port
7844do Rozsahy IP adres Cloudflare Tunnel. - Pokud vaše prostředí blokuje port
7844zcela (UDP i TCP), tunel nemůže fungovat. Obraťte se na správce sítě a požádejte o povolení odchozího provozu na tomto portu.
Zobrazuje se mi cloudflared service is already installed.
Pokud se tato chyba zobrazí při instalaci vzdáleně spravovaného tunelu, ujistěte se, že žádný jiný cloudflared instance běží na tomto počítači jako služba. Na tomto počítači smí běžet pouze jedna instance cloudflared může na daném počítači běžet jako služba. Místo toho přidejte další trasy do stávajícího tunelu. Alternativně můžete spustit sudo cloudflared service uninstall k odinstalování cloudflared.
Zobrazuje se mi An A, AAAA, or CNAME record with that host already exists.
Pokud se vám nedaří uložit veřejný hostname tunelu, zvolte jiný hostname nebo odstraňte existující záznam DNS. Zkontrolujte DNS záznamy pro vaši doménu z Cloudflare dashboard ↗.
Soubor s přihlašovacími údaji tunelu neexistuje nebo se nejedná o soubor.
Pokud se při spuštění tunelu zobrazí následující chyba, znovu zkontrolujte config.yml soubor a ujistěte se, že credentials-file ukazuje na správné umístění. Možná budete muset změnit /root/ do vašeho domovského adresáře.
cloudflared tunnel run2021-06-04T06:21:16Z INF Starting tunnel tunnelID=928655cc-7f95-43f2-8539-2aba6cf3592d
Tunnel credentials file '/root/.cloudflared/928655cc-7f95-43f2-8539-2aba6cf3592d.json' doesn't exist or is not a fileOvěření mého tunelu selhává.
Chcete-li začít používat Cloudflare Tunnel, musí se uživatel s rolí Super Administrator v účtu Cloudflare nejprve přihlásit přes cloudflared login. Klient spustí okno prohlížeče a vyzve uživatele, aby ve svém účtu Cloudflare vybral hostname. Po výběru Cloudflare vygeneruje certifikát složený ze tří součástí:
- Veřejný klíč origin certifikátu pro daný hostname
- Privátní klíč origin certifikátu pro danou doménu
- Token jedinečný pro Cloudflare Tunnel
Tyto tři součásti jsou sloučeny do jednoho souboru PEM, který se stáhne jednorázově během tohoto přihlašovacího procesu. Certifikát hostitele platí pro kořenovou doménu a libovolnou subdoménu o jednu úroveň níž. Cloudflare tento soubor certifikátu používá k ověření cloudflared vytvořit záznamy DNS pro vaši doménu v Cloudflare.
Třetí složka, token, se skládá z ID zóny (pro vybranou doménu) a API tokenu vázaného na uživatele, který se poprvé ověřil pomocí příkazu login. Když se změní oprávnění uživatele (pokud je například tento uživatel odebrán z účtu nebo se stane administrátorem jiného účtu), Cloudflare obnoví API klíč uživatele. Soubor certifikátu stažený přes cloudflared si ponechá starší API klíč, což může způsobit chyby ověřování. Uživatel se bude muset znovu přihlásit přes cloudflared a znovu vygenerovat certifikát. Případně může administrátor vytvořit vyhrazeného servisního uživatele pro ověřování.
Zobrazuje se mi chyba: x509: certificate signed by unknown authority.
To znamená, že origin používá certifikát, který cloudflared nedůvěřuje. Tuto chybu můžete například obdržet, pokud používáte kontrolu SSL/TLS v proxy mezi vaším serverem a Cloudflare. Řešení:
- Přidejte certifikát do systémového úložiště certifikátů.
- Použijte
--origin-ca-poolpříznak a zadejte cestu k certifikátu. - Použijte
--no-tls-verifypříznak pro zastavenícloudflaredkontrolou certifikátu z hlediska řetězce důvěryhodnosti.
Při pokusu o spuštění tunelu se mi zobrazuje chyba 1033.
A 1033 chyba znamená, že váš tunel není připojený k síti Cloudflare, protože síť Cloudflare nemůže najít funkční cloudflared instance pro příjem provozu.
Nejprve zkontrolujte, zda je váš tunel uveden jako Active v Cloudflare dashboard ↗ přechodem na Sítě > Tunnels nebo spusťte cloudflared tunnel list. Pokud tunel není Active, projděte si následující a podnikněte kroky potřebné pro stav vašeho tunelu:
| Stav | Význam | Doporučená akce |
|---|---|---|
| Funkční | Tunel je aktivní a obsluhuje provoz prostřednictvím čtyř připojení ke globální síti Cloudflare. | Není nutná žádná akce. Váš tunel funguje správně. |
| Neaktivní | Tunel byl vytvořen (přes API nebo dashboard), ale cloudflared connector nebyl nikdy spuštěn k navázání připojení. |
Nainstalujte a spusťte cloudflared na vašem origin serveru, aby se tunel připojil ke Cloudflare. Instalační příkaz najdete v Cloudflare dashboardu v části Sítě > Tunnels : vyberte svůj tunel a poté na Přehled kartě vyberte Přidejte repliku. Pro nastavení založené na API si přečtěte Instalace a spuštění tunelu. |
| Nedostupný | Tunel byl dříve připojen, ale nyní je odpojen, protože cloudflared proces se zastavil. |
1. Zajistěte, že cloudflared služba nebo proces na vašem serveru aktivně běží. 2. Zkontrolujte problémy na straně serveru, například vypnutý počítač, pád aplikace nebo nedávné změny v síti. |
| Degradovaný | cloudflared connector běží a tunel obsluhuje provoz, ale alespoň jedno jednotlivé připojení selhalo. Další zhoršení dostupnost tunelu by mohlo způsobit výpadek tunelu a přerušení obsluhy provozu. |
1. Zkontrolujte své cloudflared protokoly pro chyby připojení nebo chybové zprávy. 2. Prověřte pravidla lokální sítě a firewallu, zda neblokují připojení k IP adresy a porty Cloudflare Tunnel. |
Další informace naleznete v úplný seznam chyb Cloudflare 1xxx.
Při připojování k aplikaci HTTP nebo HTTPS přes tunel se mi zobrazuje chyba 502 Bad Gateway.
A 502 Bad Gateway chybu s Unable to reach the origin service. The service may be down or it may not be responding to traffic from cloudflared na trase tunelu znamená, že samotný tunel je připojen k síti Cloudflare, ale cloudflared se nemůže dostat ke službě origin definované ve vašem pravidle ingress. Na rozdíl od chyba 1033, což znamená, že tunel není připojen ke Cloudflare, chyba 502 znamená, že problém je mezi cloudflared a vaší místní službou.
Chcete-li zjistit konkrétní příčinu, zkontrolujte své Protokoly tunelu pro error-ové zprávy. Časté příčiny zahrnují:
Služba originu neběží
Pokud se služba origin zastavila nebo se nikdy nespustila, cloudflared protokoly zobrazí chybu podobnou této:
error="dial tcp [::1]:8080: connect: connection refused"Chcete-li problém vyřešit, ověřte, že služba běží a naslouchá na očekávaném portu:
curl -v http://localhost:8080Pokud služba neběží, spusťte ji nebo restartujte. Že služba naslouchá, můžete ověřit spuštěním ss -tlnp | grep <PORT> (Linux) nebo lsof -iTCP -sTCP:LISTEN -nP | grep <PORT> (macOS).
URL adresa služby originu používá nesprávný protokol
Pokud origin server očekává HTTPS, ale trasa tunelu určuje http://, nebo naopak, cloudflared protokoly zobrazí chybu podobnou této:
error="net/http: HTTP/1.x transport connection broken: malformed HTTP response \"\x15\x03\x01\x00\x02\x02\""Chcete-li problém vyřešit, aktualizujte URL služby ve své trase tunelu tak, aby odpovídala protokol očekává váš origin. Například změňte http://localhost:8080 na https://localhost:8080. Pokud používáte lokálně spravovaný tunel, aktualizujte své pravidlo ingress v konfigurační soubor.
URL adresa služby originu směřuje na nesprávný port
Pokud se port v trase vašeho tunelu neshoduje s portem, na kterém naslouchá vaše služba, cloudflared zaznamená connection refused chybu pro daný port. Zkontrolujte URL služby ve svém ingress pravidle a porovnejte ji s portem, na který je vaše aplikace navázaná.
Origin používá certifikát, který cloudflared nedůvěřuje
Pokud origin server prezentuje certifikát TLS, který cloudflared nemůže ověřit, protokoly zobrazí chybu podobnou této:
error="x509: certificate is valid for example.com, not localhost"Nejčastěji k tomu dochází, když origin server používá certifikát self-signed nebo když se mezi cloudflared a origin.
Chcete-li problém vyřešit, použijte jeden z následujících postupů:
-
Nastavte
originServerNames hostname v origin certifikátu ve vaší trase tunelu. Pokud používáte lokálně spravovaný tunel, zde je příklad konfigurační soubor:ingress: - hostname: app.example.com service: https://localhost:443 originRequest: originServerName: app.example.com -
Zadejte certifikát CA pomocí
caPool:ingress: - hostname: app.example.com service: https://localhost:443 originRequest: caPool: /path/to/ca-cert.pem -
Jako poslední možnost můžete ověřování TLS vypnout pomocí
noTLSVerify. To se pro produkční prostředí nedoporučuje.ingress: - hostname: app.example.com service: https://localhost:443 originRequest: noTLSVerify: true
Zobrazuje se mi ERR_TOO_MANY_REDIRECTS při pokusu o připojení k interně hostované aplikaci Access.
Tato chyba nastává, když cloudflared nerozpoznává certifikát SSL/TLS předložený vaším origin serverem. Problém vyřešíte nastavením origin server name parametr na hostname z vašeho certifikátu origin serveru. Zde je příklad konfigurace lokálně spravovaného tunelu:
ingress:
- hostname: test.example.com
service: https://localhost:443
originRequest:
originServerName: test.example.comcloudflared access zobrazuje chybu websocket: bad handshake.
To znamená, že vaše cloudflared access klient se nemůže dostat k vašemu cloudflared tunnel origin. Chcete-li to diagnostikovat, podívejte se na cloudflared tunnel protokoly. Častou hlavní příčinou je, že cloudflared tunnel se nedaří proxovat na váš origin (například proto, že je ingress špatně nakonfigurovaný, origin je nedostupný nebo certifikát HTTPS na origin nelze ověřit pomocí cloudflared tunnel). Pokud cloudflared tunnel nemá žádné protokoly, znamená to, že síť Cloudflare k němu není schopna směrovat provoz websocketů.
Tato chyba může mít několik možných příčin:
- Váš
cloudflared tunnelbuď neběží, nebo není připojen k síti Cloudflare. - WebSockets nejsou povoleno.
- Váš účet Cloudflare má povolené Universal SSL, ale režim šifrování SSL/TLS je nastaven na Vypnuto (nezabezpečené). Chcete-li problém vyřešit, přejděte na SSL/TLS > Přehled v dashboardu Cloudflare a nastavte režim šifrování SSL/TLS na Flexibilní, Full, nebo Full (strict).
- Vaše požadavky jsou blokovány Super Bot Fight Mode. Chcete-li problém vyřešit, ujistěte se, že máte nastavené Definitely automated na Allow v nastavení bot fight mode.
- Vaše SSH nebo RDP aplikace Access má Binding Cookie povoleno. Chcete-li soubor cookie zakázat, přejděte do Řízení přístupu > Aplikace a upravte nastavení aplikace.
- Jeden nebo více Workers routes se překrývají s hostname tunelu a Workers nezpracovávají provoz správně. Chcete-li problém vyřešit, buď vyřaďte svůj tunel z trasy Workeru tím, že nedefinujete trasu obsahující hostname tunelu, nebo upravte svůj Worker tak, aby zpracovával pouze konkrétní cesty a všechny ostatní požadavky přeposílal na origin (například pomocí
return fetch(req)).
Připojení tunelu selžou s chybou SSL.
Pokud cloudflared vrátí chybu error="remote error: tls: handshake failure", zkontrolujte, zda je daný název hostitele pokryt certifikátem SSL. Pokud používáte víceúrovňovou subdoménu, pokročilý certifikát může být vyžadováno, protože Universal SSL nepokrývá více než jednu úroveň subdomény. V prohlížeči se to může projevit jako ERR_SSL_VERSION_OR_CIPHER_MISMATCH.
Připojení tunelu selžou s Too many open files chyba.
Pokud váš Protokoly Cloudflare Tunnel vrátí socket: too many open files chyba, znamená to, že cloudflared vyčerpal limit otevřených souborů na vašem počítači. Maximální počet otevřených souborů neboli deskriptorů souborů je nastavení operačního systému, které určuje, kolik souborů smí proces otevřít. Chcete-li tento limit zvýšit, musíte nakonfigurovat nastavení ulimit na počítači, na kterém běží cloudflared.
Zobrazuje se mi failed to sufficiently increase receive buffer size v mých protokolech cloudflared.
Toto zvýšení velikosti bufferu hlásí quic-go library ↗ využívaný cloudflared ↗. Více o této protokolové zprávě se dozvíte v quic-go repository ↗. Tato zpráva v protokolu obvykle nemá žádný dopad a při řešení problémů ji lze bezpečně ignorovat. Pokud jste však nasadili cloudflared v jedinečném prostředí s vysokou šířkou pásma je možné velikost bufferu pro účely testování ručně přepsat.
Chcete-li nastavit maximální velikost přijímací vyrovnávací paměti v Linuxu:
-
Vytvořte nový soubor v
/etc/sysctl.d/:sudo vi 98-core-rmem-max.conf -
V souboru definujte požadovanou velikost bufferu:
net.core.rmem_max=2500000 -
Restartujte hostitelský počítač, na kterém běží
cloudflared. -
Chcete-li ověřit, že se tyto změny projevily, použijte
greppříkaz:sudo sysctl -a | grep net.core.rmem_maxnet.core.rmem_max = 2500000
Cloudflare Tunnel mi ukládá streamovanou odpověď do vyrovnávací paměti, místo aby ji přenášel v reálném čase.
Provoz procházející přes Cloudflare Tunnel se ve výchozím nastavení ukládá do vyrovnávací paměti, pokud origin server neobsahuje Content-Type: text/event-stream hlavičku odpovědi. Tato hlavička sděluje cloudflared ke streamování dat tak, jak přicházejí, místo ukládání celé odpovědi do vyrovnávací paměti.
Cloudflare Tunnel se nepřipojí přes Palo Alto Networks Next-Generation Firewall
Společnost Cloudflare nedávno zjistila, že verze 9128 databáze App-ID pro Palo Alto Networks Next Generation Firewall (NGFW) obsahuje změnu, která ovlivňuje požadavky na povolení provozu Cloudflare Tunnel a Cloudflare One Client.
Palo Alto Networks Next Generation Firewall (NGFW) detekuje jak Cloudflare Tunnel (cloudflared) a Cloudflare One Client (WARP se Zero Trust) jako cloudflare-warp, bez ohledu na verzi databáze App-ID. V současné době neexistuje samostatné App-ID pro cloudflared.
Tento problém pravděpodobně ovlivní klienty Cloudflare One Client a WARP, protože Palo Alto Networks NGFW rozpoznává jejich provoz jako cloudflare-warp.
Tato část se zaměřuje na Cloudflare Tunnel (cloudflared) se připojuje ke Cloudflare přes QUIC (UDP port 7844).
Od verze databáze App-ID 9128 (vydané July 27, 2026) změnil NGFW požadavky na povolení tohoto provozu. Verze databáze App-ID 9128 a novější vyžaduje, abyste explicitně povolili quic-base aplikaci navíc k dříve požadovaným App-ID a jejich závislostem.
Chcete-li obnovit konektivitu, buď vraťte databázi App-ID do předchozího stavu, nebo výslovně povolte požadované aplikace a port UDP.
Možnost 1: Vrácení databáze App-ID
Vraťte se k verzi databáze App-ID 9127 a deaktivujte automatické aktualizace App-ID, dokud společnost Palo Alto Networks neposkytne trvalé řešení.
Pokud vrátíte databázi App-ID zpět, považujte to za dočasné řešení a spojte se se svým bezpečnostním týmem. Jakmile Palo Alto Networks poskytne trvalé řešení, znovu zapněte automatické aktualizace.
Možnost 2: Konfigurace explicitní zásady brány firewall
Vytvořte vlastní službu pro port UDP 7844
-
V PAN-OS přejděte na Objekty > Služby.
-
Vytvořte službu s následujícím nastavením:
Nastavení Hodnota Název cloudflared_7844_udpPopis Volitelné Protokol UDP Cílový port 7844Zdrojový port Ponechte prázdné Časový limit relace Inherit from application -
Vyberte OK.
Vytvořte nebo aktualizujte pravidlo brány firewall
- Přejděte na Zásady.
- Vytvořte nebo upravte univerzální nebo interzóna pravidlo brány firewall.
- Nakonfigurujte Zdroj a Cíl kritéria, která odpovídají příslušným tokům provozu ve vašem prostředí:
- Zdroj: Vyberte příslušnou zdrojovou zónu a/nebo zdrojovou adresu.
- Cíl: Vyberte příslušnou cílovou zónu a/nebo cílovou adresu.
- V části Aplikace, přidejte všechny následující aplikace:
cloudflare-warpquic-base
- V části Kategorie služby/URL, přidejte vlastní službu
cloudflared_7844_udp. - Nastavte pravidlo Akce na Allow.
- Zapněte protokolování podle bezpečnostní politiky vaší organizace.
- Uložte změnu zásad a poté ověřte, že Cloudflare Tunnel dokáže přes firewall navázat a udržet spojení.
Jak mohu kontaktovat podporu?
Aby bylo řešení problémů co nejrychlejší, uveďte v žádosti o podporu co nejpodrobnější informace. Čím více souvislostí poskytnete, tím rychleji lze problém identifikovat a vyřešit.
Aby bylo zajištěno efektivní přeložení, když kontaktování podpory, uveďte ve svém ticketu co nejvíce relevantních podrobností:
Shromážděte ladicí protokoly
Chcete-li zachytit podrobný výstup pro řešení potíží:
-
Lokálně spravované tunely: Spusťte
cloudflaredhodnotou--loglevel debugpříznak:cloudflared tunnel --loglevel debug runChcete-li uchovávat protokoly v souboru, přidejte
--logfilepříznak:cloudflared tunnel --loglevel debug --logfile /var/log/cloudflared/cloudflared.log run -
Vzdáleně spravované tunely (vytvořené přes dashboard): Nakonfigurujte protokolování tunelu v parametry run. Protokoly můžete streamovat také v reálném čase pomocí vzdálené streamování protokolů funkce.
Při kontaktování podpory přiložte ladicí protokoly. Úplný přehled informací, které je potřeba uvést, najdete ve výše uvedeném seznamu.