news 2026/10/31 16:58:02

利用FRP内网穿透搭建低成本公网服务指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
利用FRP内网穿透搭建低成本公网服务指南

1. 项目概述

每个月花几百块钱租云服务器?其实你家里那台吃灰的旧电脑完全可以胜任大多数轻量级服务需求。作为一名折腾过各种自建方案的运维老兵,我发现用FRP内网穿透工具配合闲置电脑搭建公网服务,不仅能省下大笔服务器租赁费用,还能获得更高的硬件自主权。

FRP(Fast Reverse Proxy)是一款开源的内网穿透工具,它通过具有公网IP的中转服务器建立隧道,将内网服务暴露到公网。相比传统方案,它的优势在于:

  • 支持TCP/UDP/HTTP/HTTPS全协议栈
  • 配置简单,单文件即可运行
  • 资源占用极低(内存<10MB)
  • 跨平台支持(Windows/Linux/macOS)

我去年用一台2015年的联想笔记本(i5-5200U/8GB)搭建了以下服务:

  • 个人博客(Hugo+nginx)
  • 代码仓库(Gitea)
  • 文件同步(Nextcloud)
  • 远程开发环境(VS Code Server) 至今稳定运行11个月,电费增加约15元/月,相比阿里云最便宜2核4G实例(约200元/月)节省了超过2000元。

2. 核心原理与技术选型

2.1 FRP工作原理详解

FRP采用C/S架构,由以下组件构成:

[公网服务器] frps(服务端) ↑↓ [内网主机] frpc(客户端)

数据流向示例(以Web服务为例):

  1. 用户访问公网服务器IP:8080
  2. frps接收请求并通过已建立的隧道转发到内网
  3. frpc将请求递交给本地的nginx(127.0.0.1:80)
  4. 响应数据沿原路返回给用户

2.2 与同类方案对比

方案配置复杂度稳定性成本适用场景
FRP中等★★★★☆低长期稳定服务
Ngrok简单★★★☆☆高临时测试
DDNS+端口映射复杂★★☆☆☆免费有公网IP的家庭宽带
ZeroTier中等★★★★☆免费点对点组网

实测建议:需要7x24小时服务的选FRP,临时演示用Ngrok,有动态公网IP的可以尝试DDNS

3. 详细搭建指南

3.1 硬件准备

推荐配置下限:

  • CPU:Intel i3 4代以上(或同级AMD)
  • 内存:4GB(运行服务需额外计算)
  • 存储:64GB SSD
  • 网络:上行带宽≥10Mbps(实测5Mbps可流畅运行WordPress)

我的设备实测数据(ThinkPad T450):

$ uptime 14:30:01 up 45 days, 3:21, 1 user, load average: 0.12, 0.08, 0.05 $ free -h total used free shared buff/cache available Mem: 7.7G 1.2G 5.8G 123M 687M 6.1G

3.2 服务端配置(以Ubuntu为例)

  1. 下载最新release(当前0.52.3):
wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz tar zxvf frp_0.52.3_linux_amd64.tar.gz
  1. 编辑frps.ini:
[common] bind_port = 7000 vhost_http_port = 8080 token = your_secure_token_here # 启用Dashboard dashboard_port = 7500 dashboard_user = admin dashboard_pwd = admin@123
  1. 设置系统服务:
sudo cp systemd/frps.service /etc/systemd/system/ sudo systemctl enable frps sudo systemctl start frps

3.3 客户端配置(Windows示例)

  1. 创建frpc.ini:
