rathole - 安全、稳定、高性能的内网穿透工具,用 Rust 语言编写。
先博一下眼球,让各位有兴趣继续看下去:
如果你对性能和内存的测试数据感兴趣,可以直接拉到帖子下面的图表感受一下。
下面写写我为什么要做这个工具,和我开发的时候在想什么。
frp 是优秀的基于内网穿透反向代理工具,方便易用,集成了很多功能。
但我对一个内网穿透工具的期望不太一样,我相信一个工具应该专注做一件事,通过简单优雅的设计接口来提供扩展能力。
我仔细思考了如何设计这样一个工具,它应该:
有安全和优雅的服务模型 服务端和客户端各自只负责自己的配置,并对外暴露配置 API (目前支持服务配置热重载,HTTP API 正在开发)。每个转发服务强制且单独鉴权。这样可以在易用性、安全性、灵活性间达到平衡:
保持简单和专注 rathole 专注于内网穿透本身,而不是提供路由、复杂的鉴权和多租户管控、和各种运输层和应用层协议交互。这些需求应该通过和其他工具的组合实现,而不是集成到 rathole 中。这可以带来性能上的好处和更广泛的适用性,比如部署到嵌入式设备(路由器、工控机)中。
相比于 frp ,除了数据上的优势,rathole 还有更多的可能性:
rathole 已经持续开发了一段时间,必要的特性已经趋于完善和稳定。我觉得是时候发布出来,让大家体验使用和反馈。
目前已经决定的开发计划有 HTTP API (或其他形式的 API )。API 实现后,能够支持 Dashboard 和复杂动态管理需求的开发。
最后,如果你还没有查看 项目 README ,这里是一个方便的链接。
测试的具体数字随机器变化,测试方法见此,主要用 iperf3 测试 TCP/UDP 吞吐量, vegeta + nginx 测试 HTTP 吞吐量,同时检测内存占用
101
levinit 2022-01-14 08:50:36 +08:00 via iPhone
有类似 frp 的 stcp 模式吗? 不用暴露端口在中转服务器上。
|
102
LeeReamond 2022-01-14 13:36:15 +08:00
有关安全性和稳定性有相关测试吗
|
104
rapiz OP @LeeReamond 支持开启 TLS/noise 加密。但被暴露的服务总需要自身足够安全。关于稳定性,目前有高并发测试,表现优秀。长期运行的稳定性,主要是弱网环境下的测试和稳定性,还在补齐和加强。
|
105
junyee 2022-01-14 19:49:46 +08:00
frp 是好东西。但是体积确实有些大。
另外把 token 和服务器信息等 以明文暴露在客户端让我很不放心。。 虽然可以服务器挂插件. 对了,p2p 很重要。 |
106
rapiz OP |
107
LeeReamond 2022-01-15 04:53:49 +08:00
@rapiz 很棒,有兴趣在生产服务上测试! frp 实际应用中的一种主流场景是 stcp 持有 token 才能正常访问,不知道有没有实现类似功能。
|
108
40EaE5uJO3Xt1VVa 2022-01-16 16:32:28 +08:00
我们几乎重写了 frp
|
109
Decent 2022-05-01 23:07:56 +08:00
遇到一个比较奇怪的现象:
相同环境下,用 frp + TLS + v2 开网页响应速度很快,但是峰值速率最多 15 Mbps 。 用 rathole + TLS + v2 网页响应会稍微慢点,但是峰值能去到 100 Mbps 。 |
110
v2defy 2022-11-21 14:50:44 +08:00
大佬,rathole 的 http api 还在做吗
|
112
rapiz OP @Decent 可以考虑开一下配置文件里的 TCP nodelay 。另外,看起来使用的异步框架 tokio 比 go corountine 的调度 delay 会更高一些
|
113
TweakiOS 2022-12-04 07:56:39 +08:00 via iPhone
这个名字其实挺好的,就是老鼠洞嘛!
另外外行人问下,client 和 server 之间隧道打通之后是否可以双向跑服务,现在看起来主要是外网访问内网,理论上是否内网也可以把 server 当作代理或网关呢?还是一定得用别的工具来实现从内到外的访问?谢谢! |
114
promiser3d 2023-06-20 10:34:46 +08:00
确实是个好东西,不知道后续还有进一步的开发计划不
|
115
ccpbisi 2023-07-12 17:10:55 +08:00
老哥我有点疑问,你有没有研究过商业内网穿透,感觉那些内网穿透有种更加稳定的感觉,之前用神卓,感觉很稳定比 frp 稳定很多
|
116
Ju33Huang22 2023-08-14 14:00:19 +08:00
试了一下,rathole 确实要比 frp 的性能更高,速度提升了不少 ^_^
|
117
ryc111 2023-10-10 08:10:54 +08:00
好久以前看到的帖子,今天有个需求就配置了一下
- 和 frp 的 client side config 不一样,需要 c-s 同时配置,爬了下楼,看到了 lz 的想法觉得这样也不错。 - 测试了一下极限性能(我网络速度下的性能) frp 大概跑 200M, rathole 能到 600M 多,极限带宽的确增加不少,虽然我主要用来连 vscode ssh 到远程服务器两者差别不大。 - 都是 docker 部署,和 frp 差不多。加几行 service 写个 toml 就成了,非常好配置。 赞。已 star ! |