Skip to content
KitploitKITPLOIT
工具博客
Log in
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
nmlinux — 适用于 Linux 的统一网络工具包 — Python 3 + PySide6 | Kitploit
工具/GitHubGitHub/thongor77/nmlinux
网络映射端口扫描信息收集DNS 分析
GitHubthongor77/nmlinux

nmlinux

适用于 Linux 的统一网络工具包 — Python 3 + PySide6

查看仓库
921327小时39分前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

NMLinux · v1.7.14

Version Python License: GPL-2.0 Platform Languages Donate Bitcoin

适用于 Linux 和 macOS 的统一网络工具包 — 检查、连接、诊断。

NMLinux 是一个单一、统一的 GUI,将 29 个网络模块汇集于一个窗口中:接口监控、Wi-Fi、DNS、SSH 终端、防火墙查看器、拓扑图、traceroute 等。使用 Python 和 PySide6(Qt 6)从零构建,支持 8 种界面语言,除标准系统工具外无外部依赖。

[!NOTE] NMLinux 与 Linux 系统守护进程 /usr/bin/NetworkManager(Red Hat/GNOME 的 NetworkManager)无关。 NMLinux 是一个使用 Python 和 PySide6 从零构建的独立项目。

使用 Claude Code(Anthropic)构建,并得到其作者的贡献。


开发过程

NMLinux 是在 AI 辅助下构建的 — 具体来说是 Claude Code — 这一点在本仓库中没有任何隐藏。如今几乎所有严肃的软件项目都在其流程的某个环节使用 AI,无论它们是否承认。因此,“是否涉及 AI”并不是有趣的问题。有趣的问题是:当 AI 出错时,是否有任何机制能发现它?

如果你更愿意亲自验证而不是听我一面之词,以下是能做到这一点的东西:

  • 162 个测试 — pytest tests/ -v。纯逻辑测试加上少量真实的 Qt 控件测试(菜单、表格),没有把有趣的部分 mock 掉。
  • docs/Decisions-Techniques.md — 每一个非显而易见的技术决策、被否决的替代方案,以及被发现并修复的 bug(包括 AI 引入的 bug),都写下了推理过程。
  • docs/Architecture.md 和 docs/Carte-des-Modules.md — 代码的实际结构,与实际发布的版本保持同步。
  • 每次发布前运行的 i18n 一致性检查,用于发现 8 种受支持语言中缺失的翻译键。

这些都不是因为 AI 不可信而存在的。它们存在是因为任何东西都不应在没有检查流程的情况下发布 — 包括手写的代码。评判输出结果及其验证方式,而不是帮助编写它的工具。

还是发现了 bug?这很有用,并不丢人 — 提交 issue。


社区

GitHub Discussions 已开放 — 分享反馈、提出想法、提问,或者只是打个招呼。作者拥有 30 多年的基础设施和运维经验,构建这个工具是因为 Linux 也应该拥有优秀、免费且简单的软件。


截图

Linux 截图来自 v1.2.7 — macOS 截图来自 v1.3.5。该应用现在有 29 个模块和 8 种界面语言(FR/EN/ES/DE/IT/PT/JA/ZH)。

Linux (KDE)

DashboardTopology
DashboardTopology
TracerouteWi-Fi
TracerouteWi-Fi

macOS

DashboardTraceroute
macOS DashboardmacOS Traceroute

更新日志

v1.7.14 — 2026-09-30

  • AppImage — 修复启动崩溃,第二次尝试:v1.7.13 的修复(剥离捆绑的系统库)还不够 — 内嵌的 Python 解释器本身(libpython3.14.so.1.0,针对 Arch Linux 开发机的 glibc 2.44 构建)仍然需要比 AppImageHub 目录的测试机(Ubuntu 22.04,glibc 2.35)更新的 glibc 符号,因此 AppImage 在启动时仍然崩溃。build-appimage.sh 现在改为在 ubuntu:22.04 容器内(通过 podman)构建 PyInstaller 包,而不是在宿主机上构建,这样每个内嵌的二进制文件都链接到 AppImage 需要支持的确切 glibc 版本。

