一、简介
frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。
下载:https://github.com/fatedier/frp/releases

二、作用
利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
对于 http 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
利用处于内网或防火墙后的机器,对外网环境提供 tcp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。
可查看通过代理的所有 http 请求和响应的详细信息(待开发)。

三、架构
FRP-架构

四、先决条件
一台公网服务器
一个域名(可选)

五、操作系统
Windows & Linux

六、安装过程
本案例基于centos 7.4操作系统安装配置,已经过实际线上运行测试。
1、安装包下载

[root@VM-0-2-centos frp]# cd /tmp/
[root@VM-0-2-centos frp]# wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz

也可以使用第三方下载工具,将对应操作系统安装包下载后,使用上传工具上传至服务器。
2、解压缩

[root@VM-0-2-centos tmp]# tar -xvf frp_0.34.3_linux_amd64.tar.gz 
frp_0.34.3_linux_amd64/
frp_0.34.3_linux_amd64/frps
frp_0.34.3_linux_amd64/frps.ini
frp_0.34.3_linux_amd64/LICENSE
frp_0.34.3_linux_amd64/frpc.ini
frp_0.34.3_linux_amd64/frps_full.ini
frp_0.34.3_linux_amd64/frpc_full.ini
frp_0.34.3_linux_amd64/systemd/
frp_0.34.3_linux_amd64/systemd/frps@.service
frp_0.34.3_linux_amd64/systemd/frpc@.service
frp_0.34.3_linux_amd64/systemd/frpc.service
frp_0.34.3_linux_amd64/systemd/frps.service
frp_0.34.3_linux_amd64/frpc

3、服务端配置文件
(1)将解压后的文件移动至自己喜欢的目录

[root@VM-0-2-centos tmp]# mv ./frp_0.34.3_linux_amd64 /frp
[root@VM-0-2-centos tmp]# cd /frp/
[root@VM-0-2-centos frp]# ls
frpc           frpc.ini  frps.2020-12-22.log  frps_full.ini  frps.ini.bak  frps.sh  nohup.out
frpc_full.ini  frps      frps.2020-12-23.log  frps.ini       frps.log      LICENSE  systemd

(2)编辑服务端配置文件

[root@VM-0-2-centos frp]# vi ./frps.ini
# 以下为参考配置
[common]
bind_port = 7000
vhost_http_port = 8080
vhost_https_port = 8443
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = www.collick.xyz
log_file = ./frps.log
log_level = info
log_max_days = 3
token = www.collick.xyz
max_pool_count = 5
max_ports_per_client = 0
authentication_timeout = 900
subdomain_host = collick.xyz
privilege_allow_ports = 2000-3000,3001,3003,4000-50000

4、启动服务端

[root@VM-0-2-centos frp]# ./frps -c frps.ini

七、客户端安装过程
针对不同的客户端下载客户端组建,以下以Linux和Windows版本为例:
1、Linux版本客户端(以下以群晖6.1版本为例)
(1)开启群晖SSH-打开群晖-控制面板-终端机和SNMP-勾选 启用SSH功能
群晖开启SSH
(2)使用SSH工具登陆,下载客户端安装包

admin@Mydsm:/$ cd /tmp
admin@Mydsm:/tmp$ wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz

(3)解压缩安装包,并将解压后的安装包移动到自己喜欢的目录

admin@Mydsm:/tmp$ sudo -i     #切换至root管理员shell
root@Mydsm:~# cd /tmp
root@Mydsm:/tmp# tar -xvf frp_0.34.3_linux_amd64.tar.gz
frp_0.34.3_linux_amd64/
frp_0.34.3_linux_amd64/frps
frp_0.34.3_linux_amd64/frps.ini
frp_0.34.3_linux_amd64/LICENSE
frp_0.34.3_linux_amd64/frpc.ini
frp_0.34.3_linux_amd64/frps_full.ini
frp_0.34.3_linux_amd64/frpc_full.ini
frp_0.34.3_linux_amd64/systemd/
frp_0.34.3_linux_amd64/systemd/frps@.service
frp_0.34.3_linux_amd64/systemd/frpc@.service
frp_0.34.3_linux_amd64/systemd/frpc.service
frp_0.34.3_linux_amd64/systemd/frps.service
frp_0.34.3_linux_amd64/frpc

root@Mydsm:/tmp#mv ./frp_0.34.3_linux_amd64 /frp
root@Mydsm:/tmp# cd /frp
root@Mydsm:/frp# ls        #将其他的文件删除只保留 frpc frpc.ini 客户端文件
frpc  frpc.ini

(4)编辑客户端配置文件

root@Mydsm:/frp# vi frpc.ini 
#以下为参考配置
[common]
server_addr = collick.xyz
server_port = 7000
token = www.collick.xyz

[www.collick.xyz]
type = http
local_port = 80
subdomain = www

[blog.collick.xyz]
type = http
local_port = 80
subdomain = blog

(5)启动客户端

root@Mydsm:/frp# ./frpc -c frpc.ini 
2020/12/24 21:15:17 [I] [service.go:288] [309e83f1aa4a4088] login to server success, get run id [309e83f1aa4a4088], server udp port [0]
2020/12/24 21:15:17 [I] [proxy_manager.go:144] [309e83f1aa4a4088] proxy added: [blog.collick.xyz www.collick.xyz]
2020/12/24 21:15:17 [I] [control.go:180] [309e83f1aa4a4088] [www.collick.xyz] start proxy success
2020/12/24 21:15:17 [I] [control.go:180] [309e83f1aa4a4088] [blog.collick.xyz] start proxy success

2、Windows版本客户端(以下以Windows 7为例)
(1)下载安装包,下载地址:https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_windows_amd64.zip
(2)解压缩安装包,并将安装包移动至自己喜欢的目录,本例以c:frp目录为例
(3)打开c:frp目录,将其他的文件删除只保留 frpc frpc.ini 客户端文件
(4)修改客户端配置文件,以下为参考配置

[common]
server_addr = collick.xyz
server_port = 7000
token = www.collick.xyz

[hfs.collick.xyz]
type = http
local_port = 80
subdomain = hfs

[pic.collick.xyz]
type = http
local_port = 80
subdomain = pic

(4)打开windows运行,输入CMD运行

C:\Users\collick>cd c:\frp

c:\frp>dir
 驱动器 C 中的卷没有标签。
 卷的序列号是 200E-80C2

 c:\frp 的目录

2020-12-21  23:02    <DIR>          .
2020-12-21  23:02    <DIR>          ..
2020-04-27  17:02        10,532,864 frpc.exe
2020-12-22  22:42               154 frpc.ini
2020-12-21  23:01               405 frpc.log
               3 个文件     10,533,423 字节
               2 个目录  4,075,532,288 可用字节

c:\frp>frpc.exe -c frpc.ini
2020/12/28 21:51:44 [I] [service.go:282] [a1703a6776750a7f] login to server success, get run id [a1703a6776750a7f], server udp port [0]
2020/12/28 21:51:44 [I] [proxy_manager.go:144] [a1703a6776750a7f] proxy added: [www]
2020/12/28 21:51:44 [I] [control.go:179] [a1703a6776750a7f] [www] start proxy success
最后修改:2021 年 01 月 24 日
如果觉得我的文章对你有用,请随意赞赏