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

[点晴永久免费OA]rathole:一款用 Rust 编写仅500KB大小的高性能内网穿透工具,安全、稳定且资源消耗极低

admin
2025年8月10日 1:31 本文热度 111

在日常开发和运维中,我们经常会遇到需要将内网服务暴露到公网的场景,比如远程访问家中的 NAS调试内网的开发服务等。

而传统的内网穿透工具要么性能不足,要么配置复杂,难以满足高要求场景。

今天就为大家推荐一款用 Rust 编写的高性能内网穿透工具 ——rathole,它安全、稳定且资源消耗极低,或许能成为你的得力助手。

一、介绍

rathole 是一款专注于 NAT 穿透的反向代理工具,与大家熟知的 frpngrok 类似,能够帮助将 NAT 后的设备上的服务通过具有公网 IP 的服务器暴露到互联网。

该项目基于 Rust 语言开发,凭借 Rust 的内存安全和高性能特性,rathole 在吞吐量、稳定性和资源占用方面表现出色。

它的代码托管在 GitHub 上,开源且持续活跃开发,目前已获得大量开发者的关注和使用。

特别说明:rathole 目前只提供了Linux版本,不支持Windows、MacOS等其他操作系统

无论是个人开发者调试内网服务,还是家庭用户远程访问私有设备,rathole 都能提供可靠的解决方案。

二、功能特性

  • 高性能:相比 frp,rathole 能实现更高的吞吐量,在处理大量连接时也更加稳定,这使得它在高并发场景下表现优异。
  • 低资源消耗:内存占用远低于同类工具,通过特定的构建方式,其二进制文件最小可至约 500KiB,非常适合部署在路由器等嵌入式设备上。
  • 安全性强:每个服务都强制进行单独鉴权,服务器和客户端各自负责自己的配置。支持 Noise 协议,无需自签证书即可轻松配置传输加密,同时也支持 TLS。
  • 热重载:支持配置文件热重载,能够动态添加或移除服务,无需重启工具,极大地提升了使用的便利性。HTTP API 功能正在开发中,未来使用将更加灵活。

三、性能测试

rathole 的延迟与 frp 相近,在高并发情况下表现更好,能提供更大的带宽,内存占用更少。

对大多数用户来说,rathole 能带来的主要好处是更少的资源占用:

四、安装

4.1 安装方式

  • 直接下载:可以从rathole 的 GitHub 发布页面获取全功能的预编译二进制文件。
    https://github.com/rathole-org/rathole
  • Docker 镜像:项目提供了 Docker 镜像,可通过docker pull rapiz1/rathole获取。
  • 源码构建:对于需要最新特性或特定平台的用户,可以从源码构建。具体步骤可参考构建指南,通过调整构建参数还能实现二进制文件的最小化。例如,使用minimal配置文件构建客户端版本:
cargo build --profile minimal --no-default-features --features client

4.2 快速使用

使用 rathole 需要一台具有公网 IP 的服务器和一台在 NAT 后的设备(需要暴露服务的设备)。以下以暴露 NAS 的 ssh 服务为例:

  1. 服务器端配置

首先创建server.toml文件:

# server.toml
[server]
bind_addr = "0.0.0.0:2333"  # 服务器监听客户端连接的端口

[server.services.my_nas_ssh]
token = "use_a_secret_that_only_you_know"  # 用于验证客户端的令牌
bind_addr = "0.0.0.0:5202"  # 暴露服务到公网的端口

然后运行服务器:

./rathole server.toml
  1. 客户端配置(NAT后的设备)

创建client.toml文件:

# client.toml
[client]
remote_addr = "myserver.com:2333"  # 服务器地址,端口需与服务器的bind_addr一致

[client.services.my_nas_ssh]
token = "use_a_secret_that_only_you_know"  # 需与服务器端对应服务的token一致
local_addr = "127.0.0.1:22"  # 需要被转发的本地服务地址(此处为ssh服务)

然后运行客户端:

./rathole client.toml
  1. 使用服务

完成上述配置后,客户端会连接服务器,此时访问myserver.com:5202的流量会被转发到客户端的 22 端口,通过ssh myserver.com:5202即可远程连接 NAS。

 4. 其他说明

如果只有一个 [server] 和 [client] 块存在的话,rathole 可以根据配置文件的内容自动决定在服务器模式或客户端模式下运行,就像 Quickstart 中的例子。

但 [client] 和 [server] 块也可以放在一个文件中。然后在服务器端,运行 rathole --server config.toml。在客户端,运行 rathole --client config.toml 来明确告诉 rathole 运行模式。

推荐首先查看 examples 中的配置示例来快速理解配置格式,如果有不清楚的地方再查阅完整配置格式。

四、总结

rathole 作为一款用 Rust 开发的内网穿透工具,凭借高性能低资源消耗高安全性支持热重载等特性,为 NAT 穿透场景提供了出色的解决方案。

它的配置方式与 frp 类似,易于上手,同时在性能和资源占用上更具优势。

无论是个人用户远程访问内网设备,还是开发者调试服务,rathole 都是一个值得尝试的选择。

随着项目的持续发展,未来还将支持 HTTP API 等更多功能,进一步提升使用体验。如果你正在寻找一款高效可靠的内网穿透工具,不妨试试 rathole。


阅读原文:原文链接


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