别扔!48小时,我把吃灰的旧Windows电脑变成了永久免费服务器

124 阅读8分钟

零成本、可外网访问,还能跑Docker应用

你是否也有这样一台旧电脑?—— 屏幕可能已经碎裂,键盘有几个键不太灵光,开机需要整整三分钟,放在角落积了厚厚一层灰。

大多数人会选择扔掉或卖给回收站,但我用了48小时,将它变成了一台可以24小时运行的服务器,能随时随地访问,还能部署各种Docker应用,而且完全免费

为什么需要一台自己的服务器?

开发者常常需要一台服务器来:

  • 🚀 部署个人项目或演示
  • 📱 搭建私有云盘或同步服务
  • 🤖 运行定时任务或爬虫
  • 🎮 架设游戏服务器
  • 🔧 作为开发测试环境

但云服务器价格不菲,最便宜的也要每月几十元。而旧电脑的硬件性能其实足够运行大多数服务,最大的障碍是大多数家庭网络没有公网IP,无法从外网访问

核心解决方案:内网穿透

我用 natapp + Docker 解决了这个核心问题。整个方案的原理非常简单,可以理解为在您的旧电脑和公网之间,搭建了一条专用的“数据隧道”。

架构说明

为了让您更直观地理解这个方案的数据流向,请看下面的示意图:

[您的本地服务]            [旧电脑上的Docker]              [Natapp云端隧道]              [互联网用户]
      ▼                            ▼                              ▼                           ▼
+-------------+         +---------------------------+      +-------------------+      +-----------------+
|             |         |                           |      |                   |      |                 |
|  Web应用    |<------->|   Natapp客户端容器        |<====>|   公网服务器      |<---->|   您的浏览器    |
|  数据库     |  本地   |   (建立并维持隧道)        | 加密 |   (转发请求)      | 公网 |   或移动应用    |
|  API服务等  |  网络   |                           | 隧道 |                   | 访问 |                 |
|             |         |                           |      |                   |      |                 |
+-------------+         +---------------------------+      +-------------------+      +-----------------+
      ▲                            ▲                              ▲                           ▲
      |                            |                              |                           |
[只在局域网内]            [作为桥梁,打通内外网]          [提供公网入口点]           [通过唯一域名访问]
  可访问                       运行在Windows Docker中          (natapp.cc域名)            (如:xxx.pro.natapp.cc)

流程解读:

  1. 左端:您本地的Web服务、数据库等在旧电脑上运行,通常只能在家庭网络内访问。
  2. 中左:Docker容器中的Natapp客户端启动,它会主动与Natapp的云端服务器建立一条稳定的、加密的连接(隧道)。
  3. 中右:Natapp云端服务器为您分配一个唯一的公网域名(如 xxx.pro.natapp.cc)。
  4. 右端:任何互联网用户访问这个域名时,请求会先到达Natapp服务器。
  5. 贯通:Natapp服务器通过已建立的隧道,将请求精准地转发回您旧电脑上的Natapp客户端,再由客户端交给对应的本地服务处理,并将响应原路返回给用户。

最终效果:对于访问者来说,xxx.pro.natapp.cc 就是一个正常的网站;对您而言,无需拥有公网IP或操作路由器,就实现了服务的对外发布。


具体步骤

