每月白花几百块租服务器?试试用闲置电脑 + FRP 替代,零成本自建公网服务
🔥 本文已收录至「运维实战系列」专栏 | 阅读约 10 分钟 | 文末获取配置模板
大家好,我是老李 👋
先问你一个扎心的问题:
你每个月,在服务器上花了多少钱?
轻量云服务器,便宜的 ¥40/月,带宽稍微大一点的 ¥100~300/月。
一年下来,悄悄就是 几百到几千块 出去了。
更扎心的是——服务器大部分时间都是闲着的。跑个博客、挂个接口、测试一下 Demo,CPU 跑不到 5%。
但你家里,大概率有一台这样的机器:
- 🖥️ 旧台式机 — 被换代了,但性能其实还不错
- 💻 旧笔记本 — 吃灰三年,i5 + 8G 内存,能跑很多东西
- 🍓 树莓派 / 迷你主机 — 买来搞折腾,结果放着落灰
这些机器,接上电,24小时开机功耗不到 30W,电费一个月才 ¥10~15。
今天就教你,用 FRP 把这台闲置机器变成公网服务器,彻底替代云服务器的大部分用途。
🤔 原理是什么?先搞清楚再动手
很多教程上来就贴配置,看完不知道为什么要这么写。这里先把原理说清楚。
问题的根源:你的家庭网络没有固定公网 IP
家庭宽带是内网 IP(192.168.x.x 或 10.x.x.x),运营商的路由器统一管理,外界无法直接访问你家里的机器。
所以哪怕你家电脑性能再好,外网也访问不到它。
FRP 的解法:借一台有公网 IP 的机器「中转」
外部访问者
│
▼
[ 公网服务器 frps ] ← 只需要一台最便宜的 1核1G 云服务器
│ (双向长连接隧道)
▼
[ 你的闲置电脑 frpc ] ← 真正干活的机器
│
▼
[ 本地服务:Web / SSH / 数据库 / 文件服务器 ... ]
关键点:
- 公网服务器只做「中转」,不跑任何业务,最便宜的 1核1G 就够用
- 真正的计算、存储全在你本地闲置机器上
- 本地机器性能可以远超同价位云服务器
举个例子:
| 方案 | 月费 | CPU | 内存 | 硬盘 |
|---|---|---|---|---|
| 云服务器(中配) | ¥150/月 | 2核 | 4G | 80G SSD |
| FRP 方案(中转机 + 旧笔记本) | ¥12/月 | 4核 i5 | 16G | 500G SSD |
性价比:不是一个量级。
🛠️ 准备工作
你需要准备的东西
| 材料 | 说明 | 费用 |
|---|---|---|
| 一台有公网 IP 的云服务器 | 仅做 FRP 中转,1核1G足够,推荐阿里云/腾讯云轻量 | ¥8~15/月 |
| 一台闲置电脑 | 家里旧电脑、迷你主机、NAS 均可 | ¥0(已有) |
| FRP 软件 | 开源免费,GitHub 直接下载 | ¥0 |
💡 提示:如果你暂时不想买云服务器,也可以先用 OpenFrp(免费公益穿透服务)测试效果,后续再换自建服务端。
📥 第一步:下载 FRP
前往 FRP 官方 GitHub 下载最新版本:
https://github.com/fatedier/frp/releases
根据系统选择对应版本:
| 系统 | 文件名示例 |
|---|---|
| Linux x86_64(云服务器) | frp_0.65.0_linux_amd64.tar.gz |
| Linux ARM(树莓派) | frp_0.65.0_linux_arm64.tar.gz |
| Windows x64(旧电脑) | frp_0.65.0_windows_amd64.zip |
| macOS(苹果电脑) | frp_0.65.0_darwin_amd64.tar.gz |
解压后,你会看到这些文件:
frp_0.65.0_linux_amd64/
├── frps # 服务端(部署在云服务器)
├── frps.toml # 服务端配置
├── frpc # 客户端(部署在闲置电脑)
└── frpc.toml # 客户端配置
⚙️ 第二步:配置服务端(云服务器上)
SSH 登录你的云服务器,上传 frps 和 frps.toml。
编辑 frps.toml:
# frps.toml — 服务端配置
# FRP 控制端口(frpc 连接用)
bindPort = 7000
# 安全认证 Token(自己随便设,frpc 要保持一致)
auth.token = "your_secret_token_2026"
# Web 管理界面(可选,方便监控连接状态)
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin123"
启动服务端:
# 前台测试运行(看有没有报错)
./frps -c frps.toml
# 确认没问题后,后台常驻运行
nohup ./frps -c frps.toml > frps.log 2>&1 &
# 或者用 systemd 管理(推荐,开机自启)
用 systemd 管理(推荐):
# 创建 service 文件
sudo tee /etc/systemd/system/frps.service > /dev/null <<EOF
[Unit]
Description=FRP Server
After=network.target
[Service]
Type=simple
ExecStart=/opt/frp/frps -c /opt/frp/frps.toml
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
EOF
# 启用并启动
sudo systemctl enable frps
sudo systemctl start frps
sudo systemctl status frps
记得在云服务器安全组开放端口:
TCP 7000 — FRP 控制端口
TCP 7500 — 管理界面(可选)
TCP 6000 — 你要暴露的端口(按需添加)
⚙️ 第三步:配置客户端(闲置电脑上)
在闲置电脑上,编辑 frpc.toml:
# frpc.toml — 客户端配置
# 连接到你的云服务器
serverAddr = "your.server.ip" # 换成你的云服务器公网 IP
serverPort = 7000
# 和服务端保持一致
auth.token = "your_secret_token_2026"
# ========== 代理配置 ==========
# 示例1:暴露本地 SSH(可以远程登录你的闲置电脑)
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6022 # 外网通过 your.server.ip:6022 访问
# 示例2:暴露本地 Web 服务(Node/Python/Nginx 等)
[[proxies]]
name = "web"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3000
remotePort = 6080
# 示例3:暴露远程桌面 RDP(Windows 电脑)
[[proxies]]
name = "rdp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3389
remotePort = 63389
启动客户端:
# Linux / macOS
./frpc -c frpc.toml
# Windows(命令提示符)
frpc.exe -c frpc.toml
看到这行日志,说明连接成功 🎉
[frpc] login to server success, get run id [xxxx]
[ssh] start proxy success
[web] start proxy success
✅ 验证效果
测试 SSH 连接:
# 在任意外网机器上,SSH 到你的闲置电脑
ssh -p 6022 username@your.server.ip
测试 Web 服务:
浏览器访问:http://your.server.ip:6080
如果能正常访问,说明内网穿透已经生效了!
🚀 进阶:绑定域名 + HTTPS(更专业)
不想记 IP:端口,想用域名访问?配合 Nginx 反向代理实现:
在云服务器上配置 Nginx:
# /etc/nginx/sites-available/myapp.conf
server {
listen 80;
server_name myapp.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:6080; # 转发到 FRP 暴露的端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
配合 Certbot 申请免费 SSL 证书:
# 安装 certbot
sudo apt install certbot python3-certbot-nginx
# 自动申请并配置 HTTPS
sudo certbot --nginx -d myapp.yourdomain.com
完成后,你就有了一个 完整的 HTTPS 域名访问 的私有服务,成本还是 ¥10/月 左右。
📋 常见使用场景汇总
| 场景 | 本地服务 | 端口 | 说明 |
|---|---|---|---|
| 远程开发 | SSH | 22 | 随时 SSH 进闲置电脑,用 VSCode Remote 开发 |
| 个人博客 | Nginx/Node | 80 | 跑 Hexo / WordPress,流量小的博客完全够用 |
| 接口服务 | Express/FastAPI | 3000 | 自己写的 API,供前端 / 小程序调用 |
| 文件服务器 | Alist / Nginx | 5244 | 私有网盘,家里 NAS 直接对外提供访问 |
| 数据库访问 | MySQL / Redis | 3306 | 开发时远程连接本地数据库,不用本地 VPN |
| 远程桌面 | RDP / VNC | 3389 | Windows 远程桌面,出门在外控制家里电脑 |
| Minecraft 联机 | Java Server | 25565 | 自建游戏服务器,不用买游戏云 |
💡 安全建议(别忽略)
内网穿透暴露端口到公网,必须注意安全:
1. 一定要设置 auth.token
# 服务端和客户端必须一致,且越复杂越好
auth.token = "Xk9#mP2$vL8@qR5n"
2. SSH 禁用密码登录,改用密钥
# 生成密钥对
ssh-keygen -t ed25519
# 在闲置电脑上添加公钥
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
# 禁用密码登录
sudo nano /etc/ssh/sshd_config
# 找到这行,改为 no:
# PasswordAuthentication no
3. 不必要的端口不要暴露
只暴露你真正需要的服务,最小化攻击面。数据库端口(3306、6379)不要直接暴露,用 SSH 隧道访问更安全。
4. 定期查看 FRP 管理界面
访问 http://your.server.ip:7500,可以看到所有连接状态,发现异常及时处理。
📦 完整配置模板下载
上面的配置我整理了一套开箱即用的模板包,包含:
- ✅
frps.toml— 服务端标准配置(含管理界面) - ✅
frpc.toml— 客户端模板(SSH + Web + RDP 三合一) - ✅
frps.service— systemd 服务文件,开机自启 - ✅
frpc-autostart.bat— Windows 开机自启脚本 - ✅
nginx.conf— 反向代理 + HTTPS 配置示例 - ✅
setup.sh— 一键部署脚本(Linux 服务端)
🐟 闲鱼搜索「源码老李」即可找到,除了 FRP 配置包,还有 Vue3 小程序源码、移动端 UI 模板等开发资源,一起打包带走。
💬 关于我
我是源码老李,专注前端开发 + 服务器运维折腾。
手里整理了不少实用资源,包括:
- 🔧 FRP 内网穿透配置模板(本文这套)
- 🛍️ Vue3 商城小程序 UI 源码
- 🏷️ 淘宝客优惠券聚合小程序源码
- 🎓 知识付费课程小程序源码
🐟 闲鱼搜索「源码老李」,所有资源都在那里
有问题也可以在闲鱼私信我,会尽量解答 👍
✍️ 写在最后
FRP 这个方案,本质是一种思维转变:
把"按月付费的算力",换成"一次性购入的硬件 + 极低的中转成本"
家里吃灰的旧电脑,接上电,配好 FRP,就是一台随时可以访问的个人服务器。
- 存储容量:远超云服务器
- 计算性能:远超同价位云服务器
- 月度成本:只需一杯奶茶的钱
唯一的缺点是:稳定性依赖家庭网络和电力。但如果只是个人项目、毕设演示、个人博客,完全够用。
如果这篇文章帮你省下了服务器的钱,点个赞 👍 再走吧! 🙏
🏷️ 标签:
FRP内网穿透Linux运维服务器SSHNginx自建服务器开发工具效率工具