Termux 安装与卸载 NetHunter:Rootless 部署排错指南 1. NetHunter 到底是干什么的值不值得花时间折腾第一次听到 NetHunter 这个名字十有八九是在找 手机上的 Kali 的时候。简单说它就是 Kali Linux 的移动版本把一套用于安全测试的命令行工具、图形桌面和硬件交互能力搬到了 Android 设备上。官方由 OffSec 团队维护早期主要围绕 Nexus 系列做适配后来逐步覆盖到 OnePlus、Pixel 以及部分小米、三星机型。它能做的事情很明确在授权前提下做网络资产梳理、无线环境评估、弱口令自查、抓包分析、远程主机管理等本质上是把一台笔记本级别的测试环境压缩进你的口袋。适合谁适合已经有一定 Linux 基础、手里有闲置安卓机、愿意折腾刷机和命令行的安全爱好者与运维人员。如果你连sudo和chmod都没碰过直接跳进 NetHunter 会非常痛苦建议先补一补 Termux 的基础操作再来。反过来说如果你本来就在用 Termux 敲命令那 NetHunter 值得你花一个周末认真装一遍。我个人的判断是NetHunter 最大的价值不在 炫技而在于随手可得。你在外面排查一个内网环境、给自家路由器做一次体检、或者临时需要一把瑞士军刀式的终端掏出手机就能用这个体验是笔记本给不了的。但它的门槛同样真实——设备兼容性、内核、root 权限、存储空间任何一环没搞定都会卡在半路。所以这篇内容我打算从 它是什么 讲到 怎么装、怎么卸把每个环节的坑都提前摊开给你看。1.1 它和装在电脑上的 Kali Linux 有什么区别很多人会把 NetHunter 直接理解成 Kali 换了个壳这个说法只对了一半。核心的软件仓库、包管理机制、大部分命令行工具两者确实是一脉相承的你在电脑上熟悉的apt、msfconsole、nmap这些命令在 NetHunter 里几乎可以照搬。区别在于三个层面第一是底层运行环境电脑上的 Kali 是完整 Linux 内核直接跑在硬件上而 NetHunter 是跑在 Android 的 Linux 内核之上中间隔了一层 Android 的权限模型这决定了它对硬件的调用方式完全不同第二是硬件交互能力NetHunter 专门针对手机的无线网卡、USB 控制器、蓝牙模块做了定制内核补丁这才是它能做无线环境评估和 HID 外设模拟的底气普通 Kali 插个普通网卡反而没这么方便第三是形态的多样性电脑版 Kali 就一种装法NetHunter 却分好几种部署形态装之前必须选清楚。这里就引出下一个关键问题形态选错了后面全是无用功。1.2 三种运行形态选错等于白折腾NetHunter 目前主流有三种落地方式我把它整理成一张表你对着自己的设备和需求选形态是否需要 root是否需要刷内核功能完整度适用人群NetHunter 完整版需要需要刷定制内核最全含无线与 HID 相关能力有刷机经验、有专用测试机的老玩家NetHunter Lite需要不需要刷内核大部分命令行工具可用硬件特性受限只想用工具、不想碰内核的用户NetHunter Rootless不需要不需要仅命令行与图形桌面无定制硬件能力新手、主力机用户、只想体验环境的人我给你的建议很直接如果你是第一次接触先上 Rootless 版本。它通过 Termux 加 proot 的方式在用户空间里跑一个 Kali 根文件系统不用 root、不用刷机、不影响保修卸起来也干净。等你摸熟了工具链再考虑要不要为完整版折腾内核。这篇文章的重点也会放在 Termux 相关的部署与卸载上因为这也是被问得最多的一块——尤其是 termux 如何卸载 nethunter 这个高频问题后面我会单独用一整节讲透。2. 装之前必须搞清楚的条件清单动手之前先别急着敲命令。我见过太多人一上来就pkg install结果卡在存储不足或者版本不兼容上白白浪费一下午。装 NetHunter 之前有几项条件是硬性的达不到就别硬上换设备或者换方案才是明智选择。2.1 设备与内核的兼容性门槛先看存储。Rootless 版本本质上是往手机里塞一个完整的 Linux 根文件系统解压后占用通常在两到四 GB 之间安装过程中还需要额外的临时空间做解压和校验。所以我一般建议至少预留 8GB 可用空间64GB 存储起步比较稳妥。如果你手机常年只剩 3GB那还是先清理一遍再说。再看系统版本。Rootless 依赖 Termux而 Termux 对新版 Android 的存储访问策略也就是大家常说的分区存储有适配要求Android 10 及以上版本在访问外部存储时会受限需要把文件放在 Termux 自己的私有目录里这一点在后面安装时会有具体体现。最后是架构。绝大多数手机是 ARM64 架构NetHunter 的根文件系统也是按这个架构分发的。如果你拿的是很老的 32 位设备或者某些特殊芯片的机型可能会遇到没有对应镜像的情况。动手前先在 Termux 里跑一条命令确认架构uname -m输出aarch64就说明是 ARM64符合大多数情况如果输出armv7l或其他就要去确认对应版本是否提供支持。这一步花十秒钟能省掉后面一堆麻烦。2.2 数据备份与设备解锁的正确姿势如果你走的是完整版或 Lite 路线需要 root 甚至刷内核那数据备份是底线不是可选项。解锁引导程序bootloader这个动作在绝大多数机型上会清空全部用户数据照片、聊天记录、账号全没。我的习惯是解锁之前用手机自带的云备份或者数据线导出一份完整备份确认能在另一台设备上还原之后再动手。注意解锁引导程序会清除数据且部分厂商会因此影响保修状态。动手前务必确认自己接受这些后果并优先使用闲置的备用机进行操作。还有一点容易被忽略解锁后设备的安全校验状态会发生变化部分银行类、支付类应用会检测到这个状态而拒绝运行。所以别拿天天要用支付功能的主力机去折腾完整版这是无数次踩坑换来的教训。至于 Rootless 版本虽然不用解锁、不用 root但依然建议你在动手前把 Termux 更新到最新版并确认手机没有开启那些会限制后台进程的省电策略否则安装到一半进程被杀前功尽弃。3. Termux 环境下部署 NetHunter 的完整流程这一节是实打实的操作。我以 Rootless 形态为主线因为它的受众最广、风险最低、也最贴合 termux 装 nethunter 这个高频场景。整套流程的思路是先用 Termux 搭建一个能运行 Linux 根文件系统的环境再把 NetHunter 的根文件系统导入进去最后通过启动脚本进入系统。理解了这个思路你在遇到报错时就知道该往哪个方向排查。3.1 基础环境与依赖准备第一步是把 Termux 的基础包更新到最新。很多人跳过这步直接装结果因为仓库索引过期导致依赖解析失败。打开 Termux依次执行pkg update pkg upgrade -y过程中如果弹出配置文件冲突的提示一路选默认通常是回车或输入 Y即可。更新完之后安装后续要用到的几个基础工具pkg install wget proot git tar -y这里解释一下每个工具的作用方便你理解而不是死记wget负责下载根文件系统proot是核心它用用户空间的方式模拟出一个 伪 root 环境让 Linux 根文件系统能在不真正 root 手机的前提下运行这是 Rootless 方案的灵魂git用来拉取安装脚本tar用来解压根文件系统。四个缺一不可。装完之后我习惯跑一条proot --version确认 proot 真的装上了输出正常版本号再进行下一步。这个习惯帮我排除了好几次 命令找不到 的诡异问题。3.2 分步安装与首次启动环境就绪后开始拉取安装脚本。Rootless 社区常用的是一套基于脚本的安装方式脚本会自动完成下载、校验、解压、配置启动命令等动作。因为脚本来源和版本会随时间变化我建议你直接去对应的开源仓库拿最新的安装脚本而不是抄网上的固定链接——这是安全上的基本自觉避免执行来源不明的脚本。拿到脚本后通过仓库说明执行安装。整个安装过程有几个关键节点我按顺序讲清楚第一个节点是下载根文件系统。这一步的耗时完全取决于你的网络几百 MB 到一两 GB 的镜像网慢的话可能十几分钟。这个阶段千万不要切后台或锁屏保持 Termux 前台运行否则很可能因为进程被挂起而中断。第二个节点是解压与校验。脚本会把压缩包解压到 Termux 的私有目录下通常是一个类似~/nethunterfs的路径。如果这一步报 No space left on device说明存储不够回去看第 2.1 节的建议。第三个节点是配置启动命令。安装完成后脚本一般会提供两个命令nh和nethunter前者是进入命令行后者是启动图形桌面相关的服务。首次启动建议先运行nethunter -r之类的命令初始化 rootfs再进入系统跑一次更新apt update apt upgrade -y进入系统后你会发现提示符变成了类似rootlocalhost的形式这就说明你已经站在了 NetHunter 的根文件系统里。到这里安装就算完成了。你可以先跑几条简单命令验证比如nmap --version、whoami确认工具链可用、身份是 root这是 proot 模拟出来的身份不是真实系统 root。提示图形桌面KeX 或 VNC 方案属于可选组件命令行已经能满足大部分日常使用。图形桌面会额外吃内存和存储低配机型谨慎开启。4. 热词实操Termux 中卸载 NetHunter 的正确做法这部分专门回应 termux 如何卸载 nethunter 这个问题因为问的人实在太多了。很多人装完发现不合适或者想重新装一遍却发现不知道从哪下手——毕竟它不是通过pkg install装的自然也不能用pkg uninstall卸掉。核心思路只有一句话找到它装在哪里然后连文件带配置一起清掉。4.1 标准卸载步骤卸载前先退出 NetHunter 环境。如果你当前正处在nh启动的会话里输入exit退出回到普通的 Termux 命令提示符。这一点很重要因为根文件系统在运行状态下部分文件是被占用的直接删可能删不干净。退出后第一步是确认安装目录。用下面的命令看一眼你 Termux 的家目录ls ~大多数情况下你会看到nethunterfs这个目录有时还会看到安装脚本留下的启动包装文件比如nh、nethunter之类的可执行脚本它们通常放在$PREFIX/bin或者家目录下。确认清楚这些路径是你精准卸载的前提。第二步是删除根文件系统。这一步会释放掉整块安装占用的空间rm -rf ~/nethunterfs第三条命令是清理启动脚本包装。如果你之前把启动命令装到了系统路径去对应位置删掉rm -f $PREFIX/bin/nethunter rm -f $PREFIX/bin/nh这里用-f是为了在文件不存在时不报错属于稳妥写法。第四步如果你安装时顺手装了一堆只服务于 NetHunter 的依赖包比如某些专用组件也可以选择性卸载但基础的proot、wget建议保留其他 Termux 项目大概率还用得上。4.2 残留文件清理与验证删完之后别急着高兴先做一次验证。第一步看空间是否释放du -sh ~对比卸载前的占用如果家目录体积明显下降说明主体已经清掉。第二步检查是否还有残留的隐藏配置文件或缓存ls -la ~ | grep -i net ls -la ~/.local 2/dev/null如果还能找到带 net 关键字的目录一并删掉。第三步验证启动命令是否真的失效nh如果提示command not found说明包装脚本清理干净了如果还能启动说明启动脚本躺在别的地方用which nh找出来再删。多个版本共存的用户最容易在这里翻车因为后装的脚本覆盖了前一个删了一个还剩一个。注意卸载过程中绝对不要用rm -rf去删整个家目录或者$PREFIX那会把 Termux 本身也搞坏。一定要把删除路径精确到 NetHunter 相关的具体目录。如果你追求 干净重装卸载完成后再清一次 Termux 的包缓存能在重装时避免用旧缓存出问题pkg clean整个卸载动作熟练之后两三分钟就能搞定核心就是找准目录、精确删除、事后验证这三板斧。5. 常见问题与排查技巧实录安装和卸载的路上坑基本集中在几个固定位置。我把高频问题整理成一张速查表你对着现象找原因比一条条翻文档快得多。5.1 问题速查表现象可能原因处理思路安装脚本执行报错 Permission denied脚本没有可执行权限用chmod x 脚本名赋予权限后重试解压时提示 No space left on device存储空间不足清理文件至少预留 8GB重试启动后提示找不到 proot依赖未装或被误删重新pkg install proot进入系统后命令提示符异常启动命令参数用错用-r参数重新初始化后进入网络下载一直卡住网络波动或镜像源慢保持前台运行换时间段或换网络重试卸载后nh仍可启动启动脚本残留用which nh定位后删除空间没释放只删了脚本没删根文件系统确认nethunterfs目录已删除手机频繁杀后台导致中断省电策略限制关闭 Termux 的省电限制保持前台这张表覆盖了八成的常见情况。剩下两成通常和具体机型的系统策略有关只能一事一议。5.2 我踩过的坑与经验第一个坑是锁屏中断。我第一次装的时候觉得下载太慢就锁屏去干别的回来一看进度条卡死了脚本执行到一半的临时文件还占着空间。后来学乖了重要安装过程一律前台盯着顺手把手机充电线插上避免中途掉电。这个教训适用于所有这类大文件下载的操作。第二个坑是存储路径踩分区存储的坑。新版 Android 对应用访问外部存储限制很严我一开始图省事想把根文件系统放到公共下载目录结果脚本根本没有权限读写。后来老老实实放在 Termux 的私有目录里才顺畅。所以看到莫名其妙的 读写失败先想想是不是放错位置了。第三个坑是重复安装导致命令混乱。我有段时间换了好几个脚本反复装结果nh命令指向的是老版本的目录启动起来的系统跟我想的不一样。排查半天才发现是$PREFIX/bin下的包装脚本被覆盖过多次。这件事之后我养成了一个习惯每次卸载后都用which和ls双验证确认没有残留再装新版。第四个经验是别一上来就开图形桌面。图形桌面看着爽但在手机上通过 VNC 跑桌面操作体验其实很别扭还特别吃内存。我的做法是先用命令行熟悉工具链真需要图形界面时再按需开启日常绝大多数操作命令行都能搞定还省电。最后分享一个实用的小技巧在正式装之前先用一台不重要的备用机或者模拟环境把整个流程跑一遍把每一步的报错和解决方式记下来。等流程烂熟于心再回到自己的主力设备上操作心里就有底了。折腾这类工具稳比快重要慢一步想清楚往往比急吼吼敲命令省时间。这套思路我在后面装任何环境都沿用屡试不爽。