剪藏#剪藏#计算机低手
内网穿透系列十:高性能内网穿透工具 rathole,支持Docker一键部署
2025 年 8 月 2 日 约 1 分钟


一、简介
二、安装与使用(Docker方式)
1. 服务端安装
- • 创建配置文件 docker-compose.yml,内容如下:
JAVASCRIPT
version: '3'
services:
rathole:
image: rapiz1/rathole
volumes:
- "./config.toml:/app/config.toml"
command: --server /app/config.toml
network_mode: host
privileged: true
restart: always- • 相同目录下创建服务端 config.toml 配置文件,内容如下:
JAVASCRIPT
# 服务端配置config.toml
[server]
bind_addr = "0.0.0.0:1443" # `1443` 配置了服务端监听客户端连接的端口
# 更多传输方式参考:https://github.com/rathole-org/rathole/blob/main/docs/transport.md
[server.transport] # 要和客户端保持一致 `[client.transport]`
type = "noise" # 可选:["tcp", "tls", "noise", ...],noise这种方式可以无需手动设置自签证书即可实现流量数据加密
[server.transport.noise]
pattern = "Noise_XX_25519_ChaChaPoly_BLAKE2s"
[server.services.portainer] #这里的portainer是自定义的服务名称
token = "test1234" # 用于验证的 token,可以设置更加复杂的
bind_addr = "0.0.0.0:9000" # 这个地址是服务端暴露的的服务端口:ip+端口,启动后这个地址作为穿透内网服务的入口
[server.services.mysql] #这里的mysql是自定义的服务名称
token = "test1234"
bind_addr = "0.0.0.0:3306"- • 服务器端一键启动
JAVASCRIPT
docker-compose up -d2. 客户端安装
- • 同样在客户机上创建配置文件 docker-compose.yml,内容如下:
JAVASCRIPT
version: '3'
services:
rathole:
image: rapiz1/rathole
volumes:
- "./config.toml:/app/config.toml"
command: --client /app/config.toml
restart: always- • 同样在相同目录下创建客户端 config.toml 配置文件,内容如下:
JAVASCRIPT
[client]
remote_addr = "ip_or_domain:1443" # 服务器的地址。端口必须与 `server.bind_addr` 中的端口相同。
[client.transport] # 客户端传输协议配置
type = "noise" # 传输协议类型,必须与服务端一致
# 传输协议配置,也跟服务端保持一致
[client.transport.noise]
pattern = "Noise_XX_25519_ChaChaPoly_BLAKE2s"
[client.services.portainer] #与服务端自定义的服务名称一致
token = "test1234" # 必须与服务器相同以通过验证
local_addr = "172.17.0.1:9000" # 需要被转发的服务的地址
[client.services.mysql]
token = "test1234"
local_addr = "172.17.0.1:3306"- • 客户端一键启动
JAVASCRIPT
docker-compose up -d3. 访问内网穿透服务示例
三、总结
-
• 该工具可以作为frp、ngrok的开源替代品
-
• 没有提供免费的公网网络服务,需要自定在自己的公网服务器搭建
-
• 有一些需要高并发访问的服务、接口,可以选择 rathole 内网穿透方案

推荐一下个人网站(本文内容如有错漏只会在个人博客更新):
