不花一分钱,笔记本秒变文件服务器,手机电脑随时传文件
家里有闲置笔记本或者台式电脑,存了几百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# 启动Filebrowserdocker 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 File 或 BIND Zone File → 下载文件。
然后在Cloudflare的DNS管理页面,点 Import DNS Records,上传刚才下载的文件。导入完成后,对比一下阿里云的记录和Cloudflare的记录,确保所有子域名都在(比如blog、mail、md等)。
第三步:确认记录完整后,点Continue
Cloudflare会给你两个NS地址(类似 chelsea.ns.cloudflare.com 和 odin.ns.cloudflare.com),复制下来。
第四步:去阿里云改NS
阿里云控制台 → 域名列表 → 点你的域名 → DNS修改(左侧菜单)→ 修改DNS服务器 → 删掉原来的 ns1.hichina.com 和 ns2.hichina.com → 填入Cloudflare给的两个NS地址 → 保存。
这一步不会影响网站访问,因为Cloudflare已经把你的DNS记录都迁过去了,改NS只是把解析权交过去。生效时间一般几分钟,最长24小时。
2.3 安装cloudflared
# 下载cloudflaredwget -O /tmp/cloudflared https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64chmod +x /tmp/cloudflared# 安装到系统目录sudocp /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.com2.6 写配置文件
cat > ~/.cloudflared/config.yml << 'EOF'tunnel: 你的隧道IDcredentials-file: /home/你的用户名/.cloudflared/你的隧道ID.jsoningress: - hostname: files.gogkd.com service: http://localhost:8080 - service: http_status:404EOF2.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 FilebrowserAfter=network.target[Service]Type=simpleExecStart=/usr/local/bin/cloudflared tunnel --config /home/你的用户名/.cloudflared/config.yml run filebrowserRestart=alwaysRestartSec=5User=你的用户名[Install]WantedBy=multi-user.targetEOF# 启动并设置开机自启sudo systemctl daemon-reloadsudo systemctl enable cloudflared-filebrowsersudo systemctl start cloudflared-filebrowser实际体验
上传速度取决于你家宽带上行。我测试了一下:
• 上传1GB文件:约1分钟(100Mbps上行) • 上传10GB文件:约10分钟
比云盘的龟速强太多了。而且没有空间限制,你硬盘多大就能传多大。
手机上直接用浏览器打开 https://files.gogkd.com ,登录后就能上传下载。iOS和Android都支持,不用装APP。
安全注意事项
1. 一定要设密码:Filebrowser自带登录认证,别用默认密码 2. 只共享专用目录:不要把home目录整个挂进去 3. Cloudflare自带TLS加密:传输过程是加密的,不怕被窃听 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。老机器完全没问题。
本文为原创内容,首发于公众号「新一技术宅」,转载请注明出处。
夜雨聆风