每月白花几百块租服务器?试试用闲置电脑 + FRP 替代,零成本自建公网服务

2 阅读8分钟

每月白花几百块租服务器?试试用闲置电脑 + 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 ]  ← 只需要一台最便宜的 11G 云服务器
    │  (双向长连接隧道)
    ▼
[ 你的闲置电脑 frpc ]  ← 真正干活的机器
    │
    ▼
[ 本地服务:Web / SSH / 数据库 / 文件服务器 ... ]

关键点:

  • 公网服务器只做「中转」,不跑任何业务,最便宜的 1核1G 就够用
  • 真正的计算、存储全在你本地闲置机器上
  • 本地机器性能可以远超同价位云服务器

举个例子:

方案月费CPU内存硬盘
云服务器(中配)¥150/月2核4G80G SSD
FRP 方案(中转机 + 旧笔记本)¥12/月4核 i516G500G 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 登录你的云服务器,上传 frpsfrps.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/月 左右。


📋 常见使用场景汇总

场景本地服务端口说明
远程开发SSH22随时 SSH 进闲置电脑,用 VSCode Remote 开发
个人博客Nginx/Node80跑 Hexo / WordPress,流量小的博客完全够用
接口服务Express/FastAPI3000自己写的 API,供前端 / 小程序调用
文件服务器Alist / Nginx5244私有网盘,家里 NAS 直接对外提供访问
数据库访问MySQL / Redis3306开发时远程连接本地数据库,不用本地 VPN
远程桌面RDP / VNC3389Windows 远程桌面,出门在外控制家里电脑
Minecraft 联机Java Server25565自建游戏服务器,不用买游戏云

💡 安全建议(别忽略)

内网穿透暴露端口到公网,必须注意安全:

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 运维 服务器 SSH Nginx 自建服务器 开发工具 效率工具