【教程】docker部署rathole内网穿透软件教程,比frp效率高占用少

rathole简介

GitHub链接

rathole为一个内网穿透软件,用rust编写。GitHub上6.6k的star了。对比frp,rathole性能好,占用低。配置文件和frp类似,会写frp的,就会写rathole。

rathole缺点

配置比frp要复杂点,因为rathole服务器端配置文件也要添加相关内容,frp服务器端不需要,只是在客户端添加。而且rathole文档少,官方的docker示例有坑。功能应该是比frp要少的。

部署

服务器端

  1. 先安装dockers
curl https://get.docker.com | bash
  1. 在主机建立文件夹,以及server.toml文件

server.toml:

[server]
bind_addr = "0.0.0.0:1234"	#1234端口可以随意改,和客户端一致就行。
default_token = "your token"  #自己改token,和客户端一致。如果不写default,也可以每个services都分开写。

[server.services.OpenWrt]
type = "tcp"
bind_addr = "0.0.0.0:60001"
[server.services.NAS]
type = "tcp"
bind_addr = "0.0.0.0:60002"

以上services依次添加

  1. server.toml文件放到文件夹,建立容器。以目录root/rathole/server.toml为例
docker run --restart=always --network host -d -v "/root/rathole/server.toml:/app/server.toml" --name rathole rapiz1/rathole --server /app/server.toml

dockerhub上,rathole的说明里面的一键服务器命令,我运行有问题,用上面的就可以。

客户端

  1. 准备client.toml文件
[client]
remote_addr = "主机ip或域名:1234" #填写自己主机的ip或对应的域名,端口号要和服务端对应上
default_token = "your token" #和服务端对应上,如果不写default,也可以分别在services中写

[client.services.OpenWrt]
type = "tcp"
local_addr = "192.168.0.1:80" #本地的内网ip和端口
[client.services.NAS]
type = "tcp"
local_addr = "192.168.0.1:8001" #本地的内网ip和端口

名称和服务端对应

  1. 部署镜像

以群晖为例。将client.toml放至docker/rathole目录中

添加命令:--client /app/client.toml

这个对于群晖是个坑。

运行

用服务端定义的端口访问,主机的ip或者域名:60001就是访问本地的openwrt,ip:60002就是访问本地的nas。

其他

如果觉得加端口不方便,可以用nginx之类的在开放80和443端口的主机上做反代。其余可以多看看官方文档。

点赞
  1. --说道:

    技术贴,绑定

  2. duyvzu说道:

    收藏 技术贴【教程】docker部署rathole内网穿透软件教程,比frp效率高占用少

  3. scientificworld说道:

    这个比frp麻烦的一点是改配置要同时改服务端和客户端,frp的服务端配置一般写好了就不用动了,加转发端口只需要改客户端就行。
    有个PR解决了这个问题,不过还没有被合并:https://github.com/rapiz1/rathole/pull/275
    所以虽然frp性能也许没那么高,但我还是选择frp,懒得同一份配置写两遍(

回复 -- 取消回复

电子邮件地址不会被公开。必填项已用 * 标注

×
订阅图标按钮