杜郎俊赏 - dujun.io

开源实例之rathole

前言

本篇介绍使用 rathole 实现内网穿透。了解什么是内网穿透可以参考《开源实例之frp》一文中的介绍。

rathole 介绍

A lightweight and high-performance reverse proxy for NAT traversal, written in Rust. An alternative to frp and ngrok, can help to expose the service on the device behind the NAT to the Internet, via a server with a public IP.

rathole 支持配置文件热重载(hot reload),动态修改端口转发服务。作者宣称,rathole 在高并发情况下比 frp 表现更好,能提供更大的带宽,内存占用更少。

仓库地址:https://github.com/rapiz1/rathole

rathole 部署

rathole 的部署与 frp 基本一样。

软件下载

到 git 下载系统对应的 release 包解压即可。与 frp 不同的是,rathole 程序同时支持服务端、客户端。

服务端部署

在服务端(公网服务器)创建配置文件server.toml

[server]
bind_addr = "0.0.0.0:2333"

[server.services.ssh]
token = 用于验证的 token
bind_addr = "0.0.0.0:5202"

启动服务端:

./rathole server.toml

客户端部署

在客户端(内网服务器)创建配置文件client.toml

[client]
remote_addr = "192.168.56.10:2333"

[client.services.ssh]
token = 用于验证的 token
local_addr = "127.0.0.1:22"

启动客户端:

./rathole client.toml

开始穿透

此时就可以通过公网(192.168.56.10)端口 SSH 到内网(192.168.56.11):

ssh -p 5202 test@192.168.56.10

后记

体验更多开源实例

标签: 开源实例
日期:2023-02-27