什么是FRP
FRP是一个专注于内网穿透的高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种协议。
它可以将内网服务以安全、便捷的方式通过具有公网IP节点的中转暴露到公网。
项目github地址:[链接登录后可见]
名词介绍
1.服务端
服务端是指具有公网ip的服务器
2.暴露端
内网中需要暴露到公网的服务器
3.客户端
客户端是指内网中能既能访问公网,又能访问内网暴露端的服务器
如果暴露端能够直接访问公网,那么暴露端也能作为服务端
暴露端不用安装FRP,除非暴露端也作为客户端
FRP文件介绍
将frp下载后解压后,目录中有7个文件:
代码登录后可见
代码登录后可见
代码登录后可见
代码登录后可见
代码登录后可见
代码登录后可见
代码登录后可见
其中frps开头的是服务端需要用到的文件,frpc开头的是客户端需要用到的文件,LICENSE为许可证文件。
frps_full.ini:服务端配置示例。
frps.ini:为服务端配置文件。
frps:服务端启动文件。
frpc_full.ini:客户端配置示例。
frpc.ini:客户端配置文件。
frpc:客户端启动文件。
搭建准备
现有服务器公网ip为 代码登录后可见,现有域名 代码登录后可见。
需要将域名 代码登录后可见 解析(A解析)到 代码登录后可见。
需要将域名 代码登录后可见 解析(CNAME解析)到 代码登录后可见。
现有需要暴露到公网的服务器内网ip为 代码登录后可见
服务端
frps.ini配置:
代码登录后可见
公共配置:
bind_port:服务端运行的端口。
vhost_http_port:监听的http端口,后续所有内网穿透的http端口都使用 代码登录后可见 的形式访问,这里便是 代码登录后可见。
subdomain_host:服务端监听的域名。
token:连接密钥,可以不配置,但为安全起见最好设置一个,防止他人冒用。
仪表盘配置:
dashboard_port:仪表盘端口。
dashboard_user:用户名。
dashboard_pwd:用户密码。
enable_prometheus:启用仪表盘。
启动服务端
命令行启动
切换到frp目录,执行命令 代码登录后可见
后台启动
代码登录后可见
脚本启动
frp目录新建 代码登录后可见文件,粘贴以下内容
代码登录后可见
为启动脚本赋权
代码登录后可见
运行启动脚本
代码登录后可见
客户端
frpc.ini配置:
代码登录后可见
ssh配置
名字(代码登录后可见中的内容)可以随便取,但是要保证一个 服务端 下面不能有重复的。
type:协议类型。
local_ip:暴露端服务器的内网ip,需要保证客户端能访问到。
local_port:暴露端需要暴露到公网的端口,一次性只能暴露一个端口。
subdomain:公网域名访问前缀(即把 代码登录后可见前面的 代码登录后可见给替换掉)。
remote_port:暴露到公网的端口号。
remote_port 配置的端口号必须在服务端所在的服务器开放防火墙
web配置
配置含义与ssh配置相同,但是这里的 代码登录后可见可以不用配置,服务端监听http请求的端口已经固定配置为 代码登录后可见了。
启动客户端
命令行启动
切换到frp目录,执行命令 代码登录后可见
后台启动
代码登录后可见
脚本启动
frp目录新建 代码登录后可见文件,粘贴以下内容
代码登录后可见
为启动脚本赋权
代码登录后可见
运行启动脚本
代码登录后可见
公网访问
访问ssh
使用ssh工具连接 代码登录后可见
此时内网映射到 代码登录后可见
访问web
浏览器访问 代码登录后可见
此时内网映射到 代码登录后可见