Rathole:新一代高性能内网穿透工具,比FRP更轻量的rust替代方案

  • 内容
  • 相关

Rathole 是一款用 Rust 语言编写的开源内网穿透工具,类似于 frp 和 ngrok。它允许位于 NAT 或防火墙后的设备通过具有公网 IP 的服务器将服务暴露到公网。

相较于FRP有着更少的占用情况下,提供更大的高并发,更大的带宽,内存占用更少。

开源地址:GitHub - rathole-org/rathole: A lightweight and high-performance reverse proxy for NAT traversal, written in Rust. An alternative to frp and ngrok.

123网盘(v0.5.0) :https://www.123912.com/s/ekeA-BqP4

 

核心特点

 性能优势

  • 高吞吐量:TCP/UDP 吞吐量比 frp 高数倍

  • 低资源占用:内存占用从 60-70MiB 减少到 10MiB 以下

  • 小巧精悍:最小二进制文件约 500KiB,适合嵌入式设备

  • 高并发稳定:在高并发情况下表现更稳定

 安全特性

  • 强制鉴权:每个服务都需要单独的 token 验证

  • 传输加密:支持 Noise Protocol 和 TLS 加密

  • 配置分离:服务端和客户端各自负责配置,提升安全性

实用功能

  • 热重载:支持配置文件热重载,无需重启服务

  • 多协议:支持 TCP、UDP 协议转发

  • 简单易用:单可执行文件,配置类似 frp

安装方式

官方下载

bash
# 从 GitHub Releases 下载
https://github.com/rapiz1/rathole/releases

系统要求

  • 注意:要求 GLIBC 2.18 以上版本

  • 支持 Windows、macOS、Linux

  • 服务器端需要公网 IP

配置详解

基本配置结构

Rathole 使用 TOML 格式配置文件,服务端和客户端配置分离:

服务端配置 (server.toml)

toml
[server]
bind_addr = "0.0.0.0:2333"

[server.services.my_service]
token = "your_secret_token"
bind_addr = "0.0.0.0:8080"

客户端配置 (client.toml)

toml
[client]
remote_addr = "your_server.com:2333"

[client.services.my_service]
token = "your_secret_token"
local_addr = "127.0.0.1:80"

加密传输配置

支持 Noise Protocol 进行传输加密:

bash
# 生成密钥
rathole --genkey
toml
# 服务端
[server.transport]
type = "noise"
[server.transport.noise]
local_private_key = "your_private_key"

# 客户端
[client.transport]
type = "noise"
[client.transport.noise]
remote_public_key = "server_public_key"

使用场景

SSH 服务穿透

toml
# 服务端
[server.services.ssh]
token = "ssh_token"
bind_addr = "0.0.0.0:5202"

# 客户端
[client.services.ssh]
token = "ssh_token"
local_addr = "127.0.0.1:22"

HTTP 服务穿透

配合 Nginx 反向代理:

nginx
server {
    listen 80;
    server_name your_domain.com;
    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

性能表现

基准测试结果

  • 延迟:与 frp 相近

  • 带宽:在高并发时提供更大带宽

  • 内存:占用显著低于 frp

  • 稳定性:在高并发下更稳定

实际使用体验

  • 在资源受限环境下表现优异

  • 相比 frp 在某些场景下更稳定

  • 配置分离增加安全性但稍显繁琐

优缺点分析

 优点

  1. 性能卓越:高吞吐、低内存占用

  2. 安全性强:强制鉴权、支持加密

  3. 轻量级:单文件部署,适合嵌入式设备

  4. 热重载:动态修改配置无需重启

 缺点

  1. 配置稍复杂:相比 frp 需要更多配置

  2. 生态较弱:社区活跃度不如 frp

  3. 系统要求:需要较新的 GLIBC 版本

  4. 更新频率:项目维护相对缓慢

与 Frp 对比

 
 
特性 Rathole Frp
内存占用 ~10MiB 60-70MiB
吞吐量 更高 标准
配置方式 服务端客户端分离 集中式配置
加密支持 Noise Protocol + TLS TLS
易用性 中等 优秀
社区生态 较小 繁荣活跃

适用场景

 推荐使用场景

  • 资源受限环境(VPS、路由器)

  • 需要高并发穿透的服务

  • 对安全性要求较高的场景

  • 嵌入式设备部署

 注意事项

  • 对于简单需求,frp 可能更合适

  • 需要一定的技术背景进行配置

  • 生产环境建议充分测试

 总结

Rathole 是一款在性能和资源占用方面表现突出的内网穿透工具,特别适合资源受限环境和高并发场景。虽然配置相对复杂且生态系统不如 frp 完善,但其出色的性能和安全性使其成为特定场景下的优秀选择。

作者信息
头像
描述: 一起用互联网帮助更多人

本文标签:

本文链接:Rathole:新一代高性能内网穿透工具,比FRP更轻量的rust替代方案 - http://www.go176.net/post-7304.html

剑客网,一起用互联网帮助更多人