type
status
date
slug
summary
tags
category
icon
password
🌐 背景介绍
由于资源需求,需要将内网服务暴露到公网以便远程访问。结合了我自己现有的设备
- 拥有一台阿里云等云服务商的VPS服务器(有公网IP)
- 同时还有一台或多台位于内网环境的主机/服务器
- 需要稳定、安全地将内网服务暴露到公网
虽然市场上有诸如Ngrok等内网穿透工具,但它们往往提供随机域名,且免费版本存在诸多限制。拥有自己的VPS服务器时,使用FRP是一个更加灵活、稳定且经济的选择。
⚔️ FRP vs. Ngrok 比较
特性 | FRP | Ngrok |
价格 | 免费开源 | 基础功能免费,高级功能付费 |
端点稳定性 | 固定IP和端口 | 免费版随机域名,端点不固定 |
自定义配置 | 高度可定制 | 免费版配置有限 |
部署控制 | 完全自主控制 | 依赖第三方服务 |
适用场景 | 已有VPS服务器 | 临时测试或无服务器资源 |
🔄 内网穿透网络架构
📝 概述
FRP (Fast Reverse Proxy) 是一个高性能的反向代理应用,可以帮助您将内网服务通过具有公网 IP 的服务器暴露到互联网上。它支持TCP、UDP、HTTP、HTTPS等多种协议,适用于各类内网穿透场景。
🔧 常见应用场景
- 远程访问家庭设备:访问家庭NAS、智能家居设备
- 开发环境共享:将本地开发环境分享给团队成员或客户
- 远程工作:安全访问公司内网资源
- 临时服务部署:快速发布内网Web应用到公网
🖥️ 服务器端配置 (frps)
1. 安装 FRP 服务端
Github 阿里云可能下载较慢,特殊原因,可以使用
fastgithub
https://githubfast.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz2. 服务端配置文件
创建
/usr/local/frp/frps.toml
配置文件:3. 创建系统服务
创建
/etc/systemd/system/frps.service
文件:4. 启动服务
5. 防火墙配置
注意在云服务器管理台开放对应端口,确保以下端口防火墙中开放:
7000
: FRP 主服务端口
7500
: Web 管理界面端口
6000
: SSH 隧道端口
8000-8001
: Web 服务端口
6380
: Redis 服务端口
💻 客户端配置 (frpc)
1. 安装 FRP 客户端
2. 客户端配置文件
创建
/usr/local/frp/frpc.toml
配置文件:3. 创建系统服务
创建
/etc/systemd/system/frpc.service
文件:4. 启动服务
🔄 端口映射配置详解
基本语法
实际示例
示例1: 映射本地3001端口到远程8001端口
访问方式:
http://YOUR_SERVER_IP:8001
示例2: 映射本地SSH服务
访问方式:
ssh user@YOUR_SERVER_IP -p 6000
示例3: 映射本地数据库服务
访问方式:
mysql -h YOUR_SERVER_IP -P 3307 -u username -p
示例4: HTTP服务的高级配置
访问方式:
http://api.yourdomain.com
(需要配置DNS)🛠️ 常用管理命令
服务端管理
客户端管理
🖥️ Web 管理界面
访问
http://YOUR_SERVER_IP:7500
查看 FRP 管理界面- 用户名:
admin
- 密码:
admin
管理界面功能:
- 查看所有活动连接
- 监控流量统计
- 管理代理规则
- 查看服务状态
🚨 故障排除
常见问题
- Token 认证失败
- 确保服务端和客户端的
auth.token
配置一致 - 检查日志中的错误信息
- 端口被占用
- 使用
netstat -tlnp | grep 端口号
检查端口占用情况 - 尝试修改配置使用其他端口
- 防火墙阻止连接
- 确保服务器防火墙开放了相应端口
- 检查云服务商的安全组设置
- 服务无法启动
- 检查配置文件语法是否正确
- 查看系统日志:
sudo journalctl -u frpc -f
- 确保配置的路径正确
- 连接断开问题
- 在配置中添加心跳设置:
heartbeatInterval = 30
- 增加重连超时:
loginFailRetryWaitTime = 10
测试连接结果
Redis测试成功

🔒 安全建议
- 修改默认端口: 避免使用默认的 7000 端口,降低被扫描风险
- 使用强密码: 设置复杂的 token 和管理界面密码,不使用示例中的"admin"
- 限制访问: 通过防火墙限制不必要的端口访问,只开放必要的服务
- 启用TLS加密: 在配置中添加TLS相关设置增强传输安全性
- 定期更新: 保持FRP版本为最新版本,修复已知漏洞
- 监控日志: 定期检查访问日志,发现异常行为
- 使用白名单: 限制允许访问的IP地址
📊 性能优化
- 压缩传输数据
- 多路复用
- 合理设置缓冲区
- 使用适当的协议
- 对于HTTP服务,使用HTTP类型而非TCP可获得更好性能
- 对于文件传输,考虑使用UDP类型
配置完成后,本地服务就可以通过公网服务器访问了!如有疑问,可以参考FRP官方文档获取更多详细信息。
- 作者:Lizhichao
- 链接:https://www.zhichaoli.cn//article/frp-cloud-create
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。