FRP官方地址:
https://github.com/fatedier/frp/releases
什么是FRP
Frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。
准备工作:
在使用frp之前,需要一台有公网IP的服务器(下文称外网主机),一台需要实现内网穿透的机器(下文称内网主机),SSH工具,以及一个域名(如果只是建立SSH反向代理则不需要域名)。
开始使用:
根据服务器的操作系统,在Release页面中找到对应的frp程序,然后分别在外网主机和内网主机中下载它。
下面示范用的frp程序版本是以Lostape的VPS为主操作的(不少vps是amd版本)。
独立IP的外网主机:
SSH连接上外网主机后,使用wget指令下载frp。
wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_arm64.tar.gz
使用tar指令解压tar.gz文件
tar -zxvf frp_0.21.0_linux_arm64.tar.gz
使用cd指令进入解压出来的文件夹
cd frp_0.21.0_linux_arm64/
外网主机作为服务端,可以删掉不必要的客户端文件,使用rm指令删除文件。
rm -f frpc
rm -f frpc.ini
接下来要修改服务器配置文件,即frps.ini文件。使用vi指令对目标文件进行编辑。
vi frps.ini
打开frps.ini后可以看到默认已经有很多详细的配置和示范样例,该文章仅以达到内网穿透为目的,所以这里选择删掉或注释掉里面的所有内容,然后根据自己的目的,按照官方的中文文档添加以下配置。(这里的操作都使用vi命令,关于vi命令的使用方式这里不作详细介绍,可以自行搜索相关使用方法。)
[common]
bind_port = 7000
vhost_http_port = 8080
dashboard_user = admin #管理面板账号
dashboard_pwd = admin #管理面板密码
# 这个是frp内网穿透服务器的web界面的端口,可以通过http://你的ip:7500查看frp内网穿透服务器端的连接情况,和各个frp内网穿透客户端的连接情况。
dashboard_port = 7500
# 方括号内的ssh是代理名称,在同一个frp穿透服务器下的代理名称不能重复,否则不能启动。
# bind_addr是frp客户端内网的ip,也可以是客户端内网同一局域网下的其他IP
[ssh]
####type = tcp
bind_addr = 127.0.0.1
listen_port = 6000
[web]
#http类型的内网穿透,必须设置vhost_http_port,并且所有的http类型的客户端都将通过同一个vhost_http_port访问。
type = http
# custom_domains是通过frp服务器端访问客户端的域名,必须输入完整的域名,
# 并且不能是subdomain_host的子域名,否则frp服务不能启动,并且相应的域名需要解析到frp服务器端的公网IP并等待解析生效后,才可以使用。
custom_domains = xxx.xxx.com
[common]部分是必须有的配置,其中bind_port是自己设定的frp服务端端口,vhost_http_port是自己设定的http访问端口。
启动服务端 frps:
./frps -c ./frps.ini
此时在服务端会看到”start proxy sucess”字样,即连接成功。
重启服务端 frps:
frps -c ./frps.ini --reload
查看 frp 进程
ps -aux | grep frp
结束进程:
找到frps进程的pid 2777(举例),如果要结束进程
kill -9 2777
添加开机启动frp服务端
centos:chmod +x /etc/rc.d/rc.local && vi /etc/rc.d/rc.local
把下面的内容粘贴到文件末尾。
/usr/local/gopath/src/github.com/fatedier/frp/bin/frps -c /usr/local/gopath/src/github.com/fatedier/frp/bin/frps.ini
Ubuntu/Debian系统:
chmod +x /etc/rc.local && vi /etc/rc.local
把下面的内容粘贴到文件末尾。
/usr/local/gopath/src/github.com/fatedier/frp/bin/frps -c /usr/local/gopath/src/github.com/fatedier/frp/bin/frps.ini
后台运行(使用screen让frp在后台运行):
下面的示范是运行服务端的frp,客户端就不示范了。
首先使用screen指令创建一个会话。
screen -dmS frp
然后进入这个会话。
screen -r frp
最后使用运行frp的指令,在后面加上” &”。(如果之前断开了SSH连接,记得用cd指令进入frp的目录先。)
./frps -c ./frps.ini &
这样就让frp在后台运行了。
这样就成功让frp在后台运行了。
注意:宝塔面板重启服务器后,需要重新开一下frps所用端口!