frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。
一个frp文件包里面包括frpc、frps以及相应的配置文件。内部的配置文件,如下图所示:
frpc:是指 frp客户端(client)
frpc.ini:客户端配置文件
frps:是指 frp服务端(server)
frps.ini:服务端配置文件
一台有公网IP的服务器(下文称外网主机)
一台需要实现内网穿透的机器(下文称内网主机)
一个SSH工具(xshell、Mobaxterm或putty)
一个域名(如果只是建立SSH反向代理则不需要域名)。
windows环境中,推荐下载 frp_0.20.0_windows_amd64.zip
linux环境中,推荐下载 frp_0.20.0_linux_amd64.tar.gz
具体还是看情况而定,可以自己选取版本、看操作系统选择32位或64位的。
下载地址传送门: https://github.com/fatedier/frp/releases
外网主机(带有公网ip的服务器)需要安装服务端的frp
(1)解压
使用tar指令解压tar.gz文件
tar -zxvf frp_0.20.0_linux_amd64.tar.gz
(2)删除多余文件
外网主机作为服务端,可以删掉不必要的客户端文件。使用cd指令进入解压出来的文件夹,使用rm指令删除文件。
cd frp_0.20.0_linux_amd64/ rm -f frpc rm -f frpc.ini
(3)修改配置文件
修改服务器配置文件,frps.ini文件。使用vi指令对目标文件进行编辑。
vi frps.ini
添加以下内容:
[common] bind_port = 7000 #frp服务端端口 vhost_http_port = 8080 #http访问端口
./frps -c ./frps.ini
tar -zxvf frp_0.20.0_linux_amd64.tar.gz
(2)删除多余文件
外网主机作为服务端,可以删掉不必要的服务端文件。使用cd指令进入解压出来的文件夹,使用rm指令删除文件。
cd frp_0.20.0_linux_amd64/ rm -f frps rm -f frps.ini
(3)修改配置文件
使用vi命令,修改frpc.ini
vi frp.ini
[common] server_addr = 123.5.57.118 #服务端ip(外网ip) server_port = 7000 #服务端设定的端口
[ssh]中的local_port填本机开放的ssh端口,一般ssh端口默认为22。
#通过tcp来连接SSH [ssh] type = tcp local_ip = 127.0.0.1 #本机ip local_port = 22 #本机ssh端口 remote_port = 6000 #外网服务器请求过来的端口
[mysql]中的 type对应服务端配置,local_port填服务端mysql端口。
#通过tcp来连接mysql [mysql] type = tcp local_port = 3306 remote_port = 3306 #use_encryption = true #use_compression = true
[tomcat]中的 type对应服务端配置,local_port填服务端toncat端口。
[tomcat] type = http local_port = 8083 #custom_domains = tomcat.xxxx1.com #remote_port =8083
[web]中的type对应服务端配置。local_port填f服务器的web端口。
[web] type = http local_port = 80 custom_domains = www.xxx.com
./frpc -c ./frpc.ini
(若要在后台运行,需要使用其他命令,后面详述)
若在服务端会看到"start proxy sucess"字样,即连接成功。
ssh 120.79.17.158 -p 6000
nohup ./frpc -c ./frpc.ini &
ps -aux|grep frp| grep -v grep kill -9 进程号
例如:
[web1~]#ps -aux|grep frp| grep -v grep [web1~]#root 3600 0.1 0.1 110188 9484 pts/0 Sl 15:04 0:00 ./frpc -c ./frpc.ini [web1~]#kill -9 3600