当前位置: 首页 > news >正文

0元打造家用云盘:旧笔记本变身NAS

家里有闲置笔记本或者台式电脑,存了几百G照片视频,想在外面也能访问?

买NAS?群晖起步价两三千,硬盘还得另算。云盘?限速限空间,大文件传到猴年马月。

昨晚我用一台2014年的老笔记本,折腾了大半个小时,搞了个文件上传下载服务。外网直接访问,不用内网穿透,不用公网IP,全程免费。

先说结论

最终效果:

  • • 本地地址:http://localhost:8080

  • • 外网地址:https://files.gogkd.com(固定域名,重启不变)

  • • 手机浏览器直接打开就能用

  • • 上传下载不限速(取决于你家宽带上行)

  • • 全程花费:0元

技术栈:Docker + Filebrowser + Cloudflare Tunnel

为什么不用NAS

NAS本质就是一台24小时开机的小电脑+硬盘。群晖、威联通这些成品NAS,入门款两三千,还得买硬盘。如果你只是想传文件,没必要花这个钱。

我这台笔记本配置:

  • • CPU:i5-4210M(2014年的,很老了)

  • • 内存:8GB

  • • 硬盘:220GB数据盘

  • • 系统:Ubuntu

2014年的老U跑NAS转码会吃力,但只跑一个文件服务完全没问题。

第一步:装Filebrowser

Filebrowser是一个开源的网页文件管理器,Docker一行命令就能跑起来。

# 创建专用共享目录(只共享这个目录,不动home下的敏感文件) mkdir -p ~/share # 启动Filebrowser docker run -d \ --name filebrowser \ --restart unless-stopped \ -p 8080:80 \ -v /home/你的用户名/share:/srv \ filebrowser/filebrowser:latest

跑完之后打开浏览器访问 http://localhost:8080 ,能看到登录页面就成功了。

默认账号是admin,密码会自动生成一个随机的,看容器日志就知道:

docker logs filebrowser 2>&1 | grep "randomly generated password"

安全提醒:我只挂载了~/share这个专用目录,没有把整个home目录挂进去。否则你的SSH密钥、配置文件全暴露在网页上了。

第二步:搞Cloudflare Tunnel

本地能访问了,但外网还访问不了。你家路由器没有公网IP(大内网),端口转发用不了。

解决方案:Cloudflare Tunnel。免费,不需要公网IP,不需要绑信用卡。

2.1 注册Cloudflare账号

打开 https://dash.cloudflare.com 注册,免费的。

2.2 把域名接入Cloudflare

如果你有自己的域名(比如我的gogkd.com),需要把DNS管理权从原来的注册商(比如阿里云)转到Cloudflare。很多人怕这一步——改NS会不会网站挂了?只要操作顺序对,完全不会。

第一步:在Cloudflare添加域名

登录Cloudflare控制台,点Add a site,输入你的域名,选免费计划。

第二步:导入现有DNS记录

这是关键。Cloudflare会自动扫描你域名的DNS记录,但可能不全。我有10多条记录(A记录、CNAME、MX邮箱、TXT验证等),自动扫描只找到一部分。

解决办法:从阿里云导出完整的DNS记录,再导入Cloudflare。

阿里云操作路径:域名控制台 → 域名列表 → 点你的域名 →域名解析→ 右上角导入/导出→ 导出格式选Zone FileBIND Zone File→ 下载文件。

然后在Cloudflare的DNS管理页面,点Import DNS Records,上传刚才下载的文件。导入完成后,对比一下阿里云的记录和Cloudflare的记录,确保所有子域名都在(比如blog、mail、md等)。

第三步:确认记录完整后,点Continue

Cloudflare会给你两个NS地址(类似chelsea.ns.cloudflare.comodin.ns.cloudflare.com),复制下来。

第四步:去阿里云改NS

阿里云控制台 → 域名列表 → 点你的域名 →DNS修改(左侧菜单)→修改DNS服务器→ 删掉原来的ns1.hichina.comns2.hichina.com→ 填入Cloudflare给的两个NS地址 → 保存。

这一步不会影响网站访问,因为Cloudflare已经把你的DNS记录都迁过去了,改NS只是把解析权交过去。生效时间一般几分钟,最长24小时。

2.3 安装cloudflared

# 下载cloudflared wget -O /tmp/cloudflared https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 chmod +x /tmp/cloudflared # 安装到系统目录 sudo cp /tmp/cloudflared /usr/local/bin/

2.4 登录授权

cloudflared tunnel login

这行命令会生成一个授权链接,在浏览器打开。

打开后会看到一个Authorize Cloudflare Tunnel的页面,里面有个搜索框。输入你的域名(比如gogkd.com),点搜索。如果域名已经在Cloudflare上了,下面会列出你的域名,显示 Active 状态。

选中你的域名,点授权。页面会显示Success,告诉你证书已安装成功。

授权成功后会在~/.cloudflared/下生成一个cert.pem证书文件。这个文件是后续创建隧道的凭证,别删了。

2.5 创建隧道

# 创建隧道 cloudflared tunnel create filebrowser # 绑定域名 cloudflared tunnel route dns filebrowser files.gogkd.com

2.6 写配置文件

cat > ~/.cloudflared/config.yml << 'EOF' tunnel: 你的隧道ID credentials-file: /home/你的用户名/.cloudflared/你的隧道ID.json ingress: - hostname: files.gogkd.com service: http://localhost:8080 - service: http_status:404 EOF

