玩客云刷 Armbian,改造成一台省心的轻量家庭服务器


玩客云是当年”迅雷赚钱宝”时代的产物,现在闲鱼上几块钱一捆。刷机之后它是一台 24 小时不开灯的 Linux 小主机:千兆网口、功耗个位数瓦、跑 Docker 绰绰有余——前提是你能接受它孱弱的 CPU。这篇是我按 EthanSong 的折腾记录 走了一遍之后整理的笔记,把原文里几个命令级的坑修正了。

一、先搞清楚硬件边界

  • CPU:晶晨 S805,四核 Cortex-A5,32 位 ARMv7。这是所有麻烦的根源——很多现代容器镜像只提供 amd64 / arm64,在这台机器上直接拉不下来或者跑不动。
  • 内存/存储:1GB RAM + 8GB eMMC。系统够活,但别指望同时跑太多容器,日志和下载目录也要规划好放外置盘。
  • USB:双 USB2.0。挂 U 盘或移动硬盘做下载盘,实测速度上限就是 USB2.0 那一档。
  • 网口:千兆。注意刷部分固件后会协商成百兆,遇到”明明千兆口却只有 100M”先怀疑固件而不是网线。
  • 没有:蓝牙、WiFi、红外(主板留了红外焊盘,不焊接就等于没有)。

结论:适合当下载机、Samba 盘、轻量 Home Assistant / 青龙面板宿主;不适合当媒体转服务器。

二、刷机:固件选择与烧录

固件用 hzyitc 维护的 armbian-onecloud,命名规律:

关键字含义建议
current稳定版内核首选
edge实验性新内核出问题再说
burn可直接烧录进 eMMC 的镜像刷机认准这个
minimal精简包,无桌面服务器用途按需

烧录用 Amlogic 的 USB_Burning_Tool:

  1. 文件 > 导入烧录包,选中固件,点”开始”。
  2. 双公头 USB 线,盒子端插靠近 HDMI 的那个 USB 口,另一头接电脑。
  3. 短接主板刷机点,同时通电;进度跑到 3% 左右松手,等它走完。
  4. 完成后先点”停止”再断电拔线——直接断电拔线很可能下次又自动重刷一遍。

详细图文可以看原文引用的 CSDN 刷机教程。

三、首次登录

插网线、通电,耐心等 3~5 分钟(第一次启动会在 eMMC 上扩容,比想象中慢)。然后:

  • 在路由器 DHCP 列表里找它的 IP;找不到就 arp -a,或者重启路由器/盒子。
  • SSH 连上去(客户端我用的 NxShell),默认账号 root,密码 1234。
  • 首次登录会强制改 root 密码;接着提示”创建新用户”,直接 Ctrl+C 取消,这台机器不需要那套 Armbian 首启向导。

四、基础设置

# 时间对不对
date -R

# 时区错了就修正
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date -R

换国内源用 LinuxMirrors 一键脚本,比手动编辑 sources.list 省事:

bash <(curl -sSL https://linuxmirrors.cn/main.sh)

坑:CasaOS 安装脚本会去 get.docker.com 拉 Docker,国内网络下常常直接 curl: (28) Failed to connect to get.docker.com port 443 超时失败。先手动装 Debian 仓库里的 Docker,再跑 CasaOS 安装:

apt-get install docker.io
reboot

五、关掉那三颗刺眼的 LED

原厂的蓝/绿/红三颗灯在机顶盒时代是状态指示,摆在桌上就是光污染。除了黑电工胶带,也可以直接写 sysfs:

# 全部熄灭
echo 0 > /sys/class/leds/onecloud\:blue\:alive/brightness
echo 0 > /sys/class/leds/onecloud\:green\:alive/brightness
echo 0 > /sys/class/leds/onecloud\:red\:alive/brightness

# 蓝灯常亮(绿、红同理,把 default-on 和 none 互换即可)
echo "default-on" > /sys/class/leds/onecloud\:blue\:alive/trigger
echo "none"       > /sys/class/leds/onecloud\:green\:alive/trigger
echo "none"       > /sys/class/leds/onecloud\:red\:alive/trigger

trigger 写 mmc0、cpu、heartbeat 之类还能把灯变成磁盘/CPU 活动指示,想要”看灯知状态”的可以拿它做文章。重启会失效,需要持久化就写一个 oneshot 的 systemd 服务,After=multi-user.target 执行上面的 echo。

六、装 CasaOS

CasaOS 是个套在 Docker 外面的家庭云面板,自带应用商店、存储管理,对新手很友好:

wget -qO- https://get.casaos.io | bash

装十几分钟,浏览器开 http://玩客云IP 即可。hzyitc 这份固件本身就带 Docker,一般不用额外装。

七、qBittorrent 下载机

sudo apt install qbittorrent-nox
sudo nano /etc/systemd/system/qbittorrent.service
[Unit]
Description=qBittorrent Daemon Service
After=network.target

[Service]
User=root
ExecStart=/usr/bin/qbittorrent-nox
ExecStop=/usr/bin/killall -w qbittorrent-nox

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable qbittorrent.service
sudo systemctl start qbittorrent.service

WebUI 在 http://IP:8080,默认账号 admin / adminadmin。

两点补充:

  1. 4.6.1 之后的版本不再固定 adminadmin,启动时会在日志里打一个随机密码,用 journalctl -u qbittorrent -e 找,然后在 WebUI 里改成自己的。
  2. User=root 是图省事。更稳妥的做法是建一个专用用户、把下载目录授权给它,再让服务用该用户跑——BT 客户端直接暴露公网时尤其不要拿 root。

八、Samba 带密码共享

CasaOS 自带的文件共享不好加密码,走下载盘就顺手装 Samba:

sudo apt update && sudo apt install samba
sudo nano /etc/samba/smb.conf

在文件末尾追加:

[UP_16G]
comment = 16G
path = /media/devmon/sda1-usb-Netac_OnlyDisk_5/lost+found/
valid users = root
read only = no
guest ok = no
create mask = 0777
directory mask = 0777
browseable = yes
available = yes
writable = yes

path 填你的实际挂载点。在 CasaOS 首页点文件夹图标 → 左侧”位置”里选中 U 盘进入目标目录 → 右键”复制路径”,粘过来即可。

原文这里写的是 create maks = 0777,是笔误,Samba 不认这个键,创建文件的权限掩码会退回默认值。

不想暴露 root 的家目录,在 [homes] 段里 browseable = no 下面补:

browseable = no
available = no
writable = no

最后建密码并重启服务:

sudo smbpasswd -a root      # 注意用户名要和 valid users 一致
sudo systemctl restart smbd
sudo systemctl enable smbd

九、Cpolar 内网穿透

没有公网 IP 又要从外面访问下载面板时,用第三方隧道:

curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
cpolar version                       # 能出版本号即安装成功
cpolar authtoken xxxxxxx             # 官网后台 → 验证,拿自己的 token
sudo systemctl enable cpolar
sudo systemctl start cpolar

浏览器打开 http://IP:9200,用 Cpolar 账号登录本地管理界面,在”隧道管理 → 创建隧道”里给 SSH、CasaOS、qBittorrent、青龙分别建隧道。

安全提醒:这条链路等于把上面所有服务直接挂到公网上。务必先把各服务的默认口令和默认端口改掉再建隧道,SSH 建议用密钥登录并禁用密码;免费隧道的随机域名每次重启会变,图省心可以换成自己域名 + 反代。

十、32 位 ARM 的应用商店

CasaOS 应用中心里大量应用对 32 位设备显示为灰色不可安装。官方支持自定义源,在”APP Store/应用中心”搜索框那一行最右边点”更多应用”,填:

https://play.cuse.eu.org/Cpe204-Appstore-play-arm.zip

加完就能装青龙面板、Alist 等 ARM32 构建。同理,手动 docker pull 时要挑支持 armv7 的镜像,拿不准就先 docker image inspect 看架构。

十一、WOL 远程唤醒电脑

玩客云常年开机,正好当唤醒器——手机 SSH 上去敲一句就把卧室的电脑开机。

前置条件(缺一不可):

  1. 主板和网卡都支持 WOL,必须有线连接(绝大多数无线网卡唤不醒)。
  2. BIOS 里打开 Power On by PCI-E/PCI、Wake Up on LAN 一类选项。
  3. Windows 设备管理器 → 网络适配器 → 有线网卡 → 属性 → 高级/电源管理,勾选”关机状态下允许唤醒""魔术包唤醒”,并关闭网卡的节能断电。
  4. 记下电脑的 IP 和 MAC:ipconfig /all。

工具这块有个坑,原文装的是 etherwake,敲的却是 wakeonlan 命令——这是两个包,别混:

sudo apt install wakeonlan     # 提供 wakeonlan 命令
# 或
sudo apt install etherwake     # 提供 etherwake 命令

wakeonlan -i 192.168.XXX.XXX  XX:XX:XX:XX:XX:XX
etherwake -i eth0 XX:XX:XX:XX:XX:XX

wakeonlan -i 是往指定 IP 发 UDP 魔术包,跨网段/交换机隔离时容易没反应;同局域网里更可靠的做法是不带 -i(走广播)或者直接用 etherwake 发二层广播帧。另外电脑断电再上电后网卡可能掉配置,唤醒失败先看路由器 ARP 表里 MAC 还在不在。

十二、散热:不处理会死机

S805 满负荷时功耗对这颗无散热的小盒子偏高,跑下载 + Docker 一段时间后随机死机,多数是温度引起的。

默认端口速查

服务端口
CasaOS8181
Cpolar Web UI9200
qBittorrent WebUI8080
FastOS Docker8081
青龙面板5700
Home Assistant8123

参考

← 返回博客