<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Cloudflare Tunnel on KnightLi的博客</title>
        <link>https://knightli.com/zh-tw/tags/cloudflare-tunnel/</link>
        <description>Recent content in Cloudflare Tunnel on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Tue, 23 Jun 2026 20:37:00 +0800</lastBuildDate><atom:link href="https://knightli.com/zh-tw/tags/cloudflare-tunnel/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Cloudflare Tunnel 入門指南：不用公網 IP 暴露內網服務</title>
        <link>https://knightli.com/zh-tw/2026/06/23/cloudflare-tunnel-cloudflared-public-hostname-guide/</link>
        <pubDate>Tue, 23 Jun 2026 20:37:00 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/06/23/cloudflare-tunnel-cloudflared-public-hostname-guide/</guid>
        <description>&lt;p&gt;Cloudflare Tunnel 是 Cloudflare 提供的一種反向連線方案。它的核心思路很簡單：伺服器不再主動開放公網連入連接埠，而是在內網機器上執行一個輕量級守護行程 &lt;code&gt;cloudflared&lt;/code&gt;，由它主動向 Cloudflare 建立出站加密連線。&lt;/p&gt;
&lt;p&gt;這樣一來，你的 Web 服務、API、測試環境、家庭伺服器、NAS 面板，甚至某些內網應用，都可以透過 Cloudflare 分配的公共主機名稱存取，而源站本身不需要公網 IP，也不需要在路由器上做連接埠轉發。&lt;/p&gt;
&lt;p&gt;官方文件入口：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://developers.cloudflare.com/tunnel/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Cloudflare Tunnel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://developers.cloudflare.com/tunnel/setup/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Tunnel setup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://developers.cloudflare.com/tunnel/routing/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Tunnel routing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cloudflare-tunnel-解決了什麼問題&#34;&gt;Cloudflare Tunnel 解決了什麼問題
&lt;/h2&gt;&lt;p&gt;傳統暴露服務的方式通常繞不開幾個麻煩點：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;伺服器需要公網 IP；&lt;/li&gt;
&lt;li&gt;路由器或雲端防火牆要開放連入連接埠；&lt;/li&gt;
&lt;li&gt;源站 IP 容易被掃描和攻擊；&lt;/li&gt;
&lt;li&gt;家用寬頻、內網、臨時測試環境不方便直接對外提供 HTTPS 存取；&lt;/li&gt;
&lt;li&gt;反向代理、憑證、連接埠轉發、動態 DNS 都要自己維護。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cloudflare Tunnel 換了一個方向：不是讓外部流量直接打到你的伺服器，而是讓你的伺服器主動連到 Cloudflare。外部使用者存取網域時，流量先進入 Cloudflare，再透過已經建立好的 Tunnel 轉發到你的本機服務。&lt;/p&gt;
&lt;p&gt;對一般使用者來說，最直觀的好處就是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;不需要公網 IP；&lt;/li&gt;
&lt;li&gt;不需要開放連入連接埠；&lt;/li&gt;
&lt;li&gt;可以隱藏源站位址；&lt;/li&gt;
&lt;li&gt;可以複用 Cloudflare 的 HTTPS、WAF、DDoS 防護、Bot 管理等能力；&lt;/li&gt;
&lt;li&gt;適合把內網 Web 服務安全地掛到正式網域下面。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;它的工作方式&#34;&gt;它的工作方式
&lt;/h2&gt;&lt;p&gt;一個典型的 Cloudflare Tunnel 流程大致是這樣：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在伺服器、虛擬機、家用主機或容器裡安裝 &lt;code&gt;cloudflared&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cloudflared&lt;/code&gt; 主動連接到 Cloudflare 全球網路。&lt;/li&gt;
&lt;li&gt;在 Cloudflare 控制台裡建立 Tunnel，並把某個公共主機名稱映射到本機服務。&lt;/li&gt;
&lt;li&gt;使用者存取這個公共主機名稱。&lt;/li&gt;
&lt;li&gt;Cloudflare 接收請求，並透過 Tunnel 把請求轉發到你的內網服務。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;比如你本機有一個服務跑在：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:8080
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;你可以把它映射成：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;app.example.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;使用者存取 &lt;code&gt;https://app.example.com&lt;/code&gt; 時，請求會先經過 Cloudflare，然後再轉發到本機的 &lt;code&gt;http://localhost:8080&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;Cloudflare 文件裡還提到，每個 Tunnel 預設會維護多條長連線，並連接到不同的 Cloudflare 資料中心。生產環境裡也可以執行多個 &lt;code&gt;cloudflared&lt;/code&gt; 副本，用來提高可用性。&lt;/p&gt;
&lt;h2 id=&#34;適合哪些場景&#34;&gt;適合哪些場景
&lt;/h2&gt;&lt;p&gt;Cloudflare Tunnel 最適合下面幾類場景：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;內網 Web 面板&lt;/strong&gt;：比如 NAS、Homelab、開發機上的管理後台。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;臨時展示環境&lt;/strong&gt;：把本機開發中的 Web 應用臨時分享給別人。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自建服務公開存取&lt;/strong&gt;：把 API、部落格後台、監控面板等服務掛到網域下。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;沒有公網 IP 的環境&lt;/strong&gt;：家用寬頻、校園網、公司內網、NAT 後面的機器。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;想隱藏源站 IP 的業務&lt;/strong&gt;：減少源站被直接掃描、撞庫、攻擊的機會。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多服務統一入口&lt;/strong&gt;：一個 Tunnel 可以發布多個公共主機名稱，對應不同本機服務。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不過要注意，Cloudflare Tunnel 不是簡單意義上的「萬能內網穿透」。如果你要發布 SSH、RDP、TCP 這類非 HTTP 服務，通常還需要在客戶端側也執行 &lt;code&gt;cloudflared&lt;/code&gt;，或者結合 Cloudflare Zero Trust / Access 做更完整的存取控制。&lt;/p&gt;
&lt;p&gt;如果只是發布一個普通 Web 服務，它上手會非常快；如果想把它當成公司級內網存取方案，就需要額外設計身份驗證、權限分組和稽核策略。&lt;/p&gt;
&lt;h2 id=&#34;準備條件&#34;&gt;準備條件
&lt;/h2&gt;&lt;p&gt;正式建立 Tunnel 之前，建議先確認幾件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;你有 Cloudflare 帳號；&lt;/li&gt;
&lt;li&gt;你的網域已經託管在 Cloudflare；&lt;/li&gt;
&lt;li&gt;有一台能存取網際網路的伺服器、虛擬機、容器或本機機器；&lt;/li&gt;
&lt;li&gt;這台機器可以連接 Cloudflare 網路；&lt;/li&gt;
&lt;li&gt;如果環境有嚴格防火牆，需要確認能存取 Cloudflare Tunnel 使用的出站連線連接埠。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;官方文件中特別提到，如果伺服器在限制比較嚴格的網路環境裡，可以檢查是否允許存取 Cloudflare 的 &lt;code&gt;7844&lt;/code&gt; 連接埠。&lt;/p&gt;
&lt;h2 id=&#34;在控制台建立-tunnel&#34;&gt;在控制台建立 Tunnel
&lt;/h2&gt;&lt;p&gt;最簡單的方式是直接走 Cloudflare Dashboard。&lt;/p&gt;
&lt;p&gt;進入 Cloudflare 控制台後，大致路徑是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Zero Trust / Networking -&amp;gt; Tunnels -&amp;gt; Create Tunnel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;然後按頁面提示操作：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;選擇 Cloudflare Tunnel。&lt;/li&gt;
&lt;li&gt;給 Tunnel 起一個名字。&lt;/li&gt;
&lt;li&gt;選擇伺服器的作業系統和 CPU 架構。&lt;/li&gt;
&lt;li&gt;複製 Cloudflare 產生的安裝命令。&lt;/li&gt;
&lt;li&gt;在伺服器上執行命令，安裝並啟動 &lt;code&gt;cloudflared&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;回到控制台確認 Tunnel 狀態變成 Healthy。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;當 Tunnel 狀態變成 Healthy，說明你的伺服器已經成功和 Cloudflare 建立連線。&lt;/p&gt;
&lt;h2 id=&#34;發布一個公共主機名稱&#34;&gt;發布一個公共主機名稱
&lt;/h2&gt;&lt;p&gt;Tunnel 建好之後，還需要設定路由，也就是告訴 Cloudflare：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;哪個網域 -&amp;gt; 轉發到哪個本機服務
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;比如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;app.example.com -&amp;gt; http://localhost:8080
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;常見的本機服務位址可以是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:80
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://localhost:443
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://192.168.1.10:8080
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;設定完成後，Cloudflare 會自動建立一條 DNS 記錄，把你的公共主機名稱指向類似下面這樣的 Tunnel 位址：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;TUNNEL_ID&amp;gt;.cfargotunnel.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;這個位址不需要使用者直接存取，它只是 Cloudflare 內部用來把網域流量路由到 Tunnel 的目標。&lt;/p&gt;
&lt;p&gt;一個 Tunnel 可以發布多個應用。比如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nas.example.com      -&amp;gt; http://192.168.1.20:5000
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git.example.com      -&amp;gt; http://192.168.1.30:3000
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;monitor.example.com  -&amp;gt; http://localhost:9090
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;這樣就可以用一個 &lt;code&gt;cloudflared&lt;/code&gt; 實例管理多組內網 Web 服務。&lt;/p&gt;
&lt;h2 id=&#34;常見執行方式&#34;&gt;常見執行方式
&lt;/h2&gt;&lt;p&gt;在 Linux 或 macOS 上，Cloudflare 控制台通常會給出類似這樣的服務安裝命令：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo cloudflared service install &amp;lt;TUNNEL_TOKEN&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Windows 上則類似：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;cloudflared&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;exe&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;service&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;install&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;TUNNEL_TOKEN&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果你更喜歡 Docker，也可以用官方映像執行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token &amp;lt;TUNNEL_TOKEN&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;這裡的 &lt;code&gt;&amp;lt;TUNNEL_TOKEN&amp;gt;&lt;/code&gt; 是非常敏感的憑證。不要把它提交到公開倉庫，也不要截圖發到公共論壇。拿到這個 token 的人，理論上就有機會把自己的 &lt;code&gt;cloudflared&lt;/code&gt; 接到你的 Tunnel 上。&lt;/p&gt;
&lt;h2 id=&#34;quick-tunnel-適合臨時測試&#34;&gt;Quick Tunnel 適合臨時測試
&lt;/h2&gt;&lt;p&gt;Cloudflare 還提供了一種更快的臨時方式，叫 Quick Tunnel。&lt;/p&gt;
&lt;p&gt;在本機執行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cloudflared tunnel --url http://localhost:8080
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;它會產生一個隨機的 &lt;code&gt;trycloudflare.com&lt;/code&gt; 子網域，讓外部臨時存取你的本機服務。&lt;/p&gt;
&lt;p&gt;這個方式非常適合：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;臨時展示；&lt;/li&gt;
&lt;li&gt;本機偵錯 webhook；&lt;/li&gt;
&lt;li&gt;給同事看一個開發中的頁面；&lt;/li&gt;
&lt;li&gt;不想馬上綁定正式網域的測試。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;但它不適合生產環境。官方文件說明，Quick Tunnel 有一些限制，比如隨機網域不可控、並發請求有限制，也不支援某些長連線能力。正式服務還是應該建立標準 Tunnel，並綁定自己的網域。&lt;/p&gt;
&lt;h2 id=&#34;幾個容易踩坑的地方&#34;&gt;幾個容易踩坑的地方
&lt;/h2&gt;&lt;h3 id=&#34;1-本機服務監聽位址不對&#34;&gt;1. 本機服務監聽位址不對
&lt;/h3&gt;&lt;p&gt;如果你的服務只監聽在某個容器內部位址，或者只允許特定網卡存取，&lt;code&gt;cloudflared&lt;/code&gt; 可能連不上。&lt;/p&gt;
&lt;p&gt;排查時可以先在執行 &lt;code&gt;cloudflared&lt;/code&gt; 的機器上執行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl http://localhost:8080
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果本機都存取不了，Cloudflare Tunnel 也轉發不了。&lt;/p&gt;
&lt;h3 id=&#34;2-防火牆擋了出站連線&#34;&gt;2. 防火牆擋了出站連線
&lt;/h3&gt;&lt;p&gt;Cloudflare Tunnel 不需要開放連入連接埠，但它需要主動連出去。如果公司網路、雲端安全群組或本機防火牆攔截了出站連線，Tunnel 可能一直無法 Healthy。&lt;/p&gt;
&lt;p&gt;這種情況要重點檢查出站存取策略，尤其是 Cloudflare 文件提到的 Tunnel 連線連接埠。&lt;/p&gt;
&lt;h3 id=&#34;3-網域沒有託管在-cloudflare&#34;&gt;3. 網域沒有託管在 Cloudflare
&lt;/h3&gt;&lt;p&gt;如果你要發布正式公共主機名稱，網域需要在 Cloudflare 上管理。否則 Cloudflare 無法自動幫你建立對應 DNS 路由。&lt;/p&gt;
&lt;h3 id=&#34;4-管理後台不要裸奔&#34;&gt;4. 管理後台不要裸奔
&lt;/h3&gt;&lt;p&gt;Cloudflare Tunnel 解決的是「怎麼安全連到源站」，但它不等於自動給你的應用加了登入系統。&lt;/p&gt;
&lt;p&gt;如果你暴露的是 NAS、Git、監控、資料庫管理後台這類敏感服務，建議至少再加一層 Cloudflare Access，按信箱、組織帳號或身份提供者限制存取。&lt;/p&gt;
&lt;h3 id=&#34;5-設定檔模式要有兜底規則&#34;&gt;5. 設定檔模式要有兜底規則
&lt;/h3&gt;&lt;p&gt;如果你使用 API 或本機設定檔管理 ingress rules，官方文件要求最後放一個兜底規則。常見寫法是返回 404：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;ingress&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;hostname&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;app.example.com&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;service&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;http://localhost:8080&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;service&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;http_status:404&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;這樣可以避免沒有匹配到的請求被錯誤轉發到不該存取的服務。&lt;/p&gt;
&lt;h2 id=&#34;一句話總結&#34;&gt;一句話總結
&lt;/h2&gt;&lt;p&gt;Cloudflare Tunnel 最適合用來把內網 Web 服務安全、穩定地發布到公網網域上。它不要求公網 IP，不要求開放連入連接埠，部署成本也不高。&lt;/p&gt;
&lt;p&gt;如果你只是想把家裡或伺服器上的一個 Web 面板掛出來，Cloudflare Tunnel 是非常實用的選擇；如果你要做更複雜的企業內網存取，還應該配合 Cloudflare Access、Zero Trust 策略和更細的權限控制一起使用。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