[common] server_addr = your_server_ip server_port = 7000 token = your_secure_token_here [web] type = http local_ip = 127.0.0.1 local_port = 80 custom_domains = your.domain.com [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000
  1. 创建启动脚本start.bat:
@echo off :start frpc -c frpc.ini timeout /t 5 goto start

4. 性能优化与安全加固

4.1 网络调优参数

在frps.ini中添加:

# TCP连接保活 tcp_mux = true max_pool_count = 5 # 流量限制 bandwidth_limit = 10MB bandwidth_limit_mode = client

4.2 安全防护措施

  1. 防火墙规则(ufw示例):
sudo ufw allow 7000/tcp # frp主端口 sudo ufw allow 8080/tcp # HTTP服务 sudo ufw allow 7500/tcp # 仪表盘 sudo ufw enable
  1. 定期更换token:
# 使用openssl生成随机token openssl rand -base64 32
  1. 禁用未使用的协议:
[common] allow_ports = 6000-6010,8080

5. 典型应用场景实现

5.1 远程开发环境搭建

VSCode远程配置:

{ "name": "Home Server", "host": "your_server_ip", "port": 6000, "username": "devuser", "remotePath": "/projects" }

5.2 家庭NAS外网访问

Nextcloud配置要点:

  • 修改config.php中的信任域名
  • 设置HTTPS反向代理
  • 启用双因素认证

5.3 游戏服务器部署

幻兽帕鲁服务器示例:

[palworld] type = udp local_port = 8211 remote_port = 8211

6. 故障排查手册

6.1 连接问题诊断流程

  1. 检查基础连通性:
telnet your_server_ip 7000
  1. 查看服务端日志:
journalctl -u frps -f
  1. 客户端调试模式:
frpc -c frpc.ini --log_level=debug

6.2 常见错误解决方案

错误现象可能原因解决方法
连接超时防火墙拦截/端口未开放检查安全组和iptables规则
认证失败token不匹配同步两端token
带宽波动大运营商QoS限速启用tcp_mux减少连接数
服务间歇性不可用家庭网络IP变化客户端添加自动重连机制

7. 进阶技巧与成本分析

7.1 多设备负载均衡

使用nginx反向代理多个frpc:

upstream frp_nodes { server 192.168.1.100:8080; server 192.168.1.101:8080; } server { listen 80; location / { proxy_pass http://frp_nodes; } }

7.2 年度成本对比

项目自建方案云服务器(2C4G)
硬件成本闲置设备0元0元
软件成本开源免费开源免费
服务器租赁低配VPS 60元/年2400元/年
电费增加约180元/年0元
总成本240元/年2400元/年

实测数据:我的笔记本在运行服务时整机功耗约35W,按0.6元/度电计算

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/31 16:58:02

区间贪心算法详解:区间调度、合并与选点的核心策略与避坑指南

区间贪心问题是我在带新人刷算法题时被问得最多的一类&#xff0c;也是我自己当年栽过跟头的地方。表面上看它只是"排序遍历"两板斧&#xff0c;但真正上手写的时候&#xff0c;边界条件、排序依据、区间开闭的处理&#xff0c;随便一个细节就能让答案从正确变成&quo…

作者头像 李华
网站建设 2026/10/31 16:57:25

VoiceStudio:本地优先AI语音工作台,打造配音生产线

1. 项目概述&#xff1a;VoiceStudio在做什么先直接说结论&#xff1a;VoiceStudio是一个面向语音内容创作的本地优先AI语音工作台。简单来讲&#xff0c;就是把“文字转语音”“声音克隆”“音频降噪”“批量剪辑导出”这几件原本要分开折腾的事&#xff0c;收拢到一个流程里&…

作者头像 李华
网站建设 2026/10/31 16:54:57

hyperframes技术解析:帧超集与超采样机制及落地实践

1. 从“hyperframes”这个词说起&#xff1a;它到底指什么 第一次看到“hyperframes”这个词&#xff0c;很多人会下意识地把它拆成“hyper”和“frames”两部分来猜。这个直觉是对的&#xff0c;但只对了一半。在技术语境里&#xff0c;它并不是一个被某个大厂注册过的官方产品…

作者头像 李华
网站建设 2026/10/31 16:54:36

hyperframes 多帧协同调度:从帧结构到协调层的工程实践

1. 从“hyperframes”这个词说起&#xff1a;它到底是什么第一次看到“hyperframes”这个词&#xff0c;很多人会下意识地把它拆成“hyper”和“frames”两部分来理解。从字面看&#xff0c;它指向的是某种“超框架”或者“超帧结构”的概念。我在几个技术社区和创意工具圈子里…

作者头像 李华
网站建设 2026/10/31 16:54:23

自建VoiceStudio:本地声音克隆与语音合成工作台实战指南

做配音交付的朋友&#xff0c;最近应该都有同一个感受&#xff1a;客户不再只满足于"找个声音像的人念一遍"&#xff0c;而是会问"能不能用我们老板的声音做企业培训视频""能不能复刻这期播客主播的语气""这个宣传片想用固定一个人的声线批…

作者头像 李华
网站建设 2026/10/31 16:54:22

Nova Forge解决灾难性遗忘:数据混合策略详解

1. 灾难性遗忘的本质与Nova Forge的解决思路 在模型微调领域&#xff0c;灾难性遗忘&#xff08;Catastrophic Forgetting&#xff09;就像是一个健忘症患者——当模型学习新任务时&#xff0c;会完全忘记之前掌握的知识。这种现象在神经网络中尤为明显&#xff0c;因为参数更新…

作者头像 李华