第一步:准备旧Windows电脑

  1. 精简系统:重装Windows 10/11,选择最小安装
  2. 关闭自动更新:避免半夜重启影响服务
  3. 设置高性能模式:电源选项中取消睡眠和休眠
  4. 固定本地IP:在路由器中为电脑分配固定IP(如 192.168.1.100

第二步:获取免费内网穿透

我选择了natapp,因为它提供:

  • 免费隧道(带宽足够个人使用)
  • 国内节点,访问速度快
  • 支持HTTP/HTTPS/TCP多种协议
  • 简单易用的配置

访问 natapp.cn 注册后,在“我的隧道”中购买一个免费隧道,您将获得一个关键的 authtoken

第三步:安装Docker Desktop

访问Docker官网下载Windows版Docker Desktop。关键在于安装时开启WSL2后端,这能让Docker在Windows上获得接近原生Linux的性能,这是流畅运行的关键。

安装后,在您选择的目录(如 C:\myserver)下,创建一个 docker-compose.yml 文件:

version: '3'
services:
  natapp:
    image: shyiny/natapp
    container_name: natapp
    environment:
      - NATAPP_AUTHTOKEN=你的authtoken_粘贴到这里
    restart: unless-stopped  # 自动重启保证隧道稳定
    
  nginx:
    image: nginx:alpine
    container_name: web-server
    ports:
      - "8080:80"  # 将本地8080端口映射给Nginx
    volumes:
      - ./html:/usr/share/nginx/html  # 挂载网页文件
    restart: unless-stopped
    
  filebrowser:
    image: filebrowser/filebrowser
    container_name: filebrowser
    ports:
      - "8081:80"
    volumes:
      - /srv:/srv
      - ./filebrowser.db:/database/filebrowser.db
    restart: unless-stopped

第四步:配置与优化

  1. 启动所有服务: 打开PowerShell或命令提示符,进入 C:\myserver 目录,执行:

    docker-compose up -d
    

    这行命令会按照配置文件,一键拉取镜像并启动三个容器在后台运行。

  2. 查看隧道地址: 查看Natapp容器的日志,获取您的公网域名:

    docker logs natapp
    

    在输出信息中找到类似 Tunnel established at https://xxxxxx.pro.natapp.cc 的一行,这个 https://xxxxxx.pro.natapp.cc 就是您服务器的公网地址。

  3. 设置开机自启动

    • 创建批处理文件 startup.bat,内容为:
      cd /d "C:\myserver"
      docker-compose up -d
      
    • Win + R,输入 shell:startup,将 startup.bat 放入打开的“启动”文件夹中。

至此,您的免费私人服务器已经搭建完成! 现在,您访问 https://xxxxxx.pro.natapp.cc:8080 就能看到Nginx的欢迎页,访问 https://xxxxxx.pro.natapp.cc:8081 就能管理文件。


我部署了哪些实用服务?

1. 个人网盘(FileBrowser)

用刚才的filebrowser容器,我搭建了一个私有网盘,可以:

  • 通过网页上传下载文件
  • 在线预览图片、视频、文档
  • 分享文件给朋友
  • 管理多个用户权限

2. 代码仓库(Gitea)

docker-compose.yml 中添加:

gitea:
  image: gitea/gitea
  ports:
    - "3000:3000"
  volumes:
    - ./gitea:/data

运行后,访问 https://xxxxxx.pro.natapp.cc:3000 就能替代GitHub私有仓库,所有代码完全在自己掌控中。

3. 自动化工具(nginxProxyManager)

这是反向代理管理工具,让我能用子域名区分不同服务,无需记住端口:

  • code.xxxxxx.pro.natapp.cc → 指向Gitea (3000端口)
  • files.xxxxxx.pro.natapp.cc → 指向个人网盘 (8081端口)
  • blog.xxxxxx.pro.natapp.cc → 指向个人博客

4. 监控面板(Uptime Kuma)

实时监控各个服务的运行状态,宕机时通过Telegram、微信等通知我。

性能与功耗实测

我的旧电脑配置:

  • Intel i3-6100 + 8GB DDR4
  • 128GB SSD + 1TB HDD
  • 集成显卡

实测结果:

  • 🔌 待机功耗:25-30W(一天约0.7度电)
  • 🌡️ 温度:CPU平均45°C(无需额外散热)
  • 💾 内存占用:运行上述所有服务后占用4.2/8GB
  • 📊 带宽:natapp免费隧道1Mbps,足够网页应用

每月电费成本约15元,相比最基础的云服务器(约50元/月),成本降低超过60%。

进阶技巧与安全提醒

安全加固(非常重要!)

  1. 务必修改默认密码:FileBrowser、Gitea等服务安装后第一件事就是改密码。
  2. 使用NPM添加访问认证:通过nginxProxyManager为每个服务添加简单的用户名密码验证。
  3. 定期更新:使用 docker-compose pulldocker-compose up -d 定期更新镜像,修复安全漏洞。
  4. 备份配置:将整个 C:\myserver 目录定期备份到移动硬盘或网盘。

数据备份自动化

可以创建一个计划任务,每周自动打包备份Docker数据卷。

远程管理

  1. 通过Tailscale组建虚拟局域网,可以更安全、高速地直接访问管理界面(如Docker端口)。
  2. 配置Telegram Bot,接收服务器状态通知。

你可能担心的问题

Q1:旧电脑24小时开机会不会坏?

A:服务器本来就是设计为长期运行的。确保散热良好,定期清灰,用五六年没问题。许多公司的服务器一开就是好几年。

Q2:natapp免费版够用吗?

A:对于个人使用完全足够。如果流量增加,可以考虑付费版(约10元/月)或搭配Cloudflare Tunnel(完全免费,但配置稍复杂)。

Q3:断电或断网怎么办?

A:在电脑BIOS中设置“通电自启”,并配一个小型UPS电源。服务都配置了 restart: unless-stopped,恢复后会自启。

Q4:会被黑客攻击吗?

A:比直接将服务器暴露在公网安全得多,所有流量都通过natapp隧道中转。只要您为各个服务设置了强密码,风险极低。

不只是省钱

这个方案的价值不仅仅是省下服务器费用:

  1. 环保:延长电子设备寿命,减少电子垃圾。
  2. 学习:是深入理解网络、Docker、服务部署和运维的绝佳实践。
  3. 可控:数据完全掌握在自己手中,隐私有保障。
  4. 灵活:硬件升级方便,硬盘不够加一块,内存不足换一条,成本极低。

开始行动吧!

今晚就找出那台旧电脑,跟着这些步骤操作。48小时后,你将拥有第一台完全属于自己的、可外网访问的服务器

这不仅仅是技术实践,更是一种态度——在消费主义盛行的时代,用创造力和技术让旧物焕发新生,并真正为自己创造价值


文中所有配置的详细代码与步骤清单,我已整理成文档。如果您在搭建过程中遇到任何问题,或者有更酷的Docker服务想推荐,欢迎在评论区交流分享!

与其让旧电脑在角落积灰,不如让它在新角色中继续发光。技术最有魅力的时刻,就是用简单方案解决实际问题的瞬间。