最新消息:

内网穿透开源项目汇总

佳软 yeeach 953浏览 0评论

对于开发人员、运维人员、远程办公人员,经常面临类似需求:如何安全、高效、可控地将内网的服务暴露给公网或特定的远程用户,而无需在防火墙上留下永久性的入站端口漏洞。因此各种内网穿透(Intranet Penetration)或隧道(Tunneling)技术应运而生。

汇总一下将内网服务暴露到公网的内网穿透开源项目。

开源项目汇总

Ngrok

https://github.com/NGROK

Ngrok是此类服务最早、最为知名的项目,Ngrok早期版本(v1)是开源的,但其后续版本(v2 及现在的主流版本)的核心服务端代码已经闭源,转为商业化运营。各种SDK及客户端( ngrok-go, ngrok-rust,ngrok-python,ngrok-javascript,docker-ngrok )开源。不建议部署使用。

 

 

frp

https://gofrp.org/

目前应用最广泛、生态最成熟的开源反向代理工具,几乎覆盖了所有可能的网络穿透场景,大部分场景可以无脑选。

尽管功能强大,但对于高并发场景,由于 frp 的 Go 语言运行时(Runtime)带来了内存开销,Go 的垃圾回收(GC)机制在高并发数据吞吐时会产生微秒级的停顿,且为了维持大量 Goroutine,其内存占用相对较高。

 

 

Rathole

https://github.com/rathole-org/rathole

frp 的高性能替代品(基于Rust),具有更高的速度和资源效率,是资源受限环境或高吞吐场景的首选。但更新维护不频繁。

 

 

zrok
https://github.com/openziti/zrok

zrok 的底层是 OpenZiti 提供的零信任覆盖网络(Overlay Network)。在这个网络中,并没有传统的 IP 路由概念,只有加密的逻辑链路。有一定的学习门槛。

zrok.io 提供了便捷的 SaaS 服务,但自托管架构相对复杂。完整的自托管环境需要部署 OpenZiti 控制器、边缘路由器以及 zrok 自身的控制器和前端组件,涉及多个 Docker 容器和复杂的配置文件。与 frp 或 Rathole 的“单二进制文件”部署形成了鲜明对比,对运维能力要求较高 。

 

 

Pangolin
https://github.com/fosrl/pangolin

基于 WireGuard 的开源远程访问平台,结合了反向代理和 VPN 功能,可用于安全地将私有资源(如 Web 应用、SSH、数据库等)暴露并访问到互联网

 

 

Chisel

https://github.com/jpillora/chisel

快速隧道工具,通过 HTTP 协议在客户端和服务器之间创建 TCP/UDP 通道,支持通过 Let’s Encrypt 自动获取 SSL 证书,适合简单设置

 

 

Outray

https://outray.dev/

https://github.com/akinloluwami/outray

基于 TypeScript 和 Node.js 构建,并依赖 PostgreSQL、Redis和 Tiger Data。Dashboard、团队管理、流量回放和统计分析功能比较全面。但部署极其厚重。不仅需要运行核心隧道服务,还需要维护一整套数据库中间件。

 

 

Bore

https://github.com/ekzhang/bore

Rust 工具,用于本地端口转发的极简主义。缺少高级功能如认证或多路复用

 

sish

https://github.com/antoniomika/sish

基于 SSH 的开源内网穿透工具,可通过 SSH 服务器反向代理提供 HTTP(S)、WebSocket 和 TCP 服务

 

 

Piko

https://github.com/andydunstall/piko

专为生产设计,支持 Kubernetes。处理高流量。

 

 

wstunnel

https://github.com/erebe/wstunnel

WebSocket 代理以规避防火墙。支持 UDP over WS。

 

 

Tunnelmole

https://github.com/robbie-cahill/tunnelmole-client

基于 TypeScript 的、可选自托管。专注于开发者工作流。

 

 

GO Simple Tunnel

https://github.com/go-gost/gost

高级隧道,支持负载均衡、API 和多种传输(如 QUIC)

 

 

Tunelo

https://tunelo.net/

https://github.com/jiweiyuan/tunelo

一行命令将本地端口或文件暴露到公网,类似 ngrok 但完全开源、可自建

 

 

Expose

https://github.com/exposedev/expose

用 PHP 编写,可将本地 Web 服务通过安全隧道暴露到公网

 

 

localtunnel

https://github.com/localtunnel/localtunnel

轻量级 npm 包,用于快速将 localhost 服务暴露到公网 URL。核心代码库已久未维护,存在严重的未修复安全漏洞,不推荐

 

推荐项目对比

 

选择建议:

通用生产级首选: Rathole。 如果追求极致的稳定性、低延迟和低资源消耗,且不需要花哨的 GUI,Rathole 是目前技术上的最优解。

功能与生态兼容性: frp。 如果需要特定的协议支持(如 XTCP 打洞、KCP 弱网传输),或者团队熟悉 Go 语言生态,frp 依然是不可撼动的选择。遇到的任何问题都能找到解决方案。

安全敏感与零信任转型: zrok。 对于涉及敏感数据、核心内网资源或需要严格合规的场景,zrok 提供的零信任覆盖网络架构远超传统隧道工具。适合正在向 Zero Trust 架构转型的企业。

防火墙突防与隐蔽: Chisel。 在受限网络环境(如严格的公司内网、红队渗透测试)中,Chisel 的 HTTP/WebSocket 伪装能力是无可替代的利器。

家庭实验室与易用性: Pangolin。 对于个人极客或家庭用户,Pangolin 提供的精美 UI 和 WireGuard 带来的现代 VPN 体验极具吸引力,且无需担心商业许可限制。

嵌入式/IoT:Rathole。资源占用少

 

更多网络工具

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址