LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

Tunnelto:本地服务秒变公网应用的内网穿透开发神器!

admin
2026年1月28日 11:1 本文热度 88

​作为开发者,你是否遇到过这些场景:需要给客户演示本地开发的项目,想测试微信公众号的回调接口,或者需要和远程团队协作调试本地服务?今天给大家介绍一个由 Rust 编写的轻量级内网穿透工具——Tunnelto,它能让你的本地服务瞬间暴露到公网。

一、解决了什么问题?

在日常开发中,我们经常会遇到需要将本地开发环境暴露到互联网的需求:

1. 接口回调测试
开发微信支付、支付宝支付等第三方接口时,需要提供公网可访问的回调地址,而你的服务只运行在本地 localhost 上。

2. 远程演示和协作
想向客户或远程团队成员展示正在开发的功能,但又不想频繁部署到测试服务器。

3. Webhook 调试
GitHub、Slack 等平台的 Webhook 需要公网地址才能推送事件通知,本地调试变得困难。

4. 移动端联调
移动应用需要连接后端接口进行测试,但手机无法直接访问开发机的 localhost。

传统解决方案要么需要复杂的网络配置(如 NAT 穿透、端口映射),要么需要将代码部署到云服务器。Tunnelto 的出现让这一切变得简单——只需一条命令,即可获得一个公网 URL,所有流量自动转发到你的本地服务。

二、Tunnelto 是什么?

Tunnelto 是一个开源的内网穿透工具,由 Alex Grinman 使用 Rust 语言开发。它采用完全异步的架构,基于 Tokio 异步运行时构建,具有以下特点:

核心特性:

  • • 轻量高效 使用 Rust 编写,性能出色且资源占用低
  • • 即开即用 无需复杂配置,一条命令即可启动隧道
  • • 安全可靠 支持 API 密钥认证,可自定义子域名
  • • 完全异步 基于 Tokio 的异步 I/O,高并发场景表现优异
  • • 开源免费 MIT 许可证,代码完全开源,也支持自行部署

技术架构:
Tunnelto 采用客户端-服务器架构。客户端运行在你的本地机器上,与服务端建立 WebSocket 连接。当有外部请求到达时,服务端通过这个持久连接将流量转发到你的本地端口,实现内网穿透。

项目在 GitHub 上获得了 2.5k+ star,拥有活跃的社区支持,代码质量高且持续维护。


三、怎么使用?

1. 安装 Tunnelto

macOS 用户 (推荐使用 Homebrew):

brew install agrinman/tap/tunnelto

通用安装 (使用 Cargo):

cargo install tunnelto

下载二进制文件
也可以直接从 GitHub Releases 页面下载适合你操作系统的预编译版本。

2. 快速开始

假设你的本地服务运行在 8000 端口:

tunnelto --port 8000

执行后,Tunnelto 会输出类似这样的信息:

✓ Tunnel established! Access your local server at:
  https://random-subdomain.tunnelto.dev
  
✓ Forwarding to localhost:8000

现在,任何人访问 https://random-subdomain.tunnelto.dev 都会被转发到你的本地 localhost:8000 服务!

3. 高级用法

自定义子域名 (需要认证):

tunnelto --subdomain myproject --port 8000 --key YOUR_API_KEY

指定本地主机

tunnelto --host 192.168.1.100 --port 3000

使用 HTTPS 转发

tunnelto --scheme https --port 8443

查看本地监控面板

tunnelto --port 8000 --dashboard-address localhost:3030

访问 http://localhost:3030 可以查看实时的请求日志和流量统计。

4. 设置 API 密钥

要使用自定义子域名等高级功能,需要先设置 API 密钥:

tunnelto set-auth YOUR_API_KEY

密钥会被安全存储在本地,后续使用时无需重复输入。

5. 自建服务端(可选)

如果你关注数据隐私或需要更高的稳定性,Tunnelto 支持自行部署服务端:

# 运行服务端 (监听 8080 端口用于 TCP 流量, 5000 端口用于控制)
ALLOWED_HOSTS="yourdomain.com" cargo run --bin tunnelto_server

# 客户端连接到自建服务端

CTRL_HOST="yourdomain.com" CTRL_PORT=5000 cargo run --bin tunnelto -- -p 8000

官方也提供了 Docker 镜像,可以快速部署到任何云服务器或容器平台。

6. 实际使用场景

场景一: 微信公众号开发

# 启动本地 Node.js 服务
npm run dev  # 运行在 localhost:3000

# 打开隧道

tunnelto --port 3000

# 将生成的公网 URL 配置到微信公众号后台

# 例如: https://abc123.tunnelto.dev/wechat/callback

场景二: 移动应用联调

# 启动 Spring Boot 应用
./mvnw spring-boot:run  # 运行在 localhost:8080

# 暴露到公网

tunnelto --port 8080

# 在移动应用中配置 API 地址为生成的公网 URL

场景三: 远程演示

# 启动 React 开发服务器
npm start  # 运行在 localhost:3000

# 创建公开访问链接

tunnelto --subdomain my-demo --port 3000 --key YOUR_KEY

# 分享 https://my-demo.tunnelto.dev 给客户或团队

四、总结

Tunnelto 是一个设计精巧、功能实用的开发工具,它完美解决了本地服务公网访问的痛点。相比其他内网穿透工具,Tunnelto 的优势在于:

优点:

  • • 安装简单,使用方便,学习成本几乎为零
  • • Rust 实现带来的高性能和低资源消耗
  • • 开源透明,支持自行部署,数据安全有保障
  • • 完全异步架构,能应对高并发场景
  • • 活跃的社区和持续的维护

适用人群:

  • • Web 后端开发者,需要测试第三方回调接口
  • • 全栈开发者,需要快速演示项目或远程协作
  • • 移动端开发者,需要连接本地后端服务进行调试
  • • 任何需要临时暴露本地服务的场景

注意事项:

  • • 公开的隧道意味着任何人都可以访问,注意不要暴露敏感数据
  • • 免费版本使用随机子域名,重启后 URL 会变化
  • • 生产环境不建议使用内网穿透,应该使用正规的部署方案

如果你经常遇到需要将本地服务暴露到公网的场景,不妨试试 Tunnelto。它可能会成为你开发工具箱中的又一利器!


项目地址: https://github.com/agrinman/tunnelto
官方网站: https://tunnelto.dev
开源协议: MIT License

觉得有用的话,不妨给项目一个 star ⭐ 支持作者的开发工作!


阅读原文:原文链接


该文章在 2026/1/28 11:23:52 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved