一、FRP的作用

利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。

  • 对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
  • 利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。

二、配置说明

1、实现功能
(1)外网通过ssh访问内网机器
(2)自定义绑定域名访问内网web服务

2、配置前准备
(1)公网服务器1台
(2)内网服务器1台(我这里演示的是linux环境,win10上面vmware安装的centos7)
(3)公网服务器绑定域名1个(实现二1中(1)功能不需要公网服务器绑定域名,二1中(2)功能必须需要公网服务器绑定域名)
(4)内网服务器部署一个web服务,可以用tomcat模拟,这里就不演示了

三、安装frp

1、公网服务器与内网服务器都需要下载frp进行安装,公网服务器(服务端)配置关注步骤6,内网服务器(客户端)关注步骤7
2、下载地址是https://github.com/fatedier/frp/releases,下载linux版本frp_0.21.0_linux_amd64.tar.gz
3、新建目录mkdir -p /usr/local/frp,上传frp_0.21.0_linux_amd64.tar.gz至linux服务器该目录下
4、解压tar -zxvf frp_0.21.0_linux_amd64.tar.gz
5、进入解压目录cd frp_0.21.0_linux_amd64,这里主要关注4个文件,分别是frpc、frpc.ini和frps、frps.ini,前者两个文件是客户端所关注文件,后者两个文件是服务端所关注两个文件。
6、配置服务端(公网服务器),首先删掉frpc、frpc.ini两个文件,然后再进行配置,vi ./frps.ini

服务端 - frps

[common]
bind_port = 7000 #和客户端之间的基本通讯端口
dashboard_port = 7500 #服务器运行状态页面
dashboard_user = 页面认证用户名  #运行状态页面登陆用。
dashboard_pwd = 页面认证密码
vhost_http_port = 18080 #以后穿透的页面就用这个端口了
vhost_https_port = 18443 #以后穿透的页面就用这个端口了
privilege_token = 33ffdUfefefew #自己填,客户端也要一致。
subdomain_host = 自定义域名(如:demo.com,不要写二级域名,二级域名在客户端配置)

试着启动一下frps

# 使用 -c 参数指定配置文件
./frps -c frps.ini

如果没有出现错误提示就说明配置没有问题,可以正常使用

接着按下Ctrl + C终止程序运行

直接使用前面的命令行来运行是不行的,因为在关掉 ssh 窗口后程序frps就会停止运行,因此要使用nohup [command] &这种操作来使其在后台运行

nohup /root/frp/frps -c /root/frp/frps.ini &

并且程序的所有输出(日志)会被写入nohup.out文件中,你可以使用cat命令查看其内容

停止
想停止的话,结束frps即可

pkill frps

客户端 - frpc

[common]
server_addr = 公网IP
server_port = 7000
privilege_token = 33ffdUfefefew  #和服务端一致

[web]
privilege_mode = true
type = http
local_ip = 内网IP
local_port = 要映射的内网端口
use_gzip = true
subdomain = test(配置二级域名)
log_max_days = 3

OK后就可以用 test.demo.com:18080 访问到穿透页面了。如果直接设置VPS的IP就用 vpsIP:18080 访问。

最后修改:2020 年 11 月 25 日 11 : 30 AM
如果觉得我的文章对你有用,请随意赞赏