← Cloudflare One / cloudflare-one / networks / connectors / cloudflare-tunnel / troubleshoot-tunnels
Časté chyby
Tato část se zabývá nejčastějšími chybami, se kterými se můžete setkat při připojování zdrojů pomocí Cloudflare Tunnel. Pokud svůj problém níže nenajdete, přečtěte si Odstraňování problémů v Cloudflare One, zobrazte si Protokoly tunelu, nebo kontaktujte Cloudflare Support.
Stav tunelu
Stav připojení tunelu můžete zkontrolovat buď v dashboardu Cloudflare (přechodem na Sítě > Tunnels) nebo spuštěním cloudflared tunnel list příkaz. Každý tunel zobrazuje stav odpovídající aktuálnímu stavu připojení:
| 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. |
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.
Můj tunel se náhodně odpojuje.
Dlouhotrvající připojení navázaná přes Cloudflare One, jako jsou relace SSH, mohou trvat až osm hodin. Poruchy na cestě služby však mohou vést k častějším odpojením. Tato odpojení bývají často způsobena pravidelně plánovanými udržovacími událostmi, jako jsou aktualizace nebo restarty datového centra, serveru či služby. Pokud se domníváte, že tyto události nejsou příčinou odpojení ve vašem prostředí, shromážděte příslušné protokoly klienta a Protokoly tunelu a kontaktujte podporu.
Pokud odpojení postihují především nečinné relace SSH, WebSocket připojení nebo jiná dlouhotrvající připojení, může být relevantní transportní protokol.
Když cloudflared používá QUIC, mohou být neaktivní relace citlivější na síťová zařízení, která agresivně ukončují nečinný provoz UDP kvůli vypršení časového limitu. Pokud neaktivní připojení opakovaně vypadávají, vyzkoušejte jeden nebo více z následujících postupů:
- Nakonfigurujte keepalive signály na aplikační vrstvě, jako například
ServerAliveIntervalpro SSH. - Otestujte s
cloudflarednastaveno naprotocol: http2. - Zkontrolujte místní firewally, zařízení NAT a nadřazené síťové vybavení, zda nemají krátké časové limity nečinnosti UDP.
Při selhání navázání připojení způsobeném blokováním provozu QUIC si přečtěte výše uvedené sekce o řešení potíží s QUIC.
ping a traceroute příkazy nefungují.
Chcete-li odeslat ping na IP adresu za Cloudflare Tunnel, musí váš systém povolit provoz ICMP přes cloudflared. Pokyny ke konfiguraci najdete v dokumentace ICMP proxy.
Zobrazuje se mi Error: This route's network is inside an existing subnet's network at "100.96.0.0/12".
Tato chyba nastává, když se pokusíte přidat trasu CIDR, která spadá do rozsahu vyhrazeného pro Cloudflare One Client Rozsah CGNAT IP. 100.96.0.0/12 rozsah, který zahrnuje adresy od 100.96.0.1 na 100.111.255.254, je vyhrazena pro interní směrování WARP a nelze ji přidat jako trasu Cloudflare Tunnel. Abyste připojili svou privátní síť, budete muset změnit její IP/CIDR tak, aby se nepřekrývala s 100.96.0.0/12.
Zobrazuje se mi This site can't provide a secure connection.
Pokud se zobrazí chyba s názvem This site can't provide a secure connection a podtitul <hostname> uses an unsupported protocol, musíte objednat Advanced Certificate.
Pokud jste přidali víceúrovňová subdoména (více než jedna úroveň subdomény), musíte objednat Advanced Certificate pro hostname protože univerzální certifikát Cloudflare ve výchozím nastavení nepokrývá veřejný hostname.
Další informace o chybách Tunnelu zobrazíte ve svém Protokoly tunelu nebo kontaktujte Cloudflare Support.