Proxy Cloudflare - oranžový obláček vedle záznamu DNS - přenáší HTTP a HTTPS na konkrétním seznamu portů a nic jiného. Postav ji před web a dostaneš cache, bezplatný certifikát, webový firewall a skrytou adresu origin serveru. Namiř ji na Minecraft server, server Arku nebo cokoli jiného, co mluví vlastním protokolem na vlastním portu, a spojení prostě selže, protože není žádný HTTP požadavek, který by Cloudflare mohl přečíst. Tahle jedna věta vyřeší asi osmdesát procent otázek, které lidé o Cloudflare mají, a zbytek článku jsou podrobnosti: které porty, která nastavení, které chyby a co oranžový obláček nikdy nechrání, ať je nastavený jakkoli.
Co oranžový obláček skutečně mění#
Cloudflare je tvůj autoritativní DNS hostitel a každý záznam má přepínač. Šedý obláček - „DNS only“ - znamená, že Cloudflare odpoví na dotaz tvou skutečnou adresou a ustoupí z cesty. Oranžový obláček znamená, že odpoví jednou ze svých anycast adres a provoz na tuto adresu zpracuje nejbližší datacentrum Cloudflare, které pak naváže vlastní spojení s tvým serverem.
Všechno ostatní z té záměny vyplývá:
dig www.example.comvrátí adresu Cloudflare, například104.21.x.xnebo172.67.x.x, nikdy tvou.- Pole TTL je zamčené na Auto, protože ho řídí Cloudflare.
- Tvůj origin vidí jen spojení z rozsahů Cloudflare, takže adresa návštěvníka musí pocházet z hlavičky.
- Cokoli, co kontroluje nebo přepisuje požadavek - cache, firewall, přesměrování, komprese - se může dít jen u záznamů, které jsou proxy.
Zóna skoro vždy skončí smíšená: www a apex oranžové, play a mail šedé. Není to kompromis, je to správná konfigurace. Záznamy DNS vysvětleně popisuje samotné typy záznamů, pokud je ti rozdíl mezi A/CNAME/SRV nový.
Porty, které proxy přenese, a všechno ostatní#
Záznam za proxy přijímá spojení jen na podporovaných portech Cloudflare. Cokoli jiného je odmítnuto nebo vyprší, a proto je „zapnul jsem oranžový obláček a můj web na portu 3000 přestal fungovat“ týdenní otázka.
| Protokol | Porty, které proxy přenáší |
|---|---|
| HTTP | 80, 8080, 8880, 2052, 2082, 2086, 2095 |
| HTTPS | 443, 2053, 2083, 2087, 2096, 8443 |
Všimni si, co tam chybí: 25 (SMTP), 3306, 5432, 22, 25565, 27015 a každý port UDP, který existuje. Proxy je HTTP reverzní proxy. Ukončí TLS, zpracuje požadavek, aplikuje pravidla a přepošle ho. Protokol, který nedokáže zpracovat, je protokol, který nedokáže proxovat.
Cloudflare prodává produkt pro čisté TCP - Spectrum - což je placený doplněk: libovolné aplikace na TCP v plánech Business a Enterprise, s podporou Minecraftu dostupnou níže v řadě. Ceny a hranice plánů se mění, takže si před návrhem zkontroluj aktuální stránku plánů a poctivě to porovnej s tím, že prostě máš slušný hosting.
Herní servery a oranžový obláček#
Tohle je sekce, kvůli které sem lidé přicházejí, takže tady je to celé jasně.
Herní provoz nemůže procházet bezplatnou proxy Cloudflare. Většina her používá UDP, které HTTP proxy vůbec nepřenáší. Hry, které používají TCP - třeba Minecraft Java na 25565 - používají port, který není na seznamu podporovaných. Zapnutí oranžového obláčku u herního záznamu vede k jednomu ze dvou výsledků: klient se nepřipojí, nebo se připojí k webovému edge Cloudflare a dostane HTTP chybu tam, kde čekal handshake.
Záznam pro herní server zůstává šedý. To je normální a přesně to každý hosting očekává:
Type Name Content ProxyA play 203.0.113.10 DNS onlySRV _minecraft._tcp.play DNS onlyZáznamy SRV se proxovat nedají vůbec - Cloudflare ti přepínač ani nenabídne - a pokud je hostname, na který záznam SRV ukazuje, sám za oranžovým obláčkem, dotaz se přeloží na Cloudflare a spojení selže. Záznam SRV i záznam A, na který míří, musí být DNS only. Formát popisuje záznamy SRV pro Minecraft a běžný případ záznamu A připojení domény k hernímu serveru.
Vyplývají z toho dva důsledky a ten druhý je nepříjemný.
Za prvé, Cloudflare adresu herního serveru neskrývá. Záznam se šedým obláčkem ji zveřejňuje, protože musí - klient se musí dostat přímo na tvůj stroj. Kdokoli, kdo umí číst DNS, umí přečíst tu adresu, včetně někoho, kdo plánuje útok.
Za druhé, nic na oranžovém obláčku u tvého webu nechrání herní server, který sdílí tuto adresu. Pokud jsou tvoje webové záznamy za proxy a herní záznam ne, neskryl jsi vůbec nic: záznam A pro play prozradí stejnou IP, na které je web. Takhle unikne adresa origin serveru nejčastěji.
Herní server skutečně chrání filtrování před ním, v síti, kterou provozuje tvůj hosting. Na RE:NODE je formulace záměrně úzká: filtrování upstreamu, které zahazuje zřejmé objemové záplavy, plus reflexní a malformovaný provoz. Útoky, které vypadají jako skuteční hráči, se nefiltrují, protože se od skutečných hráčů nedají odlišit, aniž bys znal hru. Hosting, který slibuje nulový výpadek při jakémkoli útoku, ti prodává větu, ne službu - co děláme proti útokům je delší verze a útoky DDoS na herní servery vysvětleně popisuje samotné typy útoků.
Režimy SSL, certifikáty a smyčky přesměrování#
V sekci SSL/TLS je nastavení režimu, které určuje, jak Cloudflare mluví s tvým originem, a špatná volba způsobuje dvě velmi běžná selhání.
| Režim | Cloudflare k originu | Použít |
|---|---|---|
| Off | Prosté HTTP, žádné HTTPS na edge | Nikdy |
| Flexible | Prosté HTTP | Nikdy, pokud se tomu dá vyhnout |
| Full | HTTPS, přijme se jakýkoli certifikát | Přijatelné provizorium |
| Full (strict) | HTTPS, certifikát se ověřuje | Tenhle |
Flexible je past. Návštěvníci vidí HTTPS, ale spojení z Cloudflare k tvému serveru je prosté HTTP přes veřejný internet, takže zámeček říká návštěvníkovi něco nepravdivého. Vyvolává také klasické ERR_TOO_MANY_REDIRECTS: Cloudflare pošle požadavek HTTP, tvůj server přesměruje HTTP na HTTPS, Cloudflare toto přesměrování následuje zpět k sobě, donekonečna. Pokud web hned po zapnutí Cloudflare zacyklí, je to důvod - přepni na Full (strict).
Full (strict) potřebuje na originu platný certifikát. Buď ten, který tvůj hosting už vydává, nebo bezplatný certifikát Cloudflare Origin CA, kterému důvěřuje jen Cloudflare a který lze vydat až na patnáct let. Obojí funguje; ten od hostingu je méně věcí k zapamatování.
Souvislost, která na spravovaném hostingu kousne, je obnova certifikátu. Ověření HTTP-01 musí dosáhnout tvého originu na portu 80 na /.well-known/acme-challenge/ a pravidlo firewallu, přesměrování nebo režim Flexible ho mohou tiše zastavit. Na RE:NODE zahrnují aplikační a webové tarify proxy slot, který certifikát vydává a obnovuje automaticky v okně 21 dnů, což znamená, že obnova zablokovaná něčím, co jsi nastavil v Cloudflare, dnes nezpůsobí chybu - selže o dva měsíce později, až vyprší stávající certifikát. Pokud dáš Cloudflare před certifikát spravovaný hostingem, nastav záznam na šedý na dost dlouho, aby obnova proběhla, nebo přepni hosting na ověřování přes DNS, pokud ho nabízí. HTTPS a Let's Encrypt vysvětleně popisuje, jak ověření funguje.
Dvě nastavení, která stojí za zapnutí, jakmile Full (strict) funguje: Always Use HTTPS, které dělá přesměrování HTTP na HTTPS na edge, takže tvůj server nikdy nevidí prostý požadavek, a Automatic HTTPS Rewrites, které opravuje odkazy se smíšeným obsahem ve tvém vlastním HTML.
Cache: co se cachuje ve výchozím stavu a co ne#
Ve výchozím stavu Cloudflare cachuje statické soubory podle přípony - obrázky, CSS, JavaScript, písma - a necachuje HTML. U webu na WordPressu nebo jakékoli dynamické aplikace to znamená, že nákladná část každého zobrazení stránky pořád míří na tvůj server. Lidé jsou tím soustavně překvapení, protože předpokládali, že oranžový obláček web zrychlí.
Pro cachování HTML vytvoříš Cache Rule, která nastaví „Eligible for cache“ (náhrada starého „Cache Everything“ z Page Rules), a pak musíš ošetřit přihlášené uživatele. Podej dashboard jednoho návštěvníka z edge všem ostatním a vytvořil jsi únik dat zaškrtávátkem. Pravidla, která to drží v bezpečí:
- Obejdi cache, když je přítomna session cookie -
wordpress_logged_in_*,PHPSESSID, jméno cookie tvého frameworku. - Obejdi cache úplně pro administrační cesty a každé API, které vrací data podle uživatele.
- Nastav nejdřív krátký edge TTL a zvyšuj ho, až si budeš jistý.
Čistší přístup je nechat to řídit vlastními hlavičkami. Cache-Control: public, max-age=31536000, immutable na souborech s hashem v názvu a Cache-Control: private, no-store na všem osobním je politika, která funguje na každém CDN, ne jen v dashboardu jednoho dodavatele. Hlavičky HTTP cache vysvětleně sadu hlaviček projde pořádně.
Dvě provozní poznámky. Development Mode obejde cache na tři hodiny a sám se vypne, což je to, co chceš při úpravě šablony. A čisti podle URL, ne všechno - úplné vyčištění na vytíženém webu pošle všechny požadavky na tvůj origin naráz, což je sebezpůsobená špička zátěže.
Bezpečnostní nastavení, která stojí za to, a dvě, která věci rozbíjejí#
Skutečně užitečná, podle hodnoty na malém webu:
- Spravovaná pravidla WAF. Bezplatné plány dostanou podmnožinu a ta zastaví velké množství automatizovaného nesmyslu dřív, než se dostane k PHP.
- Omezení počtu požadavků. Bezplatné plány zahrnují jedno pravidlo. Utrať ho na přihlašovací endpoint - tam míří credential stuffing.
- Blokování podle země nebo ASN, pokud je tvé publikum opravdu regionální. Hrubé, ale účinné proti konkrétnímu problému.
- Blokování podle cesty. Požadavky na
/wp-login.php,/xmlrpc.phpa/.envodkudkoli kromě tvé vlastní adresy nestojí nic zablokovat a jsou většinou útočníkova úvodního tahu.
Dvě, které věci rozbíjejí a zapínají je lidé, kteří nespojí výpadek s nastavením:
Bot Fight Mode zpochybňuje všechno, o čem se rozhodne, že to není prohlížeč. To zahrnuje webhooky tvého platebního poskytovatele, deploy hook z GitHubu, tvůj monitor dostupnosti, tvou mobilní aplikaci i čtečky RSS. Příznakem je 403, které se nikdy neobjeví ve tvých vlastních logách, protože tvůj server nikdo neoslovil. Pokud provozuješ jakýkoli provoz mezi stroji, nech to vypnuté nebo ty cesty vylouči.
Under Attack mode ukáže každému návštěvníkovi pětivteřinovou mezistránku, než ho pustí dál. Proti záplavě funguje a rozbíjí každého klienta API i každý handshake WebSocketu, dokud je zapnutý. Je to nouzový vypínač, ne konfigurace - vypni ho, až nouze skončí. Samotné WebSockety jsou na všech plánech proxovány v pořádku; zabíjí je výzva, a WebSockety za reverzní proxy popisuje další chování s časovým limitem nečinnosti, které čekat.
Jak vidět skutečnou adresu návštěvníka#
Jakmile je provoz za proxy, každé spojení přichází z Cloudflare. Tvůj přístupový log se plní jejich rozsahy, omezení podle IP škrtí všechny najednou a jakákoli geolokace měří datacentrum.
Skutečná adresa přichází v CF-Connecting-IP a také se přidává do X-Forwarded-For. V nginxu ji obnov, aby ji logy, omezení i kód aplikace viděly správně:
# Repeat set_real_ip_from for every range published at cloudflare.com/ipsset_real_ip_from 173.245.48.0/20;set_real_ip_from 103.21.244.0/22;real_ip_header CF-Connecting-IP;Nikdy nevěř té hlavičce ze zdroje, který není Cloudflare. Je to obyčejná hlavička požadavku, takže kdokoli, kdo se připojí přímo k tvému originu, ji může nastavit na cokoli - a proto na seznamu set_real_ip_from záleží. Na spravovaném hostingu obvykle nginx upravovat nemůžeš, ale stejná logika platí pro hlavičku, kterou ti dává tvá platforma: na RE:NODE předává proxy slot původní adresu klienta v X-Forwarded-For a pokud je v řetězci i Cloudflare, stane se z té hlavičky seznam, kde nejlevější položka je návštěvník a každý skok připojil tu před sebou.
Druhá polovina je firewall, který přijímá spojení na 80 a 443 jen od Cloudflare, aby nikdo nemohl proxy obejít připojením přímo na tvou adresu. Na vlastním VDS je to hrstka pravidel ufw plus Authenticated Origin Pulls. Na sdíleném hostingu v kontejnerech to obecně nemáš pod kontrolou, což je skutečné omezení, které stojí za to znát, místo aby se předpokládalo.
Čtení chybových stránek Cloudflare#
Pětistovkové chyby Cloudflare jsou konkrétní a každá ukazuje na jinou polovinu systému. Tato tabulka ušetří spoustu hádání:
| Chyba | Význam | Obvykle |
|---|---|---|
| 520 | Origin vrátil něco nesrozumitelného | Pád aplikace nebo obrovská hlavička |
| 521 | Origin odmítl spojení | Aplikace je dole nebo firewall blokuje Cloudflare |
| 522 | Vypršel čas spojení | Přetížený origin nebo firewall, který tiše zahazuje |
| 523 | Origin nedostupný | Záznam A ukazuje na špatnou adresu |
| 524 | Origin odpovídal příliš dlouho | Požadavek přesahující zhruba 100sekundový limit na edge |
| 525 / 526 | Handshake TLS selhal nebo je certifikát neplatný | Full (strict) proti self-signed nebo vypršelému certifikátu |
| 1020 | Přístup odepřen | Shodovalo se jedno z tvých vlastních pravidel firewallu |
Rozdíl, který si zvnitřni, je mezi 521 a 522. Odmítnuté spojení znamená, že něco odpovědělo „ne“ - port je zavřený nebo filtrovaný s odmítnutím. Vypršení času znamená, že neodpovědělo nic, což na vytíženém serveru znamená plnou frontu požadavků a na serveru za firewallem zahazování paketů. Zkontroluj vlastní logy a odpověď máš hned: pokud o požadavku není záznam, nikdy nedorazil.
Chyba 524 si zaslouží zvláštní zmínku, protože to vlastně není chyba. Požadavek, který trvá déle než zhruba 100 sekund, je na edge přerušen a na nižších plánech tento limit nelze nastavit. Práce, která trvá minuty, by se vůbec neměla dít uvnitř požadavku - měla by se zařadit do fronty a dotazovat. Jak ji přesunout, popisuje úlohy na pozadí na malém serveru.
Co pro tebe Cloudflare neudělá#
Krátký, poctivý seznam, protože marketing ho nenabídne sám od sebe.
- Nehostuje ti e-mail. Záznamy MX musí být DNS only, a pokud tvůj mailový server sdílí adresu s webovým, tento záznam MX zveřejní tvůj origin. Email Routing od Cloudflare přeposílá poštu; není to schránka. RE:NODE e-mail také nehostuje.
- Neskryje adresu, která už unikla. Stará historie DNS, subdoména se šedým obláčkem, záznam v logu transparentnosti certifikátů nebo aplikace, která odesílá odchozí požadavky, ji mohou všechny prozradit. Jediná skutečná oprava je změnit adresu originu po zapnutí proxy.
- Nezrychlí pomalou aplikaci. Necachované HTML pořád pochází z tvého serveru, rychlostí tvého serveru. Pokud dotaz do databáze trvá 800 ms, trvá 800 ms i s oranžovým obláčkem před ním.
- Nepokrývá služby mimo HTTP. Databáze, SSH, herní porty a pošta ji všechny úplně obcházejí a každá je přímá cesta k tvému stroji, se kterou se musí vypořádat tvůj firewall.
- Nepřijímá neomezené nahrávání. Bezplatný plán a Pro omezují tělo požadavku na 100 MB. Velké nahrávané soubory musí jít jinam nebo přes hostname se šedým obláčkem.
- Nenahrazuje zálohy, aktualizace ani firewall. Filtruje provoz dřív, než dorazí; všechno, co následuje, je pořád tvoje.
Použitá pro to, čím je - HTTP edge před webem - je výborná, zdarma a nastavíš ji za dvacet minut. Použitá jako štít pro herní server je to nedorozumění, které stojí odpoledne.
FAQ#
Můžu použít proxy Cloudflare pro Minecraft server?
Ne na bezplatném plánu. Minecraft Java používá TCP 25565, což není jeden z proxovaných portů, a proxy rozumí jen HTTP. Nech záznam DNS only, nebo se podívej na Spectrum, což je placený doplněk s podporou Minecraftu.
Skryje oranžový obláček IP adresu mého herního serveru?
Ne. Záznam, který používá herní klient, musí být DNS only, takže už z definice zveřejňuje tvou skutečnou adresu. Pokud je tvůj web za proxy, ale sdílí tuto adresu, herní záznam ji prozradí pro oba.
Proč můj web po zapnutí Cloudflare začal přesměrovávat ve smyčce?
Režim SSL je Flexible, takže se Cloudflare ptá tvého originu přes prosté HTTP, tvůj origin přesměruje na HTTPS a Cloudflare toto přesměrování následuje zpět k sobě. Přepni na Full (strict) s platným certifikátem na originu.
Jsou podporovány WebSockety?
Ano, na každém plánu, bez nastavení k zapnutí. Nečinná spojení se zavírají zhruba po 100 sekundách, takže posílej heartbeat každých 30, a drž výzvy proti botům mimo cestu WebSocketu.
Proč můj server vidí IP Cloudflare místo návštěvníkovy?
Protože spojení naváže Cloudflare, ne návštěvník. Čti CF-Connecting-IP nebo nastav svou proxy, aby z něj obnovila skutečnou adresu, a té hlavičce věř, jen když spojení pochází z publikovaného rozsahu Cloudflare.
Nahrazuje Cloudflare to, co dělá můj hosting proti útokům?
Ne, a nemůže, protože vidí jen provoz, který prochází proxy. Filtrování před serverem pořád záleží pro všechno ostatní - herní porty, port databáze a cokoli na záznamu DNS only.




Komentáře
Zcela anonymně: žádný účet, žádný e-mail, žádné cookie. Ukládáme jen jméno, které napíšeš, text a čas - nic dalšího. Počet odkazů je omezený a značkování se nevykresluje.