v1.7.13 — 2026-09-30

  • AppImage — 修复启动崩溃(不完整,见 v1.7.14):build-appimage.sh 直接从 Arch Linux 构建机的非常新的 glibc 中捆绑了共享库(libz.so.1、libstdc++.so.6、libX11.so.6、libfontconfig.so.1 等)。在较旧的发行版上,AppImage 在启动时立即崩溃(GLIBC_ABI_DT_RELR' not found),被 AppImageHub 目录的自动化测试捕获。这些库现在已从捆绑包中剥离,因此 AppImage 会回退到宿主系统自带的副本,这是 AppImage 的标准做法。

v1.7.12 — 2026-08-12

  • Traceroute — 修复:在 Flatpak 下(v1.7.11,见下文 — 现已移除),traceroute 总是通过宿主 shim 在 PATH 上解析,即使宿主没有安装真正的 traceroute 二进制文件,因此 worker 从未回退到 tracepath,跟踪会立即完成,没有跳数,也没有显示错误。现在只要 traceroute 完全没有产生可解析的输出,无论失败原因是什么,它都会回退到 tracepath。
  • SSH 终端 — askpass 修复:当设置了 DISPLAY/WAYLAND_DISPLAY(任何 GUI 会话)且 ssh 没有干净的 tty 时,它可能会尝试使用 $SSH_ASKPASS 进行密码提示,而不是使用内嵌终端 — 如果未安装 askpass 辅助程序,则会静默认证失败。SSH_ASKPASS_REQUIRE=never 现在强制密码提示始终通过终端本身进行。
  • 移除 Flatpak 打包:v1.7.11 中附带的本地 KDE Linux manifest 已停止使用。调查上述 SSH 密码提示 bug 时发现了一个内核级限制:通过 flatpak-spawn --host 中继的进程永远无法成为转发 pty 的控制终端所有者(TIOCSCTTY 被拒绝并返回 EPERM — 另一个不相关的会话已经拥有它;这是内核有意的安全边界,不是 bug)。唯一可行的变通方法(script,分配一个新的 pty)修复了密码提示,但破坏了该会话的实时终端尺寸调整传播 — 被判定为比完全不发布 Flatpak 更糟糕的权衡。AUR 和 AppImage 是今后受支持的 Linux 安装途径。

v1.7.11 — 2026-08-03

  • Flatpak 打包(KDE Linux):packaging/flatpak/ 下的本地构建 manifest 面向 KDE Linux 和其他仅支持 Flatpak 的发行版。nmlinux 通过 shell 调用的宿主 CLI 工具(nmcli、pkexec、mount.cifs、ssh、nmap 等)通过 PATH 上的 flatpak-spawn --host shim 桥接,而不是逐个沙箱化;PySide6 来自 Flathub 的 io.qt.PySide.BaseApp,而不是 PyPI wheel。未发布到 Flathub — 而是使用 packaging/flatpak/build-bundle.sh 构建单个 .flatpak 捆绑包并附加到每个发布版本,与 AppImage 已有的方式相同。在 v1.7.12 中停止使用 — 见上文。

v1.7.10 — 2026-08-03

  • SSH 终端 — 修复:修复了一个竞态条件,如果会话启动时终端控件的实际尺寸尚不可知,PTY 可能会以错误的(默认 24×80)尺寸启动,从而静默丢弃尺寸调整请求。这会使远程全屏应用(例如 Claude Code CLI、htop、vim)与实际窗口尺寸不同步,导致屏幕底部出现陈旧/残留文本,只有在新输出滚动经过时才会清除。由用户报告;通过真实交互式会话复现

v1.7.9 — 2026-08-02

  • SSH 终端 — 复制/粘贴:用鼠标选择文本(点击拖动,高亮显示),使用 Ctrl+Shift+C 或右键菜单复制;使用 Ctrl+Shift+V 粘贴(已有功能)。此前无法复制 — 根本不存在文本选择功能
  • SSH 终端 — 多个同时会话:SSH 页面现在将每个连接打开在各自的标签页中,而不是单个共享会话。重新连接到已保存的连接 — 即使是同一个连接两次 — 过去会终止活动会话而不打开可用的替代会话;现在每个连接操作都会打开一个新的独立标签页

v1.7.8 — 2026-07-14

  • Speed Test — 新的 LAN (iperf3) 标签页:在现有的互联网速度测试之外,新增一个标签页,针对捆绑的公共服务器列表(26 个国家)或已保存的自定义服务器(例如组织内部服务器)运行仅客户端的 iperf3 测试。支持 TCP/UDP、IPv4/IPv6/自动,以及反向(下载)方向,UDP 测试会显示抖动/丢包。由 issue #6 建议
  • 新的可选依赖:iperf3 — 安装后启用 LAN 标签页;否则该标签页会显示横幅并保持禁用

v1.7.6 — 2026-07-05

  • Asset Inventory — 右键刷新:右键单击一个或多个已扫描的行(支持多选),选择“Refresh selected”即可就地重新扫描这些主机,而无需重新运行完整的网络扫描
  • Asset Inventory — SSH 认证失败反馈:被拒绝的 SSH 登录现在会显示“SSH auth failed”,而不是静默失败,同时不会丢失 Nmap 检测到的主机名/操作系统基线 — 已在一台真实的 Synology NAS 上确认,其中 DSM 的 Auto Block 在先尝试了其他已配置的凭据集后拒绝了正确的密码

v1.7.5 — 2026-07-04

  • Ping Monitor — 已保存目标目录:新的左侧面板可让你将 ping 目标(名称、主机、间隔)保存到持久列表中,这样正在监控的主机在应用重启后仍然保留,而无需重新输入。每个正在主动监控的行上的 ★ 按钮可在会话中的任意时刻将该主机保存到目录 — 无需在应用意外关闭前提前规划
  • Ping Monitor — “Start monitoring”:选择一个已保存的目标,一键开始监控,复用其保存的间隔

v1.7.4 — 2026-07-04

  • Asset Inventory — 修复不一致的扫描结果:存活检查发送单个 1 秒超时的 ping 且不重试,这可能会在扫描器自身的并发负载下(一次最多探测 40 台主机)或当 Wi-Fi 主机在信标之间短暂休眠时漏掉真实设备 — 已在一个真实子网上实时确认,同一范围的重复运行返回了不同的设备数量。该检查现在会在回退到 TCP 端口探测之前重试 ping
  • Asset Inventory — 新的“Refresh empty”按钮:扫描后,仅重新扫描未返回数据的 IP,而不是再次扫描整个范围;新发现的主机会合并到现有结果中

v1.7.3 — 2026-07-03

  • SMB — 从右键菜单挂载共享:在 SMB 标签页中右键单击一个共享,选择 Mount/Unmount 将其挂载到稳定的本地路径(~/mnt/<host>_<share>),可从终端和任何其他应用使用 — 不是临时的浏览视图。仅限会话(无 fstab/systemd 持久化),凭据复用现有的用户/密码字段。Linux 使用 pkexec mount -t cifs 并配合受限权限的凭据文件(绝不通过 ps 暴露);macOS 直接使用 mount_smbfs。当服务器拒绝默认协商时(在较旧的 NAS 设备上很常见),自动使用较旧的 SMB 方言(vers=2.0)重试 — 两次尝试都在单个认证提示下通过专用辅助进程完成
  • 新的可选依赖:cifs-utils(Linux)用于 SMB 挂载;macOS 已内置

v1.7.2 — 2026-07-03

下载工具