从密码朋克视角看当前的开源内网穿透隧道工具(2026)
-
-
2026 年 7 月 25 日 下午 2:32 #34355
本文试图探讨的核心问题:没有公网 IP / 处于 NAT 或 CGNAT 后方时,如何用开源的方式让外部访问内网服务?
一、问题空间
内网穿透解决的问题很简单:你的服务跑在家里/办公室的局域网里,外面访问不了。传统的端口映射需要路由器的控制权和公网 IP,但 CGNAT(运营商级 NAT)、DS-Lite、防火墙策略让这条路越来越窄。
隧道工具的核心思路一致:内网主动往外连(NAT 放行出站),通过这条长连接复用回来。但不同工具在”怎么连、能穿什么、怎么管”上出现了显著分化,最终形成了三条完全不同的赛道。
二、全景纵览
活跃维护的项目的社区规模(GitHub Stars):
项目 Stars 语言 首次发布 最近更新 赛道 FRP ~106k Go 2016 2026-07 (v0.70) 传统 TCP/HTTP 隧道 Pangolin ~21.8k TS/Go 2024-09 2026-07 (v1.21) 零信任 VPN + 代理平台 Chisel ~16.3k Go 2015 2026-07 (v1.11) HTTP 隧道 bore ~11.3k Rust 2022 2025-06 (v0.6) 极简 TCP 隧道 zrok ~4.6k Go 2021 2026-05 (v2.0) P2P 零信任共享 Piko ~2.1k Go 2024 2026-05 (v0.10) K8s 生产隧道 connet ~525 Go 2024-11 2026-05 (v0.15) P2P QUIC 隧道 FRP 的 Stars 数是第二名到第七名之和的两倍——在这个领域是绝对的统治级。
三、各项目深度分析
3.1 FRP(fatedier/frp)— 行业标准
Stars: 106k | 语言: Go | 协议: Apache-2.0
历史与现状
FRP 是中文开发者 fatedier 于 2016 年创立的项目,至今已走过近 10 年。在两年没有新 release 的沉寂期(2020-2022)之后,2024 年起重回了非常活跃的开发节奏——v0.70.0 于 2026 年 7 月刚刚发布。仓库有约 15k forks、超过 400 位贡献者,是 Go 语言生态中最知名的网络工具之一。
FRP 的架构是经典的两组件模型:
frps(公网服务器端)+frpc(内网客户端)。控制连接和数据连接分离的设计自 v0.10.0 起就已成熟。核心能力
- 多协议穿透: TCP / UDP / HTTP / HTTPS / STCP(秘密端口)/ XTCP(P2P 打洞)/ SUDP(安全 UDP)
- 多传输层: 默认 TCP,支持 KCP(高延迟优化)、QUIC、WebSocket
- HTTP 高级路由: 域名虚拟主机、URL 路径分发、Host 头重写、HTTP Basic Auth
- 生产特性: 连接池、健康检查(TCP/HTTP)、负载均衡(多 frpc 后端组队)、Prometheus 指标
- 管理面: Web Dashboard、Admin UI 热加载配置
- 认证: Token / OIDC,传输层可选 TLS 加密(默认已启用)
- v0.62+ VirtualNet(alpha): TUN 虚拟网络,IP 级路由而非端口转发,轻量级 mesh VPN
- SSH Tunnel Gateway: 无需 frpc,纯
ssh -R建立隧道
典型配置
# frps.toml(公网 VPS) bindPort = 7000 auth.token = "your-token" # frpc.toml(内网) serverAddr = "your-vps.com" serverPort = 7000 auth.token = "your-token" [[proxies]] name = "ssh" type = "tcp" localIP = "127.0.0.1" localPort = 22 remotePort = 6000 [[proxies]] name = "web" type = "http" localPort = 80 customDomains = ["app.example.com"]ssh
your-vps.com:6000直穿内网,无需路由器配置。优势
- 社区最大,文档/教程最丰富,遇到问题几乎都能搜到
- 功能最完整,单一工具覆盖了绝大部分穿透场景
- 双协议栈(Layer 4 + Layer 7)在一套配置体系内统一
劣势
- 学习曲线中等——配置选项多,TOML/YAML/JSON/INI 四种格式并存(INI 已 deprecated)
- 默认配置的安全性需要留意——
allowPorts白名单要显式配置,默认绑定所有端口 - 功能膨胀——v2 的开发方向也反映了作者对当前架构复杂度的反思
v2 方向
FRP v2 将是一个不兼容 v1 的重写,受 Envoy 和 K8s Service Mesh 启发,核心是一个通用可扩展的四/七层代理,不局限于内网穿透。目前仍在概念开发阶段。
3.2 Pangolin(fosrl/pangolin)— 零信任接入平台
Stars: 21.8k | 语言: TypeScript (98.6%) + Go (0.7%) | 协议: AGPL-3.0 / 商业双许可
背景
Pangolin 是 2024 年 9 月才启动的项目,不到两年暴涨到 21.8k Stars——增速是这个领域最快的。它有 110 位贡献者、85 个 release(最新 v1.21.0,2026-07-20),开发极其活跃。
Pangolin 和 FRP 做的事有重叠,但定位完全不同。FRP 解决的是”把内网端口暴露到公网”,Pangolin 解决的是”安全地让授权用户访问内网资源”。
核心架构
┌─ 用户浏览器 ──────────────────────┐ │ HTTPS → pangolin.example.com │ └───────────────────────────────────┘ ↓ TLS + 身份认证 ┌─ Pangolin Hub(公网 VPS) ────────┐ │ - 认证(OIDC/内置用户/RBAC) │ │ - 路由 / 负载均衡 / 健康检查 │ │ - 自动 ACME 证书 / WAF │ │ - 审计日志 │ └──────────┬───────────────────────┘ ↓ WireGuard 隧道(出站) ┌─ Pangolin Site Connector(内网) ──┐ │ - 用户空间 WireGuard │ │ - NAT 穿透 │ │ - 子网路由(CIDR) │ └───────────────────────────────────┘关键区别: 内网机器不暴露任何端口到公网。Site Connector 主动出站建立 WireGuard 隧道,外部用户经过 Hub 的身份验证后,才通过隧道访问内网服务。
功能特性
- 浏览器直接接入: VNC、RDP、SSH 都可在浏览器内完成,无需客户端
- 零信任网络接入(ZTNA): 每条路由可配独立的身份策略(OIDC SSO / PIN码 / 邮件OTP / 地理位置限制 / IP白名单)
- P2P 智能 NAT 打洞: 当两端可直接连接时,流量不经过 Hub
- 子网路由: Site Connector 可以暴露整个内网网段(CIDR),不只是单个端口
- 客户端应用: macOS / Windows / Linux / iOS / Android 全平台
- 审计日志: 全流量记录 + 告警
- 双模式: 提供 SaaS 云服务(app.pangolin.net)和自托管版
优势
- 一站解决:WireGuard 隧道 + 反向代理 + 身份认证 + 证书管理,代替 Traefik+Authelia+WireGuard 三件套
- 用户体验最好——Web UI 完善,资源和用户管理直观
- 身份认证深度集成,适合团队/企业场景
劣势
- 体量远大于传统隧道工具——需要 PostgreSQL、Redis,不是单二进制
- 偏重 HTTP/HTTPS 应用,纯 TCP/UDP 穿透不如 FRP/chisel 灵活
- 社区版 AGPL-3.0,企业商用需购买许可
- 生态不如 FRP 成熟,第三方集成和文档相对较少
适合谁
Pangolin 的典型用户是:有多个内网服务(NAS、Home Assistant、Jellyfin、开发环境)需要安全暴露给特定团队/家人,最好有 Web 管理界面、OIDC 登录、细粒度权限控制。
3.3 Chisel(jpillora/chisel)— HTTP 隧道之王
Stars: 16.3k | 语言: Go | 协议: MIT
背景
Chisel 是 2015 年启动的元老级项目,和 FRP 同期。和 FRP 不同的是,它保持了非常克制的功能集——本质就是 TCP/UDP over HTTP。经过 11 年发展,代码库只有 252 次 commit、Go 代码 99.1%,非常精简。
最新 release v1.11.8(2026-07-10),v1.12 开发中(可靠性/安全增强)。
核心理念
Chisel 的核心洞察是:HTTP 是所有防火墙都放行的协议。企业防火墙、CDN、反向代理——它们都会放行 80/443 端口的 HTTP(S) 流量。Chisel 把隧道封装在 HTTP 的 WebSocket 升级请求中,天然兼容所有 Web 基础设施。
隧道本身用 SSH 协议加密(Go 标准库
crypto/ssh),不是简单的 HTTP。关键能力
- 单二进制:
chisel同时是 server 和 client,无外部依赖 - 自动 HTTPS:
--tls-domain一键 Let’s Encrypt - SOCKS5 支持: server 端可做 SOCKS5 代理,client 端也可反向 SOCKS
- 反向隧道:
R:2222:localhost:22语法,从外网 SSH 到内网 - stdio 模式:
ssh -o ProxyCommand='chisel client server stdio:%h:%p'——把 chisel 当 SSH 跳板 - 认证: 基于
authfile(JSON 用户配置),SSH Key fingerprint 验证 - CDN 兼容: 只要 CDN 支持 WebSocket(Cloudflare 等),chisel 能正常工作
- 接入认证: SSH ECDSA 密钥对 +
--fingerprint防止 MITM
典型用法
# 服务端(公网 VPS) chisel server --port 443 --tls-domain tunnel.example.com --auth user:pass # 客户端(内网) chisel client --auth user:pass https://tunnel.example.com 3000 # 把内网 3000 暴露为服务器的 localhost:3000 # 反向 SSH chisel client --auth user:pass https://tunnel.example.com R:2222:localhost:22 # 外网 ssh user@tunnel.example.com -p 2222 → 内网 SSH优势
- HTTP 穿墙能力最强——企业防火墙通常是 HTTP(S) 白名单,WebSocket 通常放行
- 单二进制极度轻量(scratch 镜像 6MB)
- 配置语法最简洁,5 分钟上手
- 可以和 CDN/反向代理组合使用
劣势
- 没有 Dashboard / Web UI
- 没有自带负载均衡和健康检查
- 功能深度不如 FRP(没有 STCP/XTCP、没有多路服用级别的高级控制)
3.4 bore(ekzhang/bore)— 极简主义的 TCP 隧道
Stars: 11.3k | 语言: Rust | 协议: MIT
背景
bore 是极简主义的代表。它的 README 第一句就是:”That’s all it does: no more, and no less。” 没有认证、没有加密(自带的)、没有 HTTP 路由、没有 Dashboard——只做一件事:TCP 端口转发。
从搜索反馈来看 v0.6.0 发布于 2025-06,30 位贡献者,社区小而精。
核心用法
# 服务端(公网 VPS) bore server # 客户端(内网) bore local 8000 --to your-vps.com # 输出:bore is available at your-vps.com:12345 # 外部连接 your-vps.com:12345 → 内网 8000只有这两个命令。
适合谁
当你手上有公网 VPS,只需要快速暴露一个端口(SSH、HTTP 开发服务器、临时 demo),不想写任何配置文件的时候——bore 是最快的选择。11k Stars 证明了这种”单一职责”的吸引力。
劣势
- 没有任何认证机制(你自己在 VPS 上用防火墙限制)
- 只支持 TCP,不支持 UDP
- 没有重连机制,断连后需手动重启
- 不适合生产环境或长期部署
3.5 zrok(openziti/zrok)— 零信任文件与网络共享
Stars: 4.6k | 语言: Go | 协议: Apache-2.0
背景
zrok 由 NetFoundry(背后的公司也维护 OpenZiti 项目)开发。它的定位不是”内网穿透”,而是安全共享——共享 Web 服务、文件目录、TCP/UDP 资源,目标用户是需要快速分享本地内容给指定的人,而不只是暴露端口。
zrok 构建在 OpenZiti 零信任网络层之上,默认端到端加密、P2P 直连。
独特能力
- 文件共享:
zrok share public --backend-mode drive ~/Documents——把本地文件夹暴露为网盘 - 私有共享:
zrok share private localhost:3000——只对特定 zrok 用户可见 - SDK: 可以在自己应用中嵌入共享能力
适合谁
比 FRP 更强调”临时分享”场景——给同事看本地开发环境、分享文件给客户、临时暴露一个 TCP 服务。zrok.io 提供免费公共服务。
3.6 Piko(andydunstall/piko)— K8s 原生生产隧道
Stars: 2.1k | 语言: Go | 协议: MIT
背景
Piko 是面向 K8s 生产环境设计的隧道。2024 年 3 月启动,作者是前 AWS 工程师。
核心设计目标是:集群部署、水平扩展、零宕机升级。多个 Piko 节点组成集群,upstream 连接到任意节点后,集群内部自动同步 endpoint 路由信息。如果有节点宕机,upstream 自动重新连接到其他节点。
# Docker Compose 示例 piko-cluster: image: andydunstall/piko:v0.10.0 ports: - "8000" # proxy - "8001" # upstream - "8002" # admin/metrics适合谁
如果你的上游服务跑在 K8s 里,需要可靠的生产隧道(比如 BYOC 场景、SaaS 连接到客户内网),Piko 的集群 HA 设计是这些工具里最成熟的。
3.7 connet(connet-dev/connet)— P2P 优先的 QUIC 隧道
Stars: 525 | 语言: Go | 协议: Apache-2.0 | 状态: Alpha
背景
connet 提供一个独特的 twist:两端都运行
connetclient,server 只做配置交换(不转发数据),P2P 直连。当 NAT 打洞失败时回退到 relay。基于 QUIC(UDP),性能好于 TCP 隧道,没有队头阻塞问题。v0.15.3(2026-05),活跃开发中。
适合谁
对隐私要求极高(数据不经过任何中继服务器)、带宽敏感的场景。但 alpha 阶段、Stars 偏少,不适合生产。
四、赛道划分
三个截然不同的赛道:
赛道 A:端口穿透(FRP / Chisel / bore)
解决的问题: “把我的内网端口映射到公网”
FRP Chisel bore Stars 106k 16.3k 11.3k 复杂度 中 低 极低 HTTP 路由 ✅ 域名/路径 基本 ❌ UDP ✅ ✅ ❌ 认证 Token/OIDC SSH authfile ❌ Dashboard ✅ ❌ ❌ 负载均衡 ✅ ❌ ❌ 学习时间 半小时 5 分钟 1 分钟 三者关系: bore 能做的时候它最快最轻。需要认证和 HTTP 路由时上 Chisel。需要负载均衡、健康检查、Dashboard、多协议全面能力时上 FRP。FRP 覆盖了另外两家的所有功能,代价是配置复杂度。
赛道 B:零信任接入平台(Pangolin / zrok)
解决的问题: “让特定用户安全地访问我的内网”
Pangolin 和 zrok 不是 FRP 的替代品——它们是面向授权用户的安全接入,而不是端口映射。
Pangolin 目前在这个赛道上表现最突出:21.8k Stars、最活跃的开发节奏、最完善的产品体验。它在解决的问题远比”端口穿透”复杂:身份认证、RBAC、审计、会话记录、浏览器内 VNC/RDP/SSH、子网路由。
赛道 C:生产级集群隧道(Piko)
解决的问题: “在 K8s 生产环境中可靠地建立隧道”
Piko 的集群节点设计在传统隧道工具中是独有的。没有节点的反向代理就不可用,Piko 把”单个节点挂了”从故障模式降级为正常运维事件。
五、选择决策树
你想解决什么问题? │ ├─ 只是快速暴露一个 TCP 端口给别人 │ └─ bore(最轻量) │ ├─ 需要暴露多个服务,但能接受简单配置 │ ├─ 主要走 HTTP(s) → Chisel(HTTP 穿墙最强) │ └─ 也有 TCP/UDP → FRP(最全面) │ ├─ 需要身份认证 + 细粒度权限控制 │ ├─ 浏览器访问为主 → Pangolin(最佳体验) │ ├─ 临时分享给他人 → zrok(共享场景) │ └─ 纯命令行隧道 + SSH 加密 → Chisel(authfile) │ ├─ 运行在 K8s 上的生产服务 │ └─ Piko(集群 HA) │ └─ 隐私优先,不想让流量经过中继服务器 └─ connet(P2P 直连)六、密码朋克视角审视
密码朋克的角度看隧道工具,评判标准不是功能多少或性能高低,而是:谁控制协议,谁拥有数据,哪个节点可以作恶,哪个环节需要信任。
6.1 信任模型频谱
完全依赖第三方 完全自控 │────────────────────────────────│ ngrok FRP Chisel Pangolin bore (闭源SaaS (自托管, (自托管, (自托管, (无认证, 必须信任 信任自己的 信任自己 信任自己 防火墙自控 第三方) VPS) 的VPS) 的VPS+PG) 无加密)越靠右,你拥有的控制权越大。但控制权是有代价的——运维责任全在你身上。
6.2 密码朋克七大原则 × 各工具表现
原则 含义 FRP Pangolin Chisel bore ngrok 自托管(Self-Sovereignty) 不依赖第三方基础设施 ✅ 自托管 ✅ 自托管 ✅ 自托管 ✅ 自托管 ❌ SaaS 最小信任(Trust Minimization) 节点不需要信任其他节点 ⚠️ 信任frps VPS ⚠️ 信任Hub+VPS ⚠️ 信任VPS ⚠️ 信任VPS ❌ 必须信任ngrok 端到端加密(E2E Encryption) 中继节点不能看明文 ⚠️ 线上TLS加密,frps终止后可见明文;STCP+useEncryption可让frps仅转发密文 ❌ Hub终止TLS ⚠️ SSH加密隧道,server可见明文 ❌ 无加密 ✅ 端到端 去中心化(Decentralization) 无单点依赖 ⚠️ frps是单点 ⚠️ Hub是单点 ⚠️ VPS是单点 ⚠️ VPS是单点 ❌ ngrok边缘 默认加密(Security by Default) 不开白名单就是安全的 ⚠️ 需显式 allowPorts✅ WireGuard零信任 ✅ SSH密钥强制 ❌ 无认证 ✅ 默认HTTPS 审计透明(Auditability) 代码可审查、行为可追踪 ✅ 开源10年 ✅ 开源 ✅ 开源 ✅ 开源 ❌ 闭源核心 离线可用(Offline Resilience) 不依赖中央网络可用 ✅ 自建 ✅ 自建 ✅ 自建 ✅ 自建 ❌ 完全依赖 6.3 密码朋克视角的关键判断
FRP 的加密模型: v0.50.0 起默认启用
transport.tls——线上 frpc↔frps 之间 TLS 加密,frps 终止 TLS 后在内存中可见明文。对于信任自己 VPS 的用户,这不是问题。如果需要连 frps 也无法解密的端到端加密,可以用[[proxies]] transport.useEncryption = true+transport.useCompression = true——此时 frpc 加密、frps 仅转发密文、对端 frpc 解密。这时 frps 只是一个密文管道,能看到的是”有人在传数据”但完全不知道内容(元数据仍然有:连接时间、流量大小、频率)。STCP 提供类似的能力,用预共享密钥控制访问,密钥需带外传递。XTCP(P2P 打洞)数据平面完全绕过 frps,密码朋克上最干净——但成功率受 NAT 类型限制。如果在 FRP 之外另有加密层(如 VPN 或 WireGuard): frps 看到的是已被外层加密的流量,FRP 的 TLS 是第二层加密。这不会改变 frps 终止 FRP TLS 后可见明文的事实,但中间链路的多层加密对防流量分析有好处。
Pangolin 的矛盾:它基于 WireGuard,加密是内核级的,但 Hub 仍然终止 TLS。 这意味着 Hub 运营者(即使是你自己的 VPS)在内存中能看到解密后的请求。Pangolin 的零信任模型解决的是”用户到资源的授权”,不是”数据对中继节点的保密”。你信任自己的 VPS,这个模型就成立;你如果连自己的 VPS 都不信任,那需要的是 connet 的 P2P 方案。
Chisel 的 SSH 加密被低估了。 Chisel 是这些工具里唯一在隧道层使用 SSH 公钥加密的(不是 TLS 终止再转发,而是真正的
crypto/ssh会话加密)。--fingerprint验证提供了 SSH 级别的 MITM 防护。它的痛点是 sshd(Go 实现)本身不成熟——Go 的crypto/ssh缺少很多 OpenSSH 的安全加固。bore 在密码朋克意义上是最诚实的:它不做任何安全性承诺。 你的安全完全依赖 VPS 防火墙和网络隔离。这是 “don’t pretend to be what you’re not” 的设计哲学——但密码朋克会告诉你没有加密的隧道就是明文传输。
6.4 主权个人视角的推荐
你是怎样的用户? │ ├─ "我需要暴露的只是一个端口,不介意 VPS 上有明文" │ └─ FRP / Chisel(功能选 FRP,简洁选 Chisel) │ ├─ "我的信任半径到我自己的 VPS 为止" │ ├─ 多服务 + HTTP → Pangolin(平台体验) │ ├─ 纯 TCP 穿透 → FRP(功能最全) │ └─ 需要 SSH 级加密 → Chisel(fingerprint 验证) │ ├─ "我连自己的 VPS 都不完全信任" │ ├─ 数据必须端到端加密 → connet(P2P + QUIC) │ └─ 需要生产级稳定性 → FRP + STCP │ └─ "我不需要自己管服务器" └─ 付费方案 → 见下文6.5 密码朋克最大的盲区
所有自托管方案都假设你拥有并控制一台公网 VPS。VPS 运营商能看到你的流量到达其网卡的时间、大小、频率。 即使你用了 TLS,运营商也能做流量分析——知道你什么时候在访问哪个内网服务、峰值流量多大。这不是”看内容”的问题,是”元数据泄露”的问题。
真正密码朋克级别的方案应该:
- 流量混淆(像 obfs4 一样让隧道流量看起来像随机噪声)
- 洋葱路由(多跳中继,任何单点不知道通信双方)
- 去中心化控制面(没有固定的 frps/Pangolin Hub)
目前这些工具里没有哪个做到了。这是一个空白。
七、付费产品对标
7.1 全景对比
产品 模式 定价 免费层 核心技术 自托管 开源 ngrok SaaS \(8-\)39/月 1GB/1端点 私有隧道协议 ❌ ❌ Tailscale SaaS+ 个人免费/团队$6/用户/月 3用户/100设备 WireGuard + DERP ❌ ✅ 客户端 Cloudflare Tunnel SaaS 免费(带宽10GB/月) 慷慨 Argo 隧道 ❌ ✅ cloudflaredTwingate SaaS $5/用户/月 5用户 WireGuard + 中继 ❌ ❌ ZeroTier SaaS+ 个人免费/企业$5/月 25节点 P2P 虚拟网络 ❌ ✅ 核心 NetBird SaaS+ 免费/团队$10/月 无限用户/有限流量 WireGuard + P2P ⚠️ 半自托管 ✅ FRP 自托管 免费 无限制 传统隧道 ✅ ✅ Apache-2.0 Pangolin 自托管/SaaS 免费/商业许可 无限制 WireGuard + 反向代理 ✅ ✅ AGPL-3.0 Chisel 自托管 免费 无限制 HTTP+SSH 隧道 ✅ ✅ MIT Headscale 自托管 免费 无限制 WireGuard ✅ ✅ BSD 7.2 付费产品深度分析
ngrok — 行业标准 SaaS
创始: 2011 年,Alan Shreve。模式: 纯 SaaS,无开源核心(开源了
ngrok-agent但 server 端闭源)。ngrok 的价值不在技术——隧道协议本身是标准技术。它的价值在边缘网络:全球分布的接入节点、自动 TLS 终止、请求重放、流量检查、Webhook 验证、OAuth/SAML/OIDC 门控。
2026 年的免费层:1GB/月、1 个活跃端点、随机子域名。付费从 \(8/月(Personal)到\)39/月(Enterprise)。
密码朋克视角: ngrok 是你完全无法审查选择、数据经过第三方网络、没有离线能力的反面教材。它适合开发调试,不适合任何需要主权的基础设施。
vs FRP/Pangolin: FRP 在功能上覆盖了 ngrok 的 80%(TCP/UDP/HTTP/HTTPS + Dashboard + 认证),但少了全球边缘网络和 ngrok 的企业极开发者体验。如果你有自己的 VPS,FRP 替代 ngrok 的核心穿透场景绰绰有余。
Tailscale — 零信任 VPN 体验之王
创始: 2019 年,Avery Pennarun(前 Google 员工,WireGuard 协议合作者)。模式: 免费增值 SaaS + 开源客户端。
Tailscale 的独特之处:它不是一个隧道工具,而是一个基于 WireGuard 的零配置 VPN。每台设备安装客户端后,自动组建一个安全网格网络。NAT 穿透使用 DERP(Detour Encrypted Routing Protocol)中继。
个人版免费:3 用户、100 设备。团队版 $6/用户/月。
密码朋克视角: Tailscale 的加密到端(真正的端到端 WireGuard),控制面托管在 Tailscale 的协调服务器上。你的设备私钥永远不离开设备,所以协调服务器不能解密流量——这是密码朋克级别正确的设计。但协调服务器是你的信任依赖:Tailscale 可以在不通知你的情况下切断你的网络。
vs Pangolin: Tailscale 解决的是”让所有设备在一个安全网格内互通”,Pangolin 解决的是”让浏览器安全访问特定内网服务”。两者可以组合使用,不是零和。
Cloudflare Tunnel — 最慷慨的免费方案
模式: SaaS + 开源客户端
cloudflared。定价: 免费层非常慷慨(10GB/月带宽),付费从 $10/月起。Cloudflare Tunnel 的架构:内网运行
cloudflared,出站连接到 Cloudflare 边缘网络,通过 Cloudflare 的 DNS/代理层暴露服务。没有公网端口暴露。密码朋克视角: 这是对你数据主权威胁最大的方案。你的所有流量经过 Cloudflare 的网络,Cloudflare 终止 TLS、可能检查内容、受美国法律管辖。免费的价值在于”你的数据就是产品”。
vs FRP: Cloudflare Tunnel 的用户体验更好(无需 VPS、自动 DNS/TLS),但你放弃了所有控制权。FRP 可以用更小的代价(一台 $5 VPS)获得完全的数据主权。
Twingate / OpenZiti — 企业零信任
Twingate 是面向企业的零信任远程接入,定价 $5/用户/月。OpenZiti(zrok 的底层)是开源替代。
它们的共同设计:不暴露 IP/端口、应用级授权、基于身份的访问。在企业场景,Twingate 的合规报告和 AD/LDAP 集成是自托管方案无法替代的。
7.3 付费 vs 自托管:总拥有成本
场景 A:个人开发者,暴露 3-5 个服务 自托管:一台 $5/月 VPS + 30 分钟配置 = $60/年 ngrok:$8/月 = $96/年(Personal,1GB 限流) Tailscale:免费(3用户以内) 场景 B:小团队,10 个成员 + 20 个内网服务 自托管:$10/月 VPS + 1 小时维护/月 + 人工成本 ≈ $120/年 + 维护时间 Pangolin Cloud:$15/用户/月 = $1,800/年 Twingate:$5/用户/月 = $600/年 Tailscale:$6/用户/月 = $720/年 场景 C:K8s 生产,SaaS 连接到客户内网 Piko 自托管:$10/月 VPS + 0.5h 初始配置 ngrok Enterprise:$39/月 + 按量计费结论(经济层面): 只要你有能力维护一台 VPS,自托管始终比 SaaS 便宜。这是密码朋克工具箱的经济学——不只是因为省钱,而是因为你的替代成本从”每个月付钱”变成了”我的数据我做主”。
7.4 产品对标矩阵
你的场景 付费最优解 自托管最优解 ───────────────────────────────────────────────────────── 开发调试(临时暴露端口) ngrok(一键体验) bore / Chisel 个人服务长期暴露 Tailscale(免费) FRP / Chisel 团队远程办公 Twingate / Tailscale Pangolin SaaS 连接客户内网 Cloudflare Tunnel Piko / FRP 多站点 VPN / 全网格 Tailscale Headscale + WireGuard 零信任企业合规 Twingate Pangolin Enterprise 最大隐私/最高安全 Tailscale(E2E) connet(P2P) / FRP + STCP7.5 终极判断
付费方案卖的不是技术——隧道协议本身趋同,开源方案的加密能力不输付费产品,甚至在某些维度更强(Chisel 的 SSH 层加密超过 ngrok 的标准 TLS)。
付费方案卖的是:
- 运维外包 —— 不用管 VPS、证书、升级、监控
- 全球边缘网络 —— ngrok/Cloudflare 的多节点低延迟接入
- 企业合规 —— SOC2、审计报告、AD 集成
- 开发者体验 —— 一条命令上线 vs 写 TOML 配置文件
密码朋克的角度,只有当”我的数据不能离开我的控制”这个约束比运维成本更贵时,才值得用自托管。 在你自己的 homelab 场景里,这已经是既成事实——你的整套栈(Trilium、Gitea、Nextcloud、Hermes)都掌握在手里,穿透层加一个 FRP 或 Pangolin 只是扩展这条边界。
八、最终总结
三条赛道的最终判断:
赛道 你最该关心的 我的推荐 端口穿透 我手上有公网 VPS 吗? 有 → FRP。没有 → Tailscale(免费) 零信任接入 我有多人访问需求吗? 团队 → Pangolin。个人 → FRP+防火墙足够 生产隧道 我在 K8s 里跑吗? K8s → Piko。裸机 → FRP 密码朋克的核心问题:”如果我信任的 VPS 运营商明天翻脸,我的服务还能跑吗?“
FRP 的回答:换个 VPS,重新部署 frps,更新 DNS,10 分钟恢复。
Pangolin 的回答:同上,但需要先恢复 PostgreSQL。
ngrok 的回答:你不能——你的隧道 URL 属于 ngrok。
Tailscale 的回答:你的设备网格还在——Tailscale 控制面不可用时,已有连接不中断,但新设备不能加网。
真正的筹码不是加密强度,是迁移成本。 自托管方案在这点上有碾压性的优势——你的配置是文件,不是 SaaS 的数据库。
-
- 抱歉,回覆主題必需先登入。