一种快速反向代理,可帮助您将 NAT 或防火墙后面的本地服务器暴露给 Internet。
GitHub 地址 : https://github.com/fatedier/frp
下载之后如果碰到杀毒软件报毒,可加入白名单处理
公网IP服务器 以及 域名
frp 版本: v0.44.0
# 方式1: 本地直接下载上传到服务器
# 方式2: wget命令
wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz
# 解压
[root@centos frp]# tar -zxvf frp_0.44.0_linux_amd64.tar.gz
# 进入目录
[root@centos frp_0.44.0_linux_amd64]# ls -ll
-rwxr-xr-x 1 1001 docker 10997760 Jul 11 00:15 frpc
-rw-r--r-- 1 1001 docker 10934 Jul 11 00:19 frpc_full.ini
-rw-r--r-- 1 1001 docker 126 Jul 11 00:19 frpc.ini
-rwxr-xr-x 1 1001 docker 14036992 Jul 11 00:15 frps
-rw-r--r-- 1 1001 docker 5686 Jul 11 00:19 frps_full.ini
-rw-r--r-- 1 1001 docker 26 Jul 11 00:19 frps.ini
-rw-r--r-- 1 1001 docker 11358 Jul 11 00:19 LICENSE
文件说明
frps 服务端配置文件
frpc 客户端配置文件
[root@centos frp_0.44.0_linux_amd64]# vim frps.ini
[common]
# frp监听的端口,默认是7000,可以改成其他的
bind_port = 7000
# 授权码,请改成更复杂的 客户端会用到
token = token123456
# frp管理后台端口,请按自己需求更改
dashboard_port = 7001
# frp管理后台用户名和密码,请改成自己的
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true
# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3
# 服务端通过此端口接监听和接收公网用户的http请求
vhost_http_port = 7002
# 服务端的subdomain_host需要和客户端配置文件中的subdomain、local_port配合使用,
# 可通过{subdomain}.{subdomain_host} 的域名格式来访问自己本地的 web 服务。
# 假如服务端的subdomain_host为frp.xx.cn ,客户端某个配置组中的
# subdomain为a,local_port为 8001
# 则:
# 访问 a.frp.xx.cn ,等同于访问本地的 localhost:8001
subdomain_host = frp.xx.cn
开启 7000 7001 端口
启动命令
[root@centos frp_0.44.0_linux_amd64]# ./frps -c ./frps.ini
# 后台启动
[root@centos frp_0.44.0_linux_amd64]# ./frps -c ./frps.ini &
输入ip+端口号 ,输入账号密码 访问,页面如下:
服务端配置已完成 .
使用 kill 命令
[root@centos frp_0.44.0_linux_amd64]# ps -ef|grep frp
root 14235 10806 0 16:50 pts/0 00:00:00 ./frps -c ./frps.ini
root 18724 10806 0 17:23 pts/0 00:00:00 grep --color=auto frp
[root@centos frp_0.44.0_linux_amd64]# kill -9 14235
域名解析 添加 frp 以及 *.frp 二级域名,域名可自定义
server {
listen 80;
listen [::]:80;
server_name *.frp.xx.cn;
location / {
proxy_set_header Host $host;
proxy_pass http://公网ip:7002;
}
}
以 windows 客户端为例
frp 版本: v0.44.0
# 直接下载
https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_windows_amd64.zip
解压 frp_0.44.0_windows_amd64.zip
修改 frpc.ini 文件
这里用不到ssh 服务,暂不配置
# 客户端配置
[common]
server_addr = 公网服务器IP
# 与frps.ini的bind_port一致
server_port = 7000
# 与frps.ini的token一致
token = token123456
# 配置ssh服务
#[ssh]
#type = tcp
#local_ip = 127.0.0.1
#local_port = 22
# 这个自定义,之后再ssh连接的时候要用
#remote_port = 6000
# 配置http服务
# []内的代理服务名称在全局范围内确保唯一,每个人的每个代理服务不能重名,否则会影响正常使用。
[doc]
type = http
#local_ip = 127.0.0.1
# local_port代表你想要暴露给外网的本地web服务端口
local_port = 18001
# subdomain 在全局范围内要确保唯一,每个代理服务的subdomain不能重名,否则会影响正常使用。
# 客户端的subdomain需和服务端的subdomain_host配合使用
subdomain = doc
# 配置...
[doc2]
type = http
#local_ip = 127.0.0.1
# local_port代表你想要暴露给外网的本地web服务端口
local_port = 18002
# subdomain 在全局范围内要确保唯一,每个代理服务的subdomain不能重名,否则会影响正常使用。
# 客户端的subdomain需和服务端的subdomain_host配合使用
subdomain = doc2
客户端通过环境变量配置,可以进一步保护服务器信息,如果为了方便可以使用默认方式
# 客户端配置
[common]
server_addr = {{ .Envs.FRP_SERVER_ADDR }}
# 与frps.ini的bind_port一致
server_port = {{ .Envs.FRP_SERVER_PORT }}
# 与frps.ini的token一致
token = token123456
# 配置ssh服务
#[ssh]
#type = tcp
#local_ip = 127.0.0.1
#local_port = 22
# 这个自定义,之后再ssh连接的时候要用
#remote_port = 6000
# 配置http服务
# []内的代理服务名称在全局范围内确保唯一
[doc]
type = http
#local_ip = 127.0.0.1
# local_port代表你想要暴露给外网的本地web服务端口
local_port = 18001
# subdomain 在全局范围内要确保唯一,每个代理服务的subdomain不能重名,否则会影响正常使用。
# 客户端的subdomain需和服务端的subdomain_host配合使用
subdomain = doc
# 配置...
[doc2]
type = http
#local_ip = 127.0.0.1
# local_port代表你想要暴露给外网的本地web服务端口
local_port = 18002
# subdomain 在全局范围内要确保唯一,每个代理服务的subdomain不能重名,否则会影响正常使用。
# 客户端的subdomain需和服务端的subdomain_host配合使用
subdomain = doc2
windows 下启动命令 .\frpc.exe -c .\frpc.ini
出现 start proxy success 说明配置成功
linux下启动命令
./frpc -c ./frpc.ini
出现 start proxy success 说明配置成功
windows 下启动命令
set FRP_SERVER_ADDR=“x.x.x.x”
set FRP_SERVER_PORT=“7000”
.\frpc.exe -c .\frpc.ini
出现 start proxy success 说明配置成功
linux下启动命令
export FRP_SERVER_ADDR=“x.x.x.x”
export FRP_SSH_REMOTE_PORT=“7000”
./frpc -c ./frpc.ini
出现 start proxy success 说明配置成功
D:\frp_0.44.0_windows_amd64> .\frpc.exe -c .\frpc.ini
2022/10/10 17:49:25 [I] [service.go:349] [5973463a297e8700] login to server success, get run id [5973463a297e8700], server udp port [0]
2022/10/10 17:49:25 [I] [proxy_manager.go:144] [5973463a297e8700] proxy added: [http-doc]
2022/10/10 17:49:25 [I] [control.go:181] [5973463a297e8700] [http-doc] start proxy success
http://doc.frp.xx.cn/
frps 的完整配置文件(服务器)
frpc 的完整配置文件(客户端)
frps_full.ini (服务端)
frpc_full.ini (客户端)