解决 NetHunter Terminal 按下 Ctrl+C 会直接终止的问题
在使用 NetHunter Terminal 的时候, 我发现在 kali 的 zsh 里, 按下 Ctrl+C 会直接结束终端, 而非正在运行的命令. 这直接导致我无法正常使用 wifite 等工具.
一开始以为是 NetHunter Terminal 这个 APP 的问题, 但用 NetHunter Terminal 开的 Android Bash 却不会有这样的问题.


于是我转而怀疑是 kali 的 zsh 对 SIGINT 有特殊的处理, 但在仔细阅读 ~/.zshrc 后, 发现一切正常.
只好看看社区里有没有人遇到同样的问题.
在 wifite 的 Github Issue 里, 有人给出了使用
SSH的权宜方案, 能用, 但不能从根本上解决问题.在 Kali 论坛里, 看到另一个奇怪的解决方案: 使用
Magisk v26.1. 而在 Reddit 上, 有人反映v27和v28都能用, 但v29就有问题, 而我当前使用的正是v29.0.
感觉一头雾水, 这和 Magisk 有啥关系?
于是我就去翻了 Magisk 的 Changelog, 重点关注 29.0 的更新内容:
- [General] Massive internal refactoring and code migration
- [App] Support downloading module zip files with XZ compression
- [App] Disable app animations when system animations are disabled
- [Core] Support systemlessly deleting files with modules using blank file nodes
- [MagiskInit] Redesign sepolicy patching and injection logic
- [MagiskSU] Better TTY/PTY support
其中, 嫌疑最大的就是最后一条 Better TTY/PTY support, 可能就是因为这个修改, 影响了 NetHunter 这种复杂的 chroot 环境, 破坏了原来的信号处理链.
解决的思路很简单, 可以使用旧版的 Magisk, 或者让 zsh 无法发出 SIGINT 信号.
能想到的具体的可行方案有这些:
- 重新刷
v28.1及之前的Magisk. 这个方案能从根本上解决问题, 但非常麻烦. - 使用
ssh连接, 这个方案也很蠢. - 使用
tmux或screen这样的终端复用工具. 为了不每次启动时都输一遍tmux或screen, 可以在~/.zshrc中写入如下命令:
if command -v tmux &> /dev/null && [ -z "$TMUX" ]; then |
记得要经常使用 tmux ls 和 tmux kill-session -t <name> 或 tmux kill-server 来清掉会话.
- 标题: 解决 NetHunter Terminal 按下 Ctrl+C 会直接终止的问题
- 作者: Coast23
- 创建于 : 2025-08-30 13:45:21
- 更新于 : 2025-08-30 17:22:02
- 链接: https://coast23.github.io/2025/08/30/解决-NetHunter-Terminal-按下-Ctrl-C-会直接终止的问题/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论