使用rathole进行内网穿透

简介

上次说了cloudflare tunnel 这次说说rathole,这个项目我很早就关注了,对于我来说rathole和frp没什么区别,直接讲讲怎么配置吧

项目地址

https://github.com/rapiz1/rathole

环境

首先说下我内网穿透是怎么做的,首先公网上有一台服务器这个是毋庸置疑的,其次内网有两台树莓派,一台用来搭建内网穿透的工具,另外一台是nginx,用来做流量的转发,这样做有什么好处呢,你只要把云服务器的80 和443与内网nginx的80和443使用tcp打通就好了,具体的http怎么去做转发那就完全是nginx的事情了,你内网穿透工具配置完80和443端口相关的东西其他都可以不用动了,当然ssh rdp这些除外

配置

首先公网服务器下载rathole

wget https://github.com/rapiz1/rathole/releases/download/v0.3.9/rathole-x86_64-unknown-linux-musl.zip

之后解压

unzip rathole-x86_64-unknown-linux-musl.zip

编写配置文件

1
2
3
4
5
6
7
8
9
10
11
# server.toml
[server]
bind_addr = "0.0.0.0:7000"

[server.services.tcp1]
token = "token"
bind_addr = "0.0.0.0:80"

[server.services.tcp2]
token = "token"
bind_addr = "0.0.0.0:443"

之后写一个start.sh脚本启动就好了

nohup ./rathole ./config.toml &

之后是内网树莓派的操作

下载

wget https://github.com/rapiz1/rathole/releases/download/v0.3.9/rathole-armv7-unknown-linux-musleabihf.zip

解压

unzip rathole-armv7-unknown-linux-musleabihf.zip

配置

1
2
3
4
5
6
7
8
9
10
[client]
remote_addr = "serverip:7000"

[client.services.tcp1]
token = "token"
local_addr = "10.10.100.11:80"

[client.services.tcp2]
token = "token"
local_addr = "10.10.100.11:443"

启动

nohup ./rathole ./config.toml &

这里的token大家自己随便生成就好了,我一般随便找个文件生成md5,使用md5去做token

最后说几句

rathole和frp对于我来说比较起来差不多,具体的东西我没有测试,但是我还是选择了frp

欢迎关注我的博客www.bboy.app

Have Fun

欢迎关注我的其它发布渠道