FRP服务器是一种反向代理服务器,用于将外部请求转发到内部服务器或远程服务器,以下是搭建FRP服务器的详细步骤指南:
安装FRP
FRP有两种版本:基于Go语言的FRP和基于Python的FRP,以下分别说明两种版本的安装方法。
1 安装Go语言
-
下载Go语言:
- 访问Go语言官方下载页面。
- 根据操作系统选择对应的安装包:
- Windows:下载
go1.20.windows-amd64.zip。 - Linux:下载对应的DEB或RPM包。
- MacOS:下载
go1.20.dar。
- Windows:下载
-
安装Go语言:
- Windows:解压下载的zip文件,进入
go文件夹,运行go install命令。 - Linux:运行
sudo apt-get install golang(如果使用DEB包)或sudo yum install golang(如果使用RPM包)。 - MacOS:解压下载的文件,进入
go文件夹,运行go install。
- Windows:解压下载的zip文件,进入
-
设置Go语言环境变量:
- 打开终端,运行以下命令:
export PATH=$PATH:/path/to/go
- 替换
/path/to/go为你安装Go语言的路径。
- 打开终端,运行以下命令:
2 安装FRP(基于Go语言)
-
克隆FRP仓库:
- 运行命令:
git clone https://github.com/frrt/frp.git
- 运行命令:
-
编译FRP:
- 进入FRP目录:
cd frp
- 运行编译命令:
go install -x
- 进入FRP目录:
-
生成FRP可执行文件:
- 生成
frp和frp.exe(Windows):go build
- 生成
配置FRP服务器
-
创建配置文件:
- 打开文本编辑器,新建一个配置文件,例如
frp.yaml。 - 添加以下内容:
# 示例配置文件 version: 0.30 vhost: { name: example.com port: 80 } listen: { address: 0... port: 808 } log: { level: debug file: frp.log } - 打开文本编辑器,新建一个配置文件,例如
-
配置域名和端口:
- 根据需要调整
vhost中的name和port,以及listen中的地址和端口。 - 如果需要多个域名或服务,可以在
vhost中添加多个name和对应的port。
- 根据需要调整
-
设置访问控制列表(ACL):
- 在
vhost中添加acl部分,限制访问权限:vhost: { name: example.com port: 80 acl: { allow: 0.../ # 允许所有IP访问 } }
- 在
启动FRP服务器
-
运行FRP服务:
- 在FRP目录中运行以下命令:
./frp -c frp.yaml
- 在FRP目录中运行以下命令:
-
访问FRP管理界面:
- 打开浏览器,访问
http://localhost:808(如果FRP运行在本地)或http://服务器IP:808。 - 登录管理界面,设置管理员账号和密码。
- 打开浏览器,访问
配置内部服务器
-
设置内部服务器访问权限:
- 打开FRP管理界面,进入“域名管理”或“服务管理”,添加需要代理的内部服务器或服务。
- 配置路径、端口和其他必要选项。
-
重新启动FRP:
在管理界面中,点击“重启FRP”按钮,应用配置更改。
测试FRP服务器
-
访问内部服务器:
- 通过FRP代理的URL访问内部服务器,
http://example.com/内部服务器资源路径
- 通过FRP代理的URL访问内部服务器,
-
验证代理成功:
- 查看FRP日志,确认是否有成功转发请求到内部服务器。
- 使用浏览器或命令行工具测试连接是否正常。
处理日志和错误
-
日志管理:
- 定期清理FRP日志文件,避免存储过多日志数据。
- 调整日志级别,减少不必要的信息。
-
错误处理:
- 查看FRP日志,识别错误或警告信息。
- 根据日志提示,调整配置或检查内部服务器状态。
安全配置
-
设置访问控制:
- 配置严格的ACL,允许只有特定IP或范围访问FRP服务。
- 启用HTTPS或SSL,确保数据传输安全。
-
监控和管理:
- 使用监控工具(如Prometheus、Grafana)监控FRP的性能和状态。
- 定期审计FRP配置,确保安全性。
文档和支持
-
查看FRP文档:
- 访问FRP官方文档获取详细配置和使用说明。
-
社区和论坛:
加入FRP的社区或论坛,参与讨论和交流,寻求帮助或分享经验。
通过以上步骤,你可以成功搭建并配置FRP服务器,实现对内部服务器或远程服务器的反向代理和管理,FRP的灵活配置和强大的功能使其成为一个理想的解决方案,帮助你更好地管理网络资源。




