[点晴永久免费OA]Tunnelto:本地服务想让外网访问?我试了这个 Rust 写的内网穿透工具,一条命令就够
当前位置:点晴教程→点晴OA办公管理信息系统
→『 经验分享&问题答疑 』
不知道你有没有遇到过这种时刻—— 本地 传统办法要么自己搞 Nginx + 域名 + 证书,折腾半天;要么用 ngrok,好用但免费版限制多,自定义域名还要付费。 前阵子我翻到一个叫 Tunnelto 的小工具,用 Rust 写的,试了一下,基本就是"装好 → 一条命令 → 拿到公网 URL"的体验。下面把我的使用过程和踩到的点都记下来,给有同样需求的人参考。
先说清楚:内网穿透到底是个啥怕有人第一次听这个词,先一句话解释:
打个比方。你住在一个小区(局域网),外卖员(外部用户)进不来,也找不到你家门牌。内网穿透就像你在大门口放了一个对外营业的"收发室"(公网服务器),你跟收发室拉了一根内部对讲机(控制连接)。外面的人把包裹送到收发室,收发室通过对讲机喊你,你再从家里把东西递出去。外面的世界始终只跟收发室打交道,根本感知不到你的真实位置。 Tunnelto 干的就是"帮你开这个收发室 + 拉这根对讲机"的活。 装好就能跑:最小使用示例安装有三种常见方式,挑顺手的:
装完,假设你本地有个服务跑在 8000 端口,就这么一行:
跑起来后终端大致长这样(具体字符串是随机生成的):
接下来,任何人访问 想要一个好记的地址?加个参数:
这样就能拿到 甚至本地不是
它内部是怎么把流量"搬"过来的
我好奇它怎么做到的,翻了下源码和文档,结构其实不复杂,就三个角色:
之后真实的请求流转是这样的:
关键点是:你本机不需要公网 IP,也不需要对外开放任何端口。所有进出流量都先过服务器这一道,再由客户端"拉"回本地。 为什么用 Rust + Tokio[Rust 的异步运行时,可以理解成一个高效调度大量"等待中任务"的发动机]?说白了就是为了省资源、扛并发。异步 IO 的好处是:单线程就能同时照看成千上万个连接,不用为每个连接开一个线程(那样内存和切换开销会爆炸)。对一个"中转站"来说,这点很关键。 和 ngrok、localtunnel 比,怎么选我用过的几个同类工具,横向摆一摆(评价偏主观,按需取用): 我的看法:如果你只是偶尔演示一下,三个都能用;但如果你在意数据走谁家的服务器、想要免费自定义域名、或者想自己部署一套,那 Tunnelto 的性价比就出来了。ngrok 胜在生态成熟、文档稳,localtunnel 胜在零门槛(Node 环境里一行就能起)。 不想数据过别人家服务器?可以自托管这点我觉得是对隐私敏感的同学最该看的。Tunnelto 开源了服务端代码,你可以自己搭。 官方给了两条路:
几个关键的环境变量(配在服务器端):
哪些场景,它真的能救命
挑几个我身边最常见的:
安全这块别忽略工具再方便,把本机暴露出去总得留个心眼。Tunnelto 提供几层保障:
我的习惯:演示完、联调完,顺手把隧道关掉。别让它一直开着。 一点使用感受优点很直接:安装简单、命令短、免费送自定义子域名、还能自托管,对隐私党友好。Rust 写的中转站资源占用确实低,我开着它基本感觉不到存在。 要说不足:项目最近更新不算特别活跃(最新稳定版是 0.1.18),生态和文档丰富度比不上 ngrok;另外官方公共服务器是别人提供的,介意数据路径的请务必走自托管。 总归,它适合想一条命令把本地服务甩到公网、又不想被收费项卡脖子的开发者。如果你正好被 webhook / 演示 / 联调这类事烦着,可以拉下来试五分钟,不行再卸也不亏。 项目地址: 阅读原文:原文链接 该文章在 2026/10/20 12:01:03 编辑过 |
关键字查询
相关文章
正在查询... |