解决 NetHunter Terminal 按下 Ctrl+C 会直接终止的问题

Coast23

在使用 NetHunter Terminal 的时候, 我发现在 kalizsh 里, 按下 Ctrl+C 会直接结束终端, 而非正在运行的命令. 这直接导致我无法正常使用 wifite 等工具.

一开始以为是 NetHunter Terminal 这个 APP 的问题, 但用 NetHunter Terminal 开的 Android Bash 却不会有这样的问题.

1.png

2.png

于是我转而怀疑是 kalizshSIGINT 有特殊的处理, 但在仔细阅读 ~/.zshrc 后, 发现一切正常.

只好看看社区里有没有人遇到同样的问题.

  • 在 wifite 的 Github Issue 里, 有人给出了使用 SSH 的权宜方案, 能用, 但不能从根本上解决问题.

  • Kali 论坛里, 看到另一个奇怪的解决方案: 使用 Magisk v26.1. 而在 Reddit 上, 有人反映 v27v28 都能用, 但 v29 就有问题, 而我当前使用的正是 v29.0.

感觉一头雾水, 这和 Magisk 有啥关系?

于是我就去翻了 MagiskChangelog, 重点关注 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 信号.

能想到的具体的可行方案有这些:

  1. 重新刷 v28.1 及之前的 Magisk. 这个方案能从根本上解决问题, 但非常麻烦.
  2. 使用 ssh 连接, 这个方案也很蠢.
  3. 使用 tmuxscreen 这样的终端复用工具. 为了不每次启动时都输一遍 tmuxscreen, 可以在 ~/.zshrc中写入如下命令:
if command -v tmux &> /dev/null && [ -z "$TMUX" ]; then
tmux
fi

记得要经常使用 tmux lstmux 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 进行许可。
评论
目录
解决 NetHunter Terminal 按下 Ctrl+C 会直接终止的问题