Rathole 是一款开源的轻量级内网穿透工具。根据官方基准测试,它的延迟与 frp 相近,但在高并发场景下表现更好——能提供更大的带宽,同时内存占用也会更低。两者使用方式极为类似,都是一个可执行文件配合服务端与客户端配置文件,就能轻松实现内网穿透。

注意:Rathole 支持 Windows、macOS、Linux 三大平台,服务端需要具备公网 IP。
先说一句:frp 已经足够好用了,无必要不折腾。但话又说回来,不折腾白不折腾!
01 | Rathole vs frp 基准测试
Rathole 官方提供了一份与 frp 对照的基准测试,结论很明确:对多数用户来说,Rathole 能带来的核心优势是更少的资源占用,而带宽和延迟未必会有显著提升。
02 | Rathole 配置教程
Rathole 的用法和 frp 极其相似,但它只有一个主程序,不区分服务端与客户端,所以可以很方便地拿着同一个文件夹到处跑。
下载地址:GitHub 上的 rathole-org/rathole 仓库(https://github.com/rathole-org/rathole/)
服务器端配置
只需要一个 server.toml 文件:
[server]
bind_addr = "0.0.0.0:2333" # `2333` 配置了服务端监听客户端连接的端口
[server.services.appinn]
token = "一个很长的随机密码" # 用于验证的 token
bind_addr = "0.0.0.0:2335" # 将 2335 暴露出来,将来访问的也是这个端口
保存后运行 rathole server.toml 就行了。
客户端配置
客户端同样只需要一个 client.toml 文件:
[client]
remote_addr = "服务器IP:2333" # 服务器的地址。端口必须与 `server.bind_addr` 中的端口相同。
[client.services.appinn]
token = "一个很长的随机密码" # 必须与服务器相同以通过验证
local_addr = "127.0.0.1:5001" # 需要被转发的服务的地址
然后运行 rathole client.toml 就行了。

使用示例
以上面的配置为例,目的就是将内网群晖的管理界面穿透出去。当两端都运行成功后,你就可以在任意浏览器中通过 服务器IP:2335 访问群晖了。
03 | 现状
不过,Rathole 的现状不算乐观。虽然最近一次代码提交是在两个月前,但已经很久没有发布新版本了。反观隔壁的 frp,更新勤快,社区繁荣。
所以还是再提一句:无必要不折腾啊。
如果你对这类内网穿透方案感兴趣,欢迎来云栈社区一起交流。
参考来源:Appinn
|