1. 为什么选择树莓派+Docker跑甜糖?
家里有闲置宽带和树莓派的朋友,可能都想过怎么把这两样东西利用起来。我之前试过京东云之类的硬件设备,但动辄两三百的入门成本让人犹豫。直到发现甜糖星愿计划——用树莓派3B+这种吃灰小设备,配合Docker容器技术,半小时就能搭建一个带宽贡献节点。实测半个月下来,每天稳定有1-3元收益,高峰期甚至能跑满40Mbps上传带宽。
甜糖的原理其实很简单:它本质上是个边缘计算平台。我们贡献闲置的上传带宽,帮内容分发网络(CDN)缓存热门的视频、游戏更新包等资源,就能获得积分奖励。官方数据显示,10M上传带宽月收益约25元,50M带宽能达到90元。虽然实际收益会受网络质量、节点评级影响,但对零成本投入的树莓派来说已经很划算。
相比直接装在手机或路由器上的方案,用Docker部署有三大优势:
- 资源隔离:甜糖进程不会影响树莓派其他服务
- 一键恢复:镜像打包了所有依赖,重装系统也能快速恢复
- 存储灵活:数据目录可以挂载到外接硬盘,避免TF卡损坏
2. 硬件与网络准备
2.1 树莓派基础配置
推荐使用树莓派3B及以上型号,实测2GB内存足够运行Docker+甜糖。系统选择官方Raspberry Pi OS Lite版本即可,图形界面反而浪费资源。如果还没装系统,用Raspberry Pi Imager工具写入镜像时,记得提前开启SSH(在boot分区新建空文件名为ssh)。
存储方面有个血泪教训:最初我把甜糖数据存在TF卡上,结果三天两头报"存储异常"。后来改用USB3.0移动硬盘,问题彻底解决。建议准备至少32GB的外接存储,读写速度会影响收益结算。
2.2 网络环境优化
光猫设置是收益高低的关键。不同品牌获取超级管理员账号的方法:
- 移动光猫:用普通账号登录后,访问
http://光猫IP/getpage.gch?pid=1002&nextpage=tele_sec_tsu_t.gch可进入隐藏页面 - 华为光猫:尝试用
telecomadmin/admintelecom组合登录 - 通用方法:拨打运营商客服电话,要求开启桥接模式
进入后台后必须做两件事:
- 开启UPnP(位置通常在"高级设置-NAT配置")
- 将树莓派IP设为DMZ主机(在防火墙设置里)
测速建议用speedtest-cli工具,安装命令:
bash复制sudo apt install speedtest-cli
speedtest
上传速度至少要达到10Mbps才有收益价值。
3. Docker环境搭建
3.1 一键安装Docker引擎
树莓派安装Docker比想象中简单,官方提供了一键脚本:
bash复制curl -fsSL https://get.docker.com | sh
如果下载慢,可以换国内源:
bash复制curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装完成后需要把pi用户加入docker组:
bash复制sudo usermod -aG docker pi
退出重新登录后,运行docker ps不报错就说明成功了。
3.2 解决常见安装问题
我遇到过两个典型问题:
-
证书错误:表现为
x509: certificate signed by unknown authority
解决方法:bash复制sudo mkdir -p /etc/docker/certs.d sudo curl -k -o /etc/docker/certs.d/docker.com.crt https://curl.haxx.se/ca/cacert.pem -
存储驱动冲突:如果之前装过docker.io,需要彻底卸载:
bash复制sudo apt remove --purge docker.io sudo rm -rf /var/lib/docker
4. 甜糖容器部署实战
4.1 镜像拉取与运行
推荐使用ericwang2006/ttnode镜像,支持armv7架构(树莓派3B/4B)。这个镜像已经配置好所有依赖,直接运行以下命令:
bash复制docker run -d \
-v /mnt/usb1/ttdata:/mnts \
--name ttnode \
--hostname mynode \
--net=host \
--privileged \
--restart=unless-stopped \
ericwang2006/ttnode:latest
关键参数说明:
-v:把/mnt/usb1/ttdata换成你的外接硬盘路径--net=host:让容器使用主机网络,提升传输效率--privileged:必要权限,否则无法读取网络信息
4.2 存储异常解决方案
如果APP提示"存储异常",按这个流程排查:
- 检查挂载点权限:
bash复制sudo chmod -R 777 /mnt/usb1/ttdata - 查看容器日志:
bash复制
docker logs ttnode - 确认硬盘格式化为ext4(NTFS容易出问题):
bash复制sudo mkfs.ext4 /dev/sda1
5. 光猫高级设置技巧
5.1 UPNP开启方法
不同品牌光猫路径:
- 华为:安全→NAT→UPnP配置
- 中兴:应用→UPnP设置
- 贝尔:高级→UPnP
开启后建议重启光猫,然后用这个命令验证:
bash复制upnpc -l | grep 'TCP\|UDP'
如果显示甜糖使用的端口(默认1043),说明配置成功。
5.2 端口转发规则
部分地区运营商封锁了UPnP,需要手动添加端口转发:
- 在光猫找到"端口映射"或"虚拟服务器"
- 添加规则:外部端口1043,内部IP填树莓派地址,协议选TCP/UDP
- 保存后测试:
bash复制
telnet 你的公网IP 1043
6. 手机APP配置与优化
6.1 设备绑定流程
- 下载甜糖APP(官网扫码或应用商店搜索)
- 注册账号后进入"我的节点"
- 点击"+"号,输入树莓派局域网IP:1043
bash复制hostname -I | awk '{print $1}' - 扫描弹出的二维码完成绑定
6.2 收益提升技巧
根据我的实测,这些因素会影响每日收益:
- 网络类型:0(全锥型NAT)收益最高,可用这个命令检测:
bash复制docker exec ttnode ./usr/node/test.sh - 在线时长:保持24小时在线,断电可用UPS电源
- 存储空间:建议保留50GB以上空闲空间
- 时段调度:晚高峰(19-23点)贡献带宽更高
7. 常见问题排查指南
7.1 节点显示离线
先检查容器状态:
bash复制docker ps -a | grep ttnode
如果是Exited状态,查看日志:
bash复制docker logs --tail 50 ttnode
常见原因:
- 端口冲突:换用
-p 1043:1043参数运行 - 时间不同步:
bash复制docker exec ttnode ntpd -n -d -q -p pool.ntp.org - 镜像版本过旧:
bash复制
docker pull ericwang2006/ttnode:latest
7.2 收益突然下降
可能的原因:
- 运营商限制了上传带宽(用
iftop监控) - 附近节点过多(在APP里查看"周边设备数")
- 硬盘空间不足(
df -h查看)
优化方案:
- 更换DNS为
114.114.114.114 - 设置每天自动重启:
bash复制
docker update --restart=on-failure:3 ttnode - 尝试不同的网络时段调度策略