<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Cloudflared on KnightLi的博客</title>
        <link>https://knightli.com/tags/cloudflared/</link>
        <description>Recent content in Cloudflared on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Tue, 23 Jun 2026 20:37:00 +0800</lastBuildDate><atom:link href="https://knightli.com/tags/cloudflared/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Cloudflare Tunnel 入门指南：不用公网 IP 暴露内网服务</title>
        <link>https://knightli.com/2026/06/23/cloudflare-tunnel-cloudflared-public-hostname-guide/</link>
        <pubDate>Tue, 23 Jun 2026 20:37:00 +0800</pubDate>
        
        <guid>https://knightli.com/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>
