Rathole 高性能 NAT 隧道教程

Rathole 是一款用 Rust 编写的高性能 NAT 隧道工具,类似于 frp 但具有更好的性能和更低的资源消耗。它专注于安全可靠的内网穿透,支持 TCP 和 UDP 端口转发,具备 TLS 加密和 Token 认证功能。根据基准测试,Rathole 的吞吐量比 frp 高出数倍,是追求性能的用户的理想选择。

一、Rathole 特点

  • 高性能:Rust 实现,零拷贝转发,性能超越 frp。
  • 低资源:内存占用极低,适合小型 VPS。
  • 安全性:支持 TLS 加密和 Token 认证。
  • 热重载:修改配置后无需重启服务。
  • TCP/UDP:同时支持 TCP 和 UDP 端口转发。

二、安装 Rathole

wget https://github.com/rapiz1/rathole/releases/latest/download/rathole-x86_64-unknown-linux-gnu.zip
unzip rathole-x86_64-unknown-linux-gnu.zip
mv rathole /usr/local/bin/
chmod +x /usr/local/bin/rathole
rathole --version

三、服务端配置(搬瓦工 VPS)

mkdir -p /etc/rathole
cat > /etc/rathole/server.toml << 'EOF'
[server]
bind_addr = "0.0.0.0:2333"

[server.transport]
type = "tcp"

[server.services.web]
token = "your-secret-token-here"
bind_addr = "0.0.0.0:8080"

[server.services.ssh]
token = "your-secret-token-here"
bind_addr = "0.0.0.0:2222"

[server.services.db]
token = "your-secret-token-here"
bind_addr = "0.0.0.0:13306"
EOF

四、客户端配置(内网机器)

cat > /etc/rathole/client.toml << 'EOF'
[client]
remote_addr = "YOUR_VPS_IP:2333"

[client.transport]
type = "tcp"

[client.services.web]
token = "your-secret-token-here"
local_addr = "127.0.0.1:80"

[client.services.ssh]
token = "your-secret-token-here"
local_addr = "127.0.0.1:22"

[client.services.db]
token = "your-secret-token-here"
local_addr = "127.0.0.1:3306"
EOF

五、启动服务

# 启动服务端
rathole /etc/rathole/server.toml

# 启动客户端
rathole /etc/rathole/client.toml

六、启用 TLS 加密

# 服务端 TLS 配置
[server.transport]
type = "tcp"

[server.transport.tls]
pkcs12 = "/etc/rathole/identity.pfx"
pkcs12_password = "your-pfx-password"

生成证书:

# 生成自签名证书
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj "/CN=rathole"

# 转换为 PKCS12 格式
openssl pkcs12 -export -out /etc/rathole/identity.pfx -inkey key.pem -in cert.pem -password pass:your-pfx-password

七、Systemd 服务

cat > /etc/systemd/system/rathole.service << 'EOF'
[Unit]
Description=Rathole NAT Tunnel Server
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/rathole /etc/rathole/server.toml
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable rathole
systemctl start rathole

八、UDP 端口转发

# 服务端配置 UDP 服务
[server.services.dns]
type = "udp"
token = "your-secret-token-here"
bind_addr = "0.0.0.0:5353"

# 客户端配置
[client.services.dns]
type = "udp"
token = "your-secret-token-here"
local_addr = "127.0.0.1:53"

九、性能对比

  • Rathole vs frp:Rathole 吞吐量更高(约 2-3 倍),内存占用更低。
  • Rathole vs Bore:Rathole 支持多服务和 UDP,Bore 更简单。

十、常见问题

Token 不匹配

确保服务端和客户端同一个服务使用完全相同的 Token 值。

连接失败

检查防火墙是否开放了控制端口(2333)和服务端口,确认服务端正在运行。

ufw allow 2333/tcp
ufw allow 8080/tcp
ufw allow 2222/tcp

总结

Rathole 是目前性能最好的开源 NAT 隧道工具之一,Rust 实现带来了卓越的性能和极低的资源开销。TOML 配置格式清晰易读,适合管理多个内网穿透服务。如果你对性能要求较高,Rathole 是比 frp 更好的选择。选购搬瓦工 VPS 请查看全部方案,使用优惠码 NODESEEK2026 可享受折扣。如有问题可通过搬瓦工官网提交工单。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。