第一部分
1.原理说明:frp是一个可以穿透内网的代理应用,我想在外网中比如在家里访问公司内网的服务器就可以用frp来实现。白话原理:首先需要两台服务器,一台公司内网的服务器A,一台外网的服务(阿里、腾讯)B。在内网的服务器A上安装frp客户端,在外网的服务器B安装frp的服务端,配置启动后,内网服务器A的frp客户端软件,会连接到外网服务器B的rp服务端。这时内网服务器A的frp客户端就成了一个代理,外网服务器B会让内网服务器A去帮忙请求公司内网的资源。也就是说,如果我在互联网中比如家里访问这个外网服务器B(阿里的或腾讯的)的某个端口(6000),B就会通过自己的这个端口(6000)把请求转发给公司内网B上的某个端口(8080),比如我在外网服务器开通一个6000端口然后把它配置到frp服务端上,在公司内网服务器B中有一个web服务,这个web服务监听的是本地8080端口,通过配置frp就可以实现我在家中访问外网服务器A的6000端口,外网服务器B会把我的请求转发到内网服务器A的8080端口,这样我就可以在家中请求到公司内网的资源了。
2.开始配置演示:
现在两台服务器中下载frp原件,A和B都要下载:
wget https://github.com/fatedier/frp/releases/download/v0.29.0/frp_0.29.0_linux_amd64.tar.gz
tar -zxvf frp_0.29.0_linux_amd64.tar.gz -C frp
cd /frp/frp_0.29.0_linux_amd64/
第二部分
1.ssh的代理
首先我们演示ssh代理的配置,就是在外网服务器B通过frp代理实现对内网服务器A的ssh远程登陆访问和操作内网服务器A。
编辑外网服务器的vim /frp/frp_0.29.0_linux_amd64/frps.ini配置文件,配置以下内容:
[common]
bind_port = 7000
这个端口是外网服务器B中frp服务端程序启动的端口号,也是一会儿内网服务器B中frp客户端配置连接的端口。
编辑内网服务器的vim /frp/frp_0.29.0_linux_amd64/frpc.ini配置文件配置以下内容:
#连接服务器配置
[common]
server_addr = 152.136.157.137#frp服务端ip地址
server_port = 7000#服务端frp的端口和上面服务器配置的一致。
#ssh代理配置
[ssh]
type = tcp
#下面的配置的意思是,外网服务器B会使用它自己本地的6000端口,去转发内网服务器的ssh请求,请求内网服务器的127.0.0.1 和端口22.
local_ip = 127.0.0.1 #frp客户端本地的ssh的ip
local_port = 22 #frp客户端本地的ssh的程序的端口
remote_port = 6000 #frp服务端使用这个端口转发ssh请求
至此服务器和客户端都配置完毕。
在外网服务器B启动frp服务端程序:
./frps -c ./frps.ini
在内网服务器A启动frp客户端程序:
./frpc -c ./frpc.ini
提示启动成功和代理连接成功信息就算配置成功了。
2.web代理
下面演示web代理的配置,就是在外网服务器B通过frp代理实现对内网服务器A的web服务器的访问
编辑外网服务器的vim /frp/frp_0.29.0_linux_amd64/frps.ini配置文件,配置以下内容:
[common]
下面端口是外网服务器B中frp服务端程序启动的端口号,也是内网服务器B中frp客户端配置连接的端口。
bind_port = 7000
#下面这个端口是frp服务端用来把web请求转发到frp客户端要用的端口
vhost_http_port = 6000
编辑内网服务器的vim /frp/frp_0.29.0_linux_amd64/frpc.ini配置文件配置以下内容:
#下面这段配置的意思就是我们可以通过外网服务器B的域名和段端口访问内网服务器A的web服务器,即通过http://152.136.157.137:6000访问到内网的http://127.0.0.1:8080
[web]
type = http
local_ip = 127.0.0.1#内网服务器A本地web服务器的ip
local_port = 8080 内网服务器A本地web服务器的端口
custom_domains = 152.136.157.137#外网服务器B转发内网服务器A使用的域名
remote_port =6000#外网服务器B转发内网服务器A时使用的端口
至此web代理配置完毕。
在外网服务器B启动frp服务端程序:
./frps -c ./frps.ini
在内网服务器A启动frp客户端程序:
./frpc -c ./frpc.ini
提示启动成功和代理连接成功信息就算配置成功了。
注意配置代理时要开放外网服务器B的7000和6000端口否则内网服务器A的frp客户端无法访问外网服务器B的frp服务端。可以在后台运行frpc 程序使用:
nohup ./frps -c ./frps.ini > frps.log 2>&1 &
nohup ./frpc -c ./frpc.ini > frpc.log 2>&1 &