Rathole 是一个开源的 TCP 反向代理工具,主要用于内网穿透,使得内网中的服务可以通过公网访问。下面将介绍如何部署 Rathole 以实现内网穿透。
客户访问101.201.76.173:9445 -----(代理)-----> 10.30.15.38:9445
一、部署服务端
1、在101.201.76部署Rathole 服务端
通过网盘分享的文件:rathole.tar
链接: https://pan.baidu.com/s/1BVKB5R2NmDWNpJjndyF4_g?pwd=q34j 提取码: q34j
docker load -i rathole.tar
bash
docker run -d \
--name rathole \
--network host \
-v /opt/hjj/server.toml:/etc/rathole/server.toml \
rapiz1/rathole /etc/rathole/server.toml
配置如下
bash
iZ2ze23bavxeqetpsalediZ:~ # cat /opt/hjj/server.toml
[server]
bind_addr = "0.0.0.0:8080"
[server.services.iperfs-tcp]
type = "tcp"
token = "123"
bind_addr = "0.0.0.0:9445"
bind_addr = "0.0.0.0:8080" #通信用的
bind_addr = "0.0.0.0:9445" #需要代理的
2、查看日志
bash
docker logs -f rathole

一、部署客户端
1、在10.30.15.38部署Rathole 客服端
bash
docker run -d \
--name rathole \
--network host \
-v /opt/hjj/client.toml:/etc/rathole/client.toml \
rapiz1/rathole /etc/rathole/client.toml
配置如下
bash
[root@localhost ~]# cat /opt/hjj/client.toml
[client]
remote_addr = "101.201.76.173:8080"
[client.services.iperfs-tcp]
token = "123"
local_addr = "10.30.15.38:9445"
bind_addr = "101.201.76.173:8080" #通信用的
bind_addr = "10.30.15.38:9445" #需要代理的
2、查看日志
bash
docker logs -f rathole

测试
找台有网络的环境直接测试

我代理的是pritunl(openvpn服务tcp端口)
部署arm64架构客户端(其他包括配置不变)
bash
docker run -d \
--name rathole \
--network host \
--security-opt seccomp=unconfined \
--ulimit nofile=65535:65535 \
-v /opt/hjj/client.toml:/etc/rathole/client.toml \
docker.1ms.run/zouyq/rathole:latest /etc/rathole/client.toml