Pangolin 1.24.0 介绍与选型指南
Pangolin 1.24.0 自托管隧道反向代理与零信任访问平台介绍:组件架构、资源模型、身份访问控制、功能特性与 Cloudflare Tunnel/NPM/Traefik 量化选型对比,2026-10-20 官方渠道溯源。
Pangolin 1.24.0 介绍与选型指南
目标:面向正在为「自托管服务安全发布 / 远程访问」选型的运维与平台工程师,讲清 Pangolin 是什么、由哪些组件构成、能做什么、边界在哪,并与 Cloudflare Tunnel、Nginx Proxy Manager、Traefik 做量化对比,帮助读者在 10 分钟内完成「用不用、怎么选」的决策。本文为认知选型篇,全部数据来自官方公开渠道联网溯源(GitHub Releases / 官方仓库 / 官方文档站),查询日期 2026-10-20,未包含本地实测结论。
一、环境信息
本文是联网溯源型认知篇:所有版本号、特性清单、架构描述、对比数据均取自下列官方来源,逐条标注查询日期 2026-10-20,未做任何本地实验,因此不存在实验环境依赖。
溯源来源清单(全部为官方渠道):
| 来源 | 地址 | 用途 |
|---|---|---|
| GitHub Releases(含 Atom 流) | https://github.com/fosrl/pangolin/releases | 最新稳定版、版本节奏、1.24.0 发布说明 |
| GitHub 仓库元数据 | https://github.com/fosrl/pangolin | 星数、Fork 数、License、主题标签 |
| 配套仓库 | https://github.com/fosrl/gerbil 、https://github.com/fosrl/newt | Gerbil / Newt 最新版本 |
| 官方文档站 | https://docs.digpangolin.com | 安装流程、架构说明、前置条件 |
| 官方架构说明 | https://docs.digpangolin.com/about/how-pangolin-works | 资源模型、访问控制模型 |
| 官网 | https://pangolin.net | 产品定位、商业版入口 |
关键溯源结论速览(2026-10-20):
- 最新稳定版:Pangolin 1.24.0(2026-09-30 发布;同日发布的 1.24.0-rc.0 为其候选版);下一个预发布版 1.25.0-rc.0 于 2026-10-19 发布,尚不稳定。
- 配套组件最新版:Gerbil 1.5.2(2026-09-18)、Newt 1.18.1(2026-10-02)。
- 仓库热度:23,135 Stars / 801 Forks / 107 个未关闭 Issue;仓库创建于 2024-09-27,最近一次提交 2026-10-20,处于高频维护状态。
- 许可:双许可——带 Fossorial Commercial License 头的文件按商业许可条款执行;带 AGPL-3.0 头的文件按 GNU Affero General Public License v3 执行,且可另行购买商业许可(LICENSE 原文,2026-10-20 查询)。
二、软件概述
2.1 组件定位
Pangolin(GitHub:fosrl/pangolin,官网 https://pangolin.net )是一个自托管的隧道反向代理(tunneled reverse proxy)与身份和访问控制平台,官方仓库描述为「Modern networking and security platform providing secure access and connectivity to apps, infrastructure, and AI workloads」。它的核心价值主张一句话概括:把你内网里的应用安全地发布到公网,但不在服务器上对公网开放任何业务端口——公网侧只暴露 80/443 的 Web 入口与 WireGuard 隧道端口,业务流量经加密隧道回源。这一形态与 Cloudflare Tunnel 同构,因此社区普遍将其视为 Cloudflare Tunnel 的开源自托管替代:数据不经第三方 SaaS,鉴权与策略全部落在自己的服务器上。
它同时补齐了传统反向代理(Nginx/Traefik)最缺的一层——身份与访问控制:内置用户体系、OIDC 身份联邦(Google Workspace、Microsoft Entra ID、Okta 等任一 OIDC 提供商)、双因素认证(2FA)、基于角色(Role)的资源级授权,并自带完整的 Web 管理台(Dashboard)与普通用户门户(Resource Launcher)。
💡 技术拓展:「把内网服务发布到公网」在业界有三条主流技术路线,选型时先分清:① SaaS 隧道(Cloudflare Tunnel、ngrok、Tailscale Funnel):出站连接到厂商边缘,零公网 IP 也可用,但流量过第三方且高级功能付费;② 自建隧道反代(Pangolin、FRP、rathole):需要一台有公网 IP 的服务器做入口,流量完全自持;③ 组网型 VPN(WireGuard、Tailscale、Netbird):把设备接入虚拟网,适合「人连网」,对「给匿名公网用户发布一个网站」并不直接适用。Pangolin 属于第②条路线,并用 WireGuard 做隧道底座、在其上叠加了第③条路线的私网访问能力(私有资源 + 客户端)。
2.2 版本演进与许可
版本节奏(GitHub Releases 实查,2026-10-20):
| 版本 | 发布日期 | 类型 |
|---|---|---|
| 1.21.0 | 2026-07-20 | 稳定 |
| 1.21.1 | 2026-07-30 | 稳定(修订) |
| 1.22.0 | 2026-08-27 | 稳定 |
| 1.22.1 | 2026-09-03 | 稳定(修订) |
| 1.22.2 | 2026-09-04 | 稳定(修订) |
| 1.23.0 | 2026-09-16 | 稳定 |
| 1.24.0(当前最新稳定) | 2026-09-30 | 稳定 |
| 1.25.0-rc.0 | 2026-10-19 | 预发布 |
版本节奏为月度小版本 + 期中修订,每个稳定版前有 -rc.0 候选版,迭代活跃、规律清晰。关键差异:生产环境应锁定 1.24.0 这类稳定 tag,跟随 -rc 版需要承担 API 变动风险。
许可结构(LICENSE 原文,2026-10-20 查询): 采用「源码可得 + 双许可」模式:带 Fossorial Commercial License 头的文件受商业许可约束(面向企业版/商业客户);带 AGPL-3.0 头的文件按 AGPL-3.0 开源,也可购买商业许可豁免开源义务。对使用者的直接影响:自托管 Community Edition 用于内部业务在 AGPL 义务下可行;若对 Pangolin 做二次开发后对外提供网络服务,需要评估 AGPL-3.0 的开源传染条款或购买商业许可。
三、核心架构
3.1 组件构成:Pangolin + Gerbil + Newt + Traefik
Pangolin 不是单一进程,而是一组协同组件(官方安装脚本在一台服务器上以 Docker Compose 编排拉起整套栈,这是官方唯一推荐的部署形态):
| 组件 | 仓库 | 角色 | 形态 | 关键端口 |
|---|---|---|---|---|
| Pangolin | fosrl/pangolin | 控制面:Web 管理台、身份认证、资源/用户/角色管理、REST API | Go + Next.js 单服务 | 3001(管理 API,经反代发布) |
| Gerbil | fosrl/gerbil | 数据面隧道服务端:维护 WireGuard 接口与对端(peer)路由,接收远端站点的隧道连接 | Go 单二进制 | 51820/udp(WireGuard)、21820/udp(客户端) |
| Newt | fosrl/newt | 站点连接器:部署在资源所在内网,主动向 Gerbil 建立隧道并做本地转发 | Go 单二进制 | 出站连接,不监听公网端口 |
| Traefik | traefik/traefik | 边缘反代:终止 TLS、按 Host/路径路由公网 HTTPS 流量,经隧道转发到远端资源 | 官方栈内置 | 80/tcp、443/tcp |
数据面与控制面分工明确:公网用户的 HTTPS 请求 → Traefik(80/443)→ 判定该资源挂在哪个站点 → 经 Gerbil 的 WireGuard 隧道 → 远端内网的 Newt → 转发到真正的内网应用。控制面(Pangolin Dashboard)负责把「资源 ↔ 站点 ↔ 用户/角色」的映射下发到 Traefik 动态配置与 Gerbil peer 表。服务器上除 80/443/51820/21820 外,无需为任何被发布的业务开放端口。
3.2 资源模型(Resource-based)
官方架构文档(how-pangolin-works,2026-10-20 查询)明确:Pangolin 是以资源(Resource)为访问单元的。资源是访问的最小单位——先定义资源、再授予用户与角色,Pangolin 只路由被授权的流量;用户连接的是资源而不是站点,且默认没有任何资源可用(未显式定义即不可达),这是「默认拒绝」的零信任基线。
- 公开资源(Public Resource):发布为公网可访问的入口,典型形态是一个公网 FQDN 的 HTTPS 站点,也可以是 SSH、RDP、VNC 等协议资源,Dashboard 中带健康检查与访问 URL。
- 私有资源(Private Resource):不出公网,必须通过 Pangolin 客户端连接,形态包括主机、HTTP、SSH、CIDR 网段,适合「VPN 式」的纯内网访问。
- AI 网关资源(AI Gateway):1.x 系列新引入的资源类型,对 LLM API 做身份感知代理(消除散落各处的 API Key),并可隧道回源自托管模型。
此外还有面向普通用户(非管理员)的 Resource Launcher:一个门户页,列出该用户可访问的全部资源(按站点/标签分组、可搜索),点开即用——普通用户不需要知道 Traefik、WireGuard 的存在。
3.3 身份与访问控制
身份层与站点/资源同属一个控制面(官方文档,2026-10-20 查询):
- 用户来源:内置用户体系,或接入 Google Workspace、Microsoft Entra ID、Okta 等任意 OIDC 身份提供商(IdP),单点登录一次认证,通行于 Dashboard、浏览器资源、客户端与 AI 网关。
- 授权模型:基于角色(Role)的 RBAC——角色绑定到资源,用户的有效权限是其所有角色可达资源的并集;同一套用户与角色同时作用于公开资源、私有资源与 AI 网关资源。
- 认证增强:双因素认证(2FA);管理 API 支持以 API Key 机器对机器调用。
四、功能特性清单
按官方文档与 1.24.0 发布说明归纳(来源:docs.digpangolin.com 与 GitHub Release 1.24.0,查询日期 2026-10-20):
| 能力域 | 特性 |
|---|---|
| 隧道与组网 | WireGuard 加密隧道(Gerbil/Newt);站点(Site)模型接入多内网;Exit Node 出口节点(1.24);私有资源走 Pangolin 客户端 |
| 反向代理 | HTTP/HTTPS 资源发布、TLS 自动签发(Let's Encrypt)、响应头定制(1.24)、资源规则支持 HTTP 方法匹配(1.24) |
| 身份与访问 | 内置用户 + OIDC 身份联邦、RBAC 角色、2FA、Resource Launcher 用户门户 |
| 协议资源 | HTTPS 应用、SSH、RDP、VNC、原始主机/网段(私有资源) |
| 客户端 | Windows、macOS、iOS(支持按需激活,1.24)、Android(Always-on,1.24)、Linux CLI(支持子网路由做站点到站点,1.24) |
| AI 网关 | 身份感知的 LLM API 代理、API Key 消除、自托管模型隧道回源 |
| 运维 | Web Dashboard、REST 管理 API(API Key 调用)、日志与分析、告警、蓝图(Blueprint)导入导出 |
| 组网扩展 | 远端节点(Remote Nodes)/Endpoints & Relays 架构支持多入口扩展 |
1.24.0 版本新特性(Release Notes 原文归纳,2026-10-20 查询):
- 新增 Exit Node 私有资源(私有出口节点,要求 Pangolin CLI v0.18.0+ 或 Newt v1.18.0+);
- 资源规则新增 HTTP 方法匹配;
- 配置文件新增 Badger 覆盖项;
- 客户端体验:iOS/macOS 按需激活、Android 常连、Windows 登录即连;
- 新增响应头自定义;
- Linux CLI 客户端支持子网路由(站点到站点组网);
- 全线客户端 UI 改进与依赖安全更新。
⚠️ 注意:1.24.0 发布说明明确提示——私有 Exit Node 资源仅与 2026-09-29 之后发布的各客户端版本兼容;升级前务必备份 config 与应用数据,否则难以回滚。
五、快速开始(最小可用示例)
本节内容取自官方文档 Quick Install Guide(https://docs.digpangolin.com/self-host/quick-install ,查询日期 2026-10-20),给出最小可用路径;命令的完整交互回显与逐项实测说明见本系列部署篇(官方安装脚本已在真实服务器视角下逐步实测)。
官方前置条件(原文归纳):
- 一台具有 root 权限与公网 IP 的 Linux 服务器(官方推荐 Ubuntu 20.04+ 或 Debian 11+);
- 一个指向该服务器 IP 的域名(管理台子域名,如
pangolin.example.com); - 一个用于 Let's Encrypt 证书与管理员登录的邮箱;
- 防火墙放行:80/TCP、443/TCP、51820/UDP、21820/UDP。
官方安装三步(原文命令照录):
# 1. 下载官方安装器(支持 AMD64 与 ARM64)
curl -fsSL https://static.pangolin.net/get-installer.sh | bash
# 2. 以 root 执行安装器(会安装在当前目录)
sudo ./installer
# 3. 安装完成后访问初始设置页完成首个管理员注册
# https://<你的管理台域名>/auth/initial-setup
安装器交互中需要确认:版本(Community / Enterprise)、根域名(如 example.com)、管理台域名(默认 pangolin.example.com)、Let's Encrypt 邮箱、是否安装 Gerbil 隧道组件(默认 yes)、可选 SMTP 邮件;随后自动拉取 pangolin、gerbil、traefik 三个组件并启动(官方说明耗时约 2-3 分钟)。初始设置所需的 setup token 可用 sudo docker compose logs pangolin 从输出中获取。
💡 说明:Pangolin 的官方发行形态即「Docker Compose 编排的完整栈」(pangolin + gerbil + traefik),安装脚本会自动安装 Docker 依赖并生成
/opt/pangolin下的config/(config.yml 等)与 compose 文件;这是官方唯一主线安装方式,无需也不建议手工拆装各组件。
六、适用场景与限制
典型适用场景(据官方文档与架构特性归纳):
- 自托管服务公网安全发布:把 Home Lab / 企业内网的 Git、OA、监控台等 HTTPS 服务发布到公网,服务器不开放业务端口,替代「端口映射 + 裸奔 Nginx」;
- Cloudflare Tunnel 自托管替代:希望隧道与鉴权数据不经第三方 SaaS、或对合规有数据驻留要求的团队;
- 零信任远程访问(ZTNA):员工经 OIDC SSO + 2FA 访问指定内网资源,按角色授权,替代传统 VPN 的全网可达模型;
- 多站点互联:多个办公点/家庭内网各跑一个 Newt,经 WireGuard 汇聚到中心 Pangolin,配合 1.24 的子网路由与 Exit Node 做站点到站点组网;
- LLM 应用统一入口:以 AI Gateway 资源形态收敛各部门的 LLM API 访问,做身份感知的配额与审计。
已知限制与边界(2026-10-20 溯源):
- 必须有公网入口:与 SaaS 隧道不同,Pangolin 需要一台有公网 IP 的服务器承载 Traefik/Gerbil,无公网 IP 时需自行借助 VPS(官方专门提供 Choosing a VPS 指南);
- 端口占用:80/443(TCP)与 51820/21820(UDP)需独占,与既有 Web 服务同机部署时需要改端口规划;
- 域名与证书:Let's Encrypt 签发依赖域名的公网可达性,无域名场景体验受损;
- 许可评估:AGPL-3.0 + 商业双许可,二次开发对外提供服务前需做法务评估;
- 社区版/企业版差异:官方设有 Enterprise Edition 产品线(详见官方文档 self-host/enterprise-edition),选型时应核对所需特性归属哪个版本;
- 升级纪律:官方在 Release Notes 中反复强调升级前备份 config 与数据,跨版本回滚困难。
七、同类选型对比
量化对比(星数/版本/许可均于 2026-10-20 实查 GitHub API;能力维度按官方文档归纳):
| 维度 | Pangolin 1.24.0 | Cloudflare Tunnel(cloudflared) | Nginx Proxy Manager v2.16.0 | Traefik v3.7.15 |
|---|---|---|---|---|
| 定位 | 自托管隧道反代 + 身份访问控制 | SaaS 隧道(客户端开源) | 反向代理 Web 管理面板 | 云原生边缘反代/网关 |
| GitHub Stars | 23,135 | 16,195 | 34,459 | 65,292 |
| 最新版本 | 1.24.0(2026-09-30) | 2026.10.2(2026-10-20) | v2.16.0(2026-09-24) | v3.7.15(2026-10-15) |
| 许可 | AGPL-3.0 + 商业双许可 | Apache-2.0(服务端 SaaS 闭源) | MIT | MIT |
| 公网组件 | 自有服务器(VPS/物理机) | Cloudflare 边缘(第三方) | 自有服务器 | 自有服务器/K8s |
| 隧道模型 | WireGuard(Gerbil/Newt 出站回源) | 出站 QUIC/HTTP2 到 CF 边缘 | 无隧道(直接反代可达后端) | 无隧道(需后端可达) |
| 身份与访问控制 | 内置用户 + OIDC 联邦 + 2FA + RBAC | Cloudflare Access(SaaS 订阅) | 无(靠 Basic Auth) | 中间件/插件自建(如 ForwardAuth) |
| Web 管理台 | 内置 Dashboard + 用户门户 | Cloudflare SaaS 控制台 | 内置(简洁友好) | 无内置(需 Traefik Lab/第三方) |
| 对后端网络的要求 | 后端可出网即可(Newt 反向连接) | 后端可出网即可 | 后端须对代理可达 | 后端须对代理可达 |
| 数据主权 | 完全自持 | 流量经 Cloudflare | 完全自持 | 完全自持 |
| 典型运维成本 | 中(一套栈 + 客户端) | 低(托管控面) | 低 | 中高(配置工程化) |
关键差异解读:
- 与 Cloudflare Tunnel 相比:两者隧道拓扑同构(出站回源 + 边缘入口 + 身份门禁),根本差异在「谁来当边缘」——Cloudflare 把入口放在其全球边缘网络(免公网 IP、免证书运维,但流量与策略数据过第三方、团队协作与 Access 策略按席收费);Pangolin 要求自己出一台公网服务器当边缘,换来完全的数据主权与无席位费。有公网 IP、在意数据主权、团队规模大的场景选 Pangolin;无公网 IP、追求零运维的场景选 Cloudflare Tunnel。
- 与 Nginx Proxy Manager 相比:NPM 解决的是「反代配置可视化」,后端必须对代理网络可达,也没有身份层;Pangolin 在 NPM 的能力之上叠加了「隧道穿透 + 零信任鉴权」,但复杂度与资源占用也更高。只是给内网机器挂证书、做端口转发的轻需求,NPM 更简单;要跨网络发布或要 SSO/2FA,直接上 Pangolin。
- 与 Traefik 相比:Traefik 是通用边缘路由器(Pangolin 栈内部也在用它做 TLS 终结),强在声明式配置与生态集成,弱在开箱即用的管理台与身份层;Pangolin 是「Traefik + 隧道 + IdP + Dashboard」的产品化整合。已有 K8s/微服务体系选 Traefik 自建;要「装完即用的自托管 Cloudflare Tunnel」选 Pangolin。
「如果……则……」选型建议:
- 如果你有公网 IP 的服务器、想完全自持隧道与身份数据、要给团队发多协议资源 → Pangolin;
- 如果你没有公网 IP、不想维护任何服务器、接受流量过第三方 → Cloudflare Tunnel;
- 如果你只需要在单内网做反代面板、追求最简 → Nginx Proxy Manager;
- 如果你在 K8s/微服务环境做大规模边缘路由、需要 Ingress 生态 → Traefik;
- 如果你要的是「设备全量入网」而非「按资源发布」 → 评估 WireGuard/Tailscale 类组网方案(Pangolin 的私有资源可与之互补)。
八、参考链接
- GitHub 仓库:https://github.com/fosrl/pangolin
- Releases(版本与发布说明):https://github.com/fosrl/pangolin/releases
- 官网:https://pangolin.net
- 官方文档站:https://docs.digpangolin.com
- 快速安装指南:https://docs.digpangolin.com/self-host/quick-install
- 架构说明(How Pangolin Works):https://docs.digpangolin.com/about/how-pangolin-works
- Gerbil 仓库:https://github.com/fosrl/gerbil
- Newt 仓库:https://github.com/fosrl/newt
- 竞品仓库(数据取证用):https://github.com/cloudflare/cloudflared 、https://github.com/NginxProxyManager/nginx-proxy-manager 、https://github.com/traefik/traefik