一、简介
frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。
下载:https://github.com/fatedier/frp/releases
二、作用
利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
对于 http 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
利用处于内网或防火墙后的机器,对外网环境提供 tcp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。
可查看通过代理的所有 http 请求和响应的详细信息(待开发)。
三、架构
四、先决条件
一台公网服务器
一个域名(可选)
五、操作系统
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功能
(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
2 条评论
[...]FRP服务器安装参考科技玩家或者我的博客的安装指导。[...]
[...]五、FRPC客户端配置证书登陆群晖后台,进入frp目录(详情参阅FRP安装配置)配置文件如下(重新启动一次客户端服务):[...]