先讲一下frp的相关概念
1. 什么是 FRP?
FRP (Fast Reverse Proxy) 是一款开源的反向代理工具,支持多种协议(如 TCP、UDP、HTTP 和 HTTPS)的内网穿透。它能够帮助你将位于内网或防火墙后面的服务映射到外网,方便外网用户访问。
FRP 是由 Go 语言编写的,具有高性能、稳定性好、配置灵活等特点。常见的使用场景包括将内网的 Web 服务器、SSH 服务器或数据库服务器等资源公开到互联网上。
2. FRP 的基本架构
FRP 主要由两部分组成:
-
FRPS (FRP Server):运行在具有公网 IP 的服务器上,负责转发外部请求到内网。
-
FRPC (FRP Client):运行在内网的机器上,将本地服务映射到外网。
通过这两者的配合,用户能够通过公网访问原本只能在内网访问的服务。
3. FRP 的应用场景
-
远程办公:通过 FRP 将内网的办公系统映射到外网,实现远程办公。
-
开发调试:方便开发人员在本地开发环境上调试外部 API 请求。
-
Web 服务:将内网的 Web 服务通过 FRP 暴露到公网。
-
文件传输:通过 FRP 实现内网设备的文件共享和访问。
接下来我们的需求是将本地部署的项目通过frp映射到公网ip上,该公网ip下载有宝塔以方便域名的设置
接下来就是步骤:默认已经安装过宝塔了,首先在linux上下载frp安装包
仓库安装包有很多,下载linux_amd64的
例如下载命令:wget https://github.com/fatedier/frp/releases/download/v0.60.0/frp_0.60.0_linux_amd64.tar.gz
如果速度很慢的话,可以直接下载好之后传入到linux服务器上
解压: tar -zxvf frp_0.60.0_linux_amd64.tar.gz
进入后会看到
修改文件:frps.toml为下方内容
bindPort = 7100 # 监听端口 vhostHTTPPort = 8800 # 可以自定义端口号,注意安全组、防火墙放行 auth.method = "token" # windows之后连接的验证方式 auth.token = "1234" # 记住密码 webServer.addr = "0.0.0.0" # web端图形化面板 webServer.port = 7600 # frp后台端口 webServer.user = "admin" # frp后台账号 webServer.password = "1234" # frp后台密码
(记得使用到的端口都要在服务器厂商的安全组中放行,宝塔面板中也放行一下)
保存后退出,复制保存一下文件路径
使用宝塔的”进程守护管理器“软件设置开机自动启动frp
启动命令:
/root/frp_0.57.0_linux_amd64/frps -c ./frps.toml
将frp版本改成自己下载的版本路径:
运行目录就是frp可执行文件的根目录
点击确定后就启动frp了,可以通过ip+7600端口查看图形化界面是否正常显示
正常能看到这样一个界面说明成功了;
然后在windows上可以下载个frp管理器,非常方便,可以图形化的同时操作多个服务器上的frp;:
koho/frpmgr: Windows 平台的 FRP GUI 客户端 / A user-friendly desktop GUI client for FRP on Windows. (github.com)
打开后先点击
然后不要忘了点击认证,配置刚刚设置的token
然后点击添加
点击左上角日志可以查看日志,是否成功或者失败了
然后再通过这个服务器的ip+端口就可以看到部署在本地的项目了,
第一次加载会比较慢,需要多等待一会;
域名配置
因为我们使用了宝塔,所以配置起域名来非常快速,首先得先将买过来的域名和服务器ip解析一下
这个就不演示了,解析完成后,打开宝塔
配置一个php的网站
点击确定后,点后方的设置:
然后点击添加代理:
点击提交,然后再进入到域名对应的网址你会发现能直接映射到本地的项目上
这样我们就可以实现本地部署项目,全网都可以使用了;不过注意本地电脑是不能关机的,现在基本上电脑也不会关机,电费充足也是可以一直开着了;
博客写的有些潦草了,不过重要步骤也都没有漏掉,可以仔细看一下