- 一、环境准备
- 二、环境搭建
- 1、简介
- 2、安装FRP服务端
- 1、安装wget工具
- https://github.com/fatedier/frp/releases">2、下载FRP安装包,直接进入到Github中使用wget命令下载即可,Github地址:https://github.com/fatedier/frp/releases
- 4、将下载链接复制到Xshell中,使用Wget命令下载
- 5、解压安装包
- 6、进入到刚刚解压的压缩包中并查看文件
- 7、编辑frps.ini将我们需要的用能以及服务端必要配置添加进去即可
- 8、开放防火墙端口号(在配置文件中我们使用了80、443、7000以及7500号端口)
- 9、重新加载防火墙
- 10、运行FRPS(此命令是让frps在前台运行断开Shell后服务会自动停止,此处仅用于展示)
- 11、让FRPS服务在后台运行
- 12、启动FRPS服务
- 13、查看FRPS服务状态
- 14、将FRPS服务设置为开机自启
- 3、配置客户端(内网服务主机)
- 1、使用Xshell连接到内网服务主机(由于本次演示环境中主机地址是刚刚安装的新环境,所以需要安装vim、wget以及apache等
- 2、创建apache配置文件(创建web测试内容,输入任意内容即可,输入完成后保存并退出
- 4、启动Apache服务并设置为开机自启
- 5、开放防火墙端口(本次测试环境中只需要使用到80端口即可)
- 6、测试内网是否能访问Web服务器(在浏览器中输入Web服务器IP地址即可,显示出我们刚刚输入的内容后即证明可以正常访问)
- 7、下载FRP文件,使用与服务单相同的安装包即可,安装包中同时包含客户端与服务器端
- 8、启动FRPC服务
- 9、将FRPC设置为后台启动以及开机自启
- 10、使用systemctl 启动FRPC服务
- 11、查看FRPC服务运行状态
- 12、将FRPC服务设置为开机自启
- 13、通过外网主机浏览器测试使用域名是否可以访问服务器
- 14、使用Dashboard查看连接情况
- 15、查看连接数
一、环境准备
操作系统 | IP地址 | 用途 | 所需服务 |
---|---|---|---|
Centos7 | 运营商分配公网地址 | FRP服务端 | Firewald、FRPS(服务端) |
Centos7 | 内网服务端(例如内网Apache服务器) | FRP内网服务器端 | Apache、FRPC(FRP客户端) |
Windows10或任何可使用浏览器的设备 | 不要与内网服务端在同一内网网段 | 测试服务器 | Chrome浏览器 |
二、环境搭建
1、简介
利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。
2、安装FRP服务端
使用Xshell连接到公网中的Centos7服务器(FRP服务端主机),点击下载Xshell
1、安装wget工具
[root@localhost ~]# yum -y install wget
2、下载FRP安装包,直接进入到Github中使用wget命令下载即可,Github地址:https://github.com/fatedier/frp/releases
我们使用的服务端以及客户端都是Centos7,故此处下载frp_0.25.1_linux_amd64.tar.gz这个包即可。
光标移动到此处,鼠标右键复制“链接地址即可”即可(也可以在此处点击下载,然后上传到服务器)。
4、将下载链接复制到Xshell中,使用Wget命令下载
[root@localhost ~]# wget https://github.com/fatedier/frp/releases/download/v0.25.1/frp_0.25.1_linux_amd64.tar.gz
5、解压安装包
[root@localhost ~]# tar -zxvf frp_0.25.1_linux_amd64.tar.gz
6、进入到刚刚解压的压缩包中并查看文件
[root@localhost ~]# cd frp_0.25.1_linux_amd64
[root@localhost frp_0.25.1_linux_amd64]# ls
frp_0.25.1_linux_amd64/
frp_0.25.1_linux_amd64/frps_full.ini # frp服务端满配置文件(参考使用,一般用不到这么多功能)
frp_0.25.1_linux_amd64/frps.ini #FRP服务端配置文件,启动服务的时候会用到,我们可以将自己需要的功能添加到此处
frp_0.25.1_linux_amd64/frpc # FRP客户端程序
frp_0.25.1_linux_amd64/frpc_full.ini # RRP客户端满配置文件,启动客户端服务的时候会用到,我们可以将自己需要的功能添加到此处
frp_0.25.1_linux_amd64/frps # FRP服务端程序
frp_0.25.1_linux_amd64/LICENSE
frp_0.25.1_linux_amd64/frpc.ini # FRP客户端配置文件
### 此处是服务端,我们可以将客户端的程序以及配置文件删除,根据自己需要删除,此处不做删除。
### 关于FRP配置文件中的内容在文章开始的部分官方文档已经介绍的很详细了,此处不做介绍。
7、编辑frps.ini将我们需要的用能以及服务端必要配置添加进去即可
[root@localhost frp_0.25.1_linux_amd64]# vim frps.ini
[common]
# 服务端口号
bind_port = 7000
# 自定义二级域名
subdomain_host = ctoclubwin.com
# http使用端口号
vhost_http_port = 80
# https使用端口号
vhost_https_port = 443
# dashboard使用端口号
dashboard_port = 7500
# dashboard 用户名密码,默认都为 admin
dashboard_user = admin
dashboard_pwd = admin
#TCP多路复用
tcp_mux = false
# 日志文件
log_file = /var/log/frpc.log
#保存并退出即可!!!
8、开放防火墙端口号(在配置文件中我们使用了80、443、7000以及7500号端口)
firewall-cmd –zone=public –add-port=80/tcp –permanent
firewall-cmd –zone=public –add-port=443/tcp –permanent
firewall-cmd –zone=public –add-port=7000/tcp –permanent
firewall-cmd –zone=public –add-port=7500/tcp –permanent
9、重新加载防火墙
firewall-cmd –reload
10、运行FRPS(此命令是让frps在前台运行断开Shell后服务会自动停止,此处仅用于展示)
[root@localhost frp_0.25.1_linux_amd64]# ./frps -c ./frps.ini
11、让FRPS服务在后台运行
# 创建FRPS启动文件
[root@localhost frp_0.25.1_linux_amd64]# vim /usr/lib/systemd/system/frps.service
[Unit]
Description = FRP to bypass NAT Network
Wants = network-online.target
After = network.target
[Service]
Type = simple
# 此处的路径应改为您FRPC服务安装的路径
ExecStart = /root/frp_0.25.1_linux_amd64/frps -c /root/frp_0.25.1_linux_amd64/frps.ini
StandardOutput = syslog
StandardError = inherit
[Install]
WantedBy = multi-user.target
12、启动FRPS服务
systemctl start frps.service
13、查看FRPS服务状态
[root@localhost ~]# systemctl status frps.service
frps.service – FRP to bypass NAT Network
Loaded: loaded (/usr/lib/systemd/system/frps.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2019-03-16 14:15:33 EDT; 7s ago
Main PID: 1368 (frps)
CGroup: /system.slice/frps.service
└─1368 /root/frp_0.25.1_linux_amd64/frps -c /root/frp_0.25.1_linux_amd64/frps.ini
Mar 16 14:15:33 localhost.localdomain systemd[1]: Started FRP to bypass NAT Network.
Mar 16 14:15:33 localhost.localdomain systemd[1]: Starting FRP to bypass NAT Network…
Mar 16 14:15:34 localhost.localdomain frps[1368]: 2019/03/16 14:15:34 [I] [service.go:136] frps tcp listen on 0.0.0.0:7000
Mar 16 14:15:34 localhost.localdomain frps[1368]: 2019/03/16 14:15:34 [I] [service.go:178] http service listen on 0.0.0.0:80
Mar 16 14:15:34 localhost.localdomain frps[1368]: 2019/03/16 14:15:34 [I] [service.go:199] https service listen on 0.0.0.0:443
Mar 16 14:15:34 localhost.localdomain frps[1368]: 2019/03/16 14:15:34 [I] [service.go:229] Dashboard listen on 0.0.0.0:7500
Mar 16 14:15:34 localhost.localdomain frps[1368]: 2019/03/16 14:15:34 [I] [root.go:204] Start frps success
14、将FRPS服务设置为开机自启
[root@localhost ~]# systemctl enable frps.service
Created symlink from /etc/systemd/system/multi-user.target.wants/frps.service to /usr/lib/systemd/system/frps.service.
3、配置客户端(内网服务主机)
1、使用Xshell连接到内网服务主机(由于本次演示环境中主机地址是刚刚安装的新环境,所以需要安装vim、wget以及apache等
yum -y install vim wget httpd
2、创建apache配置文件(创建web测试内容,输入任意内容即可,输入完成后保存并退出
vim /var/www/html/index.html
FRP服务搭建测试!!!
4、启动Apache服务并设置为开机自启
systemctl start httpd.service
systemctl enable httpd.service
5、开放防火墙端口(本次测试环境中只需要使用到80端口即可)
firewall-cmd –zone=public –add-port=80/tcp –permanent
firewall-cmd –reload
6、测试内网是否能访问Web服务器(在浏览器中输入Web服务器IP地址即可,显示出我们刚刚输入的内容后即证明可以正常访问)
7、下载FRP文件,使用与服务单相同的安装包即可,安装包中同时包含客户端与服务器端
wget https://github.com/fatedier/frp/releases/download/v0.25.1/frp_0.25.1_linux_amd64.tar.gz
tar -zxvf frp_0.25.1_linux_amd64.tar.gz
cd frp_0.25.1_linux_amd64
[root@localhost frp_0.25.1_linux_amd64]# vim frpc.ini
[common]
#填写FRP服务器IP地址或已经设置好解析到该服务器的域名
server_addr = ctoclubwin.com
# 访问服务器的端口号
server_port = 7000
# TCP多路复用
tcp_mux = false# http设置
[web]
# 类型
type = http
# http使用的端口号
local_port = 80
# 自定义二级域名(此处我们使用www.ctoclubwin.com访问的时候就可以直接跳转到该主机)
subdomain = www
8、启动FRPC服务
[root@localhost frp_0.25.1_linux_amd64]# ./frpc -c ./frpc.ini
9、将FRPC设置为后台启动以及开机自启
创建系统服务配置文件
[root@localhost frp_0.25.1_linux_amd64]# vim /usr/lib/systemd/system/frpc.service
[Unit]
Description = FRP to bypass NAT Network
Wants = network-online.target
After = network.target
[Service]
Type = simple
# 此处的路径应改为您FRPC服务安装的路径
ExecStart = /root/frp_0.25.1_linux_amd64/frpc -c /root/frp_0.25.1_linux_amd64/frpc.ini
StandardOutput = syslog
StandardError = inherit
[Install]
WantedBy = multi-user.target
10、使用systemctl 启动FRPC服务
systemctl start frpc.service
11、查看FRPC服务运行状态
systemctl status frpc.service
#结果如下
frpc.service – FRP to bypass NAT Network
Loaded: loaded (/usr/lib/systemd/system/frpc.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2019-03-16 14:04:01 EDT; 6s ago
Main PID: 1650 (frpc)
CGroup: /system.slice/frpc.service
└─1650 /root/frp_0.25.1_linux_amd64/frpc -c /root/frp_0.25.1_linux_amd64/frpc.ini
Mar 16 14:04:01 localhost.localdomain systemd[1]: Started FRP to bypass NAT Network.
Mar 16 14:04:01 localhost.localdomain systemd[1]: Starting FRP to bypass NAT Network…
Mar 16 14:04:01 localhost.localdomain frpc[1650]: 2019/03/16 14:04:01 [I] [service.go:221] login to server success, get run …rt [0]
Mar 16 14:04:01 localhost.localdomain frpc[1650]: 2019/03/16 14:04:01 [I] [proxy_manager.go:137] [ab3bf8368f03f84c] proxy ad… [web]
Mar 16 14:04:01 localhost.localdomain frpc[1650]: 2019/03/16 14:04:01 [I] [control.go:144] [web] start proxy success
Hint: Some lines were ellipsized, use -l to show in full.
12、将FRPC服务设置为开机自启
systemctl enable frpc.service
13、通过外网主机浏览器测试使用域名是否可以访问服务器
14、使用Dashboard查看连接情况
使用浏览器访问FRPS服务器地址并输入在之前我们配置好的7500号端口并输入frps.ini中配置的用户名以及密码
在首页中可以看到一些基本参数
15、查看连接数
进入到Proxies → HTTP下(由于我客户端文件配置的类型是HTTP故此处切到HTTP下即可看到已经连接的设备)
相关文章:https://ctoclubs.com/2019/03/18/2447/
参考文档:https://www.cmdgy.com/20180429/384.html
官方文档:https://github.com/fatedier/frp