2.7 启动隧道

cloudflared tunnel --config ~/.cloudflared/config.yml run filebrowser

打开 https://files.gogkd.com ,能看到Filebrowser的登录页面就成功了。

第三步:设成开机自启

笔记本重启后服务要自动跑起来,不然每次都要手动启动。

Filebrowser

Docker容器设了--restart unless-stopped,重启后自动拉起。

Cloudflare Tunnel

# 创建systemd服务 sudotee /etc/systemd/system/cloudflared-filebrowser.service << 'EOF' [Unit] Description=Cloudflare Tunnel for Filebrowser After=network.target [Service] Type=simple ExecStart=/usr/local/bin/cloudflared tunnel --config /home/你的用户名/.cloudflared/config.yml run filebrowser Restart=always RestartSec=5 User=你的用户名 [Install] WantedBy=multi-user.target EOF # 启动并设置开机自启 sudo systemctl daemon-reload sudo systemctl enable cloudflared-filebrowser sudo systemctl start cloudflared-filebrowser

实际体验

上传速度取决于你家宽带上行。我测试了一下:

  • • 上传1GB文件:约1分钟(100Mbps上行)

  • • 上传10GB文件:约10分钟

比云盘的龟速强太多了。而且没有空间限制,你硬盘多大就能传多大。

手机上直接用浏览器打开 https://files.gogkd.com ,登录后就能上传下载。iOS和Android都支持,不用装APP。

安全注意事项

  1. 1.一定要设密码:Filebrowser自带登录认证,别用默认密码

  2. 2.只共享专用目录:不要把home目录整个挂进去

  3. 3.Cloudflare自带TLS加密:传输过程是加密的,不怕被窃听

  4. 4.URL保密:知道地址+密码就能访问,别随便分享

常见问题

Q:Cloudflare Tunnel免费吗?
A:免费,不绑信用卡。Quick Tunnel(临时URL)每次重启会变,Named Tunnel(固定域名)需要域名在Cloudflare上。

Q:没有自己的域名怎么办?
A:可以用Quick Tunnel,每次启动会给你一个随机URL(xxx.trycloudflare.com),重启会变。够用但不方便。

Q:能传多大的文件?
A:没有限制,取决于你的硬盘空间和带宽。

Q:Mac能用吗?
A:能。教程里用的Linux,但Docker和cloudflared都有Mac版,流程一样。

Q:2014年的老笔记本跑得动吗?
A:Filebrowser几乎不吃资源,cloudflared也很轻量。CPU占用不到1%,内存占用不到50MB。老机器完全没问题。

http://www.jsqmd.com/news/1101160/

相关文章:

  • 别再死记硬背了!用一张图搞懂Xilinx 7系列FPGA的CLB与Slice结构(附资源速查表)
  • 【毕业设计】基于JavaWeb技术的在线考试系统设计与实现 SpringBoot+Vue 完整源码(含论文+数据库,可运行)
  • 2026年企业AI API数据安全实战:你的Prompt可能正在裸奔
  • YOLO目标检测实战:从原理到部署的完整指南
  • 把人像抠图交给NAS:image-matting部署与远程访问实践
  • ADM云GPU私有化部署MOSS-TTS+远程API访问
  • 户外恶劣环境(如矿山、沙漠)如何保证不掉线?跨境IoT极端工况通信方案
  • AntiDupl.NET:基于SSIM算法的重复图片检测引擎架构解析
  • 诚邀莅临 WAIC 2026丨破局边缘 AI 碎片化,全栈硬件矩阵重磅登场
  • Postman便携版:打破Windows系统限制的API开发自由方案
  • 给汽车软件“搭积木”:一文看懂AutoSAR分层架构(附主流工具链组合)
  • 5个核心功能,SENAITE LIMS如何彻底改变你的实验室管理
  • 从差分信号到8b/10b编码:手把手拆解PCIe物理层数据收发全流程
  • Spring Boot项目里用@KafkaListener处理消息,这5个配置项你调对了吗?
  • 科技公司 logo 趋同症——10 家公司有 8 家长得像
  • RuoYi-Vue-Plus 5.X 新功能尝鲜:手把手教你实现用户ID到姓名的自动翻译
  • 法拉第笼、冰桶实验与麦克斯韦方程组:一段被误解的电磁学简史
  • 选型企业即时通讯(IM)平台,先问自己这10个问题——少一个都是坑
  • 托托科技 vs 中图 vs 优可测:2026性能与性价比全解析
  • 别再死记硬背了!用‘虚拟网线’和‘网桥’的比喻,5分钟搞懂K8s Pod网络通信
  • Notepad--:跨平台文本编辑器的国产突围之路
  • 终极NPK文件解析工具:unnpk深度技术解析与实战指南
  • 从高铁通信到无人机:实战解析高速移动场景下的MIMO信道估计难题与优化
  • 计算机毕业设计之基于web的加油站管理系统
  • 抖音内容监控的终极解决方案:智能实时推送系统
  • Three.js 单/多模型动画教程
  • 2026数据中心EC风机能效之争
  • 二维码修复技术深度解析:如何利用QrazyBox从零恢复损坏的二维码
  • 二阶段项目抖粉智算实战知识点:RabbitMQ异步消息队列
  • Windows微信QQ防撤回原理与实现:Hook技术与本地信息留存方案详解