[Turn Your Old Android Phone into a Powerful, Low-Power NAS with Termux (Non-Root Guide)]
你是否有一台闲置的、性能尚可的安卓手机?不要让它吃灰!借助强大的安卓终端 Termux,我们可以将它打造成一台 24/7 运行的、功耗极低的个人 NAS (网络附属存储),用于文件备份、媒体共享和个人数据同步。
这篇由AI撰写但由人工跑通整个流程的教程将引导你完成整个过程。与许多使用功能有限、甚至协议实现不标准的“简易NAS”应用不同,本教程将带你部署一个工业标准的、功能完整的 Samba 服务器,它稳定、安全、且具有极高的兼容性。
这套方案的优势:
- 极致省电: 手机的 ARM 架构功耗极低,待机仅1-2瓦,秒杀任何 X86 主机。
- 自带UPS: 手机电池就是天然的不间断电源,无惧意外断电。
- 零噪音、低发热: 被动散热,安静运行。
- 成本极低: 利用闲置手机,你只需要投资于外部存储。
- 安全可靠: 本教程完全基于非 Root环境,在安卓的沙箱内运行服务,并教你如何设置安全的密码保护。
- 标准协议: 我们将部署标准的 Samba 4.x,确保与 Windows、macOS、Linux 客户端的完美兼容。
- 一台安卓手机: 建议 Android 7.0 以上,性能越强越好,但不是必需。无需 Root。
- Termux App: 必须从 F-Droid 应用商店下载。Google Play 上的版本已严重过时。
- 外部存储: 1到2个移动硬盘或SSD,以及相应的硬盘盒。
- 供电/连接设备: 一个支持 OTG 和 PD 供电的 USB-C Hub,确保手机在连接硬盘的同时可以充电。
- 一台用于配置的电脑: Windows, macOS 或 Linux 均可。
在这一步,我们将在手机上完成所有基础环境的搭建。
从 F-Droid 安装并打开 Termux。首先,更新所有基础软件包以确保环境最新。
pkg update && pkg upgrade为了让 Termux 能够访问你的外部硬盘和内部存储,我们需要运行一个命令,并在手机屏幕上弹出的对话框中点击“允许”。
termux-setup-storage这会在 Termux 的主目录 (~) 下创建一个 storage 文件夹,里面包含了指向你真实存储的符号链接(快捷方式)。
我们将安装 SSH 服务器 (用于电脑远程配置)、Samba 服务器 (我们的核心) 和一个简单的文本编辑器 nano。
pkg install openssh samba nano在手机的小键盘上输入复杂命令是一种折磨。我们将启动手机上的 SSH 服务器,然后用电脑舒适地完成所有后续配置。
为你的 Termux 环境设置一个登录密码。注意:这与你的手机锁屏密码无关。
passwd根据提示,输入并确认你的新密码。
Termux 的 SSH 服务器运行在一个特殊的端口 8022 上。
# 启动 SSH 服务
sshd
# 获取你的 Termux 用户名 (通常是 u0_aXXX)
whoami
# 获取你手机的局域网 IP 地址
ifconfig记下你的用户名和IP地址。
打开你电脑上的终端 (Windows 建议使用 PowerShell 或 Windows Terminal)。
# 将 <用户名> 和 <IP地址> 替换为你刚刚获取的信息
ssh <用户名>@<IP地址> -p 8022首次连接时,按提示输入 yes,然后输入你用 passwd 设置的密码。成功后,你电脑的终端就变成了手机 Termux 的命令行。
现在,我们将配置一个安全、无需 Root、基于用户名和密码的 Samba 服务器。
Samba 安装后不会自动创建配置文件目录,我们需要手动创建它。
mkdir -p $PREFIX/etc/samba/这是整个教程最核心的部分。我们将使用 tdbsam 密码后端,它允许我们在没有 Root 权限的情况下,创建和管理一个私有的用户数据库。
打开配置文件:
nano $PREFIX/etc/samba/smb.conf清空里面的所有内容,然后粘贴以下模板。
[global]
# --- 无 Root 安全配置 ---
security = user
# [核心] 使用 tdbsam 后端,并指定一个位于我们主目录下的私有密码数据库文件
passdb backend = tdbsam:/data/data/com.termux/files/home/.config/samba/private/passdb.tdb
# 强制 Samba 运行在非特权的 4445 端口
smb ports = 4445
[HDD0]
comment = External Hard Drive 0
# [注意] 请通过 `ls ~/storage` 命令确认你的硬盘目录名,并修改下面的路径
path = /data/data/com.termux/files/home/storage/external-1
read only = no
browseable = yes
# --- 安全设置 ---
# 指定只有 'nasuser' 这个用户才能访问 (你可以改成自己喜欢的用户名)
valid users = nasuser
writable = yes
[HDD1]
comment = External Hard Drive 1
path = /data/data/com.termux/files/home/storage/external-2
read only = no
browseable = yes
valid users = nasuser
writable = yes重要:
- 请通过
ls ~/storage命令确认你外接硬盘的真实目录名 (可能是external-1,usb-1等),并相应修改path的值。 - 你可以将
valid users = nasuser中的nasuser改成任何你喜欢的用户名。
修改完成后,按 Ctrl+X -> Y -> Enter 保存并退出。
- 创建存放私有密码文件的目录:
mkdir -p ~/.config/samba/private/ - 使用
smbpasswd的-L(本地模式) 参数,为你刚刚在配置文件中指定的用户创建一个密码。根据提示,输入并确认该用户的Samba专用密码。# 将 nasuser 替换为你自己设置的用户名 smbpasswd -L -a nasuser
现在,可以启动 Samba 的核心服务了。
smbd
nmbd你可以通过 netstat -tlpn 命令验证 smbd 是否正在监听 4445 端口。
我们已经发现,现代 Windows 系统(win11 24h2+)提供了一个绝佳的 /TCPPORT 参数,可以让我们直接连接到非标准端口,彻底告别 netsh portproxy 和停止系统服务的复杂操作!
-
打开一个普通的、非管理员的 PowerShell 或 CMD 窗口。
警告: 如果你在管理员窗口中执行
net use,映射的盘符在文件资源管理器中将不可见! -
执行以下命令,将你的共享映射为网络驱动器 (例如 X: 和 Y:)。
# 将 <手机IP>, nasuser, 和 <你的密码> 替换为真实信息 net use X: \\<手机IP地址>\HDD0 /user:nasuser <你的密码> /persistent:yes /TCPPORT:4445 net use Y: \\<手机IP地址>\HDD1 /user:nasuser <你的密码> /persistent:yes /TCPPORT:4445
/user:nasuser: 指定你在 Termux 中创建的 Samba 用户名。<你的密码>: 你用smbpasswd -L -a设置的密码。/persistent:yes: 让 Windows 在重启后自动重连。/TCPPORT:4445: 这是魔法所在,直接指定连接端口。
命令成功执行后,打开“此电脑”,你将看到你的 X: 和 Y: 盘已经准备就绪,可以像本地硬盘一样使用了!
安卓的电池优化会无情地杀死后台进程。为了让你的 NAS 稳定运行,请进行以下设置:
- 手机电池设置: 长按 Termux 图标 -> 应用信息 -> 电池 -> 设置为 “不受限制”。
- Termux 唤醒锁: 在你断开 SSH 连接之前,在 Termux 会话中运行
termux-wake-lock命令。这将阻止 CPU 在后台休眠。
恭喜!你已经完成了一次从零开始的、专业级的个人 NAS 服务器部署。你不仅解决了一个看似无解的难题,更掌握了 Termux、Samba 配置、网络调试等一系列硬核技能。现在,去享受你的超低功耗、稳定可靠的个人数据中心吧!