Назад к обновлениям
New releaseAug 3, 2026

nmlinux v1.7.11

Унифицированный сетевой инструментарий для Linux — Python 3 + PySide6

Поделиться

NMLinux · v1.7.12

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 (NetworkManager от Red Hat/GNOME). NMLinux — это самостоятельный проект, созданный с нуля на Python и PySide6.

Создан с помощью Claude Code (Anthropic) и при участии его автора.


Процесс разработки

NMLinux создан с помощью ИИ — а именно Claude Code — и это нигде не скрыто в этом репозитории. Почти каждый серьёзный программный проект сегодня использует ИИ где-то в своём конвейере, независимо от того, заявляет он об этом или нет. Поэтому вопрос «участвовал ли ИИ» не интересен. Интересен вопрос: что ловит ошибки, когда ИИ ошибается?

Вот что это, если вы предпочитаете проверить, а не верить мне на слово:

  • 162 теста — pytest tests/ -v. Чистая логика плюс несколько реальных тестов виджетов Qt (меню, таблицы), без имитации интересных частей.
  • docs/Decisions-Techniques.md — каждое неочевидное техническое решение, отклонённые альтернативы и найденные и исправленные ошибки (включая ошибки, внесённые ИИ), с записанными обоснованиями.
  • docs/Architecture.md и docs/Carte-des-Modules.md — фактическая структура кода, поддерживаемая в синхронизации с тем, что поставляется.
  • Проверка согласованности i18n, выполняемая перед каждым релизом для выявления отсутствующих ключей перевода во всех 8 поддерживаемых языках.

Ничего из этого не существует потому, что ИИ нельзя доверять. Это существует потому, что ничего не должно выпускаться без процесса проверки — включая код, написанный вручную. Оценивайте результат и то, как он проверяется, а не инструмент, который помог его написать.

Всё равно нашли ошибку? Это полезно, а не постыдно — откройте 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)

DashboardТопология
DashboardТопология
TracerouteWi-Fi
TracerouteWi-Fi

macOS

DashboardTraceroute
macOS DashboardmacOS Traceroute

Журнал изменений

v1.7.12 — 2026-08-12

  • Traceroute — исправление: в Flatpak (v1.7.11, см. ниже — теперь удалено) traceroute всегда разрешался на PATH через хост-шим, даже когда на хосте не был установлен реальный бинарник traceroute, поэтому рабочий процесс никогда не переключался на tracepath, и трассировка завершалась мгновенно без хопов и без показа ошибки. Теперь он переключается на tracepath всякий раз, когда traceroute вообще не выдаёт разбираемый вывод, независимо от причины сбоя.
  • SSH-терминал — исправление askpass: когда установлены DISPLAY/WAYLAND_DISPLAY (любая GUI-сессия) и у ssh нет чистого tty, он может попытаться использовать $SSH_ASKPASS для запроса пароля вместо встроенного терминала — что молча приводит к сбою аутентификации, если не установлен askpass-хелпер. SSH_ASKPASS_REQUIRE=never теперь заставляет запросы пароля всегда проходить через сам терминал.
  • Удалена упаковка Flatpak: локальный манифест для KDE Linux, поставлявшийся в v1.7.11, прекращён. Расследование ошибки запроса пароля SSH выше выявило ограничение на уровне ядра: процесс, переданный через flatpak-spawn --host, никогда не может стать владельцем управляющего терминала пересылаемого pty (TIOCSCTTY отклоняется с EPERM — другую, несвязанную сессию уже владеет им; это намеренная граница безопасности ядра, а не ошибка). Единственный обходной путь (script, выделяющий новый pty) исправляет запрос пароля, но ломает передачу изменения размера живого терминала для этой сессии — признано худшим компромиссом, чем вообще не поставлять Flatpak. AUR и AppImage — поддерживаемые пути установки Linux в дальнейшем.

v1.7.11 — 2026-08-03

  • Упаковка Flatpak (KDE Linux): локальный манифест сборки в packaging/flatpak/ нацелен на KDE Linux и другие дистрибутивы только с Flatpak. Хост-инструменты CLI, к которым обращается nmlinux (nmcli, pkexec, mount.cifs, ssh, nmap, …), связываются через шимы flatpak-spawn --host на PATH вместо песочницы для каждого по отдельности; PySide6 берётся из io.qt.PySide.BaseApp на Flathub, а не из колеса PyPI. Не опубликовано на Flathub — вместо этого собирается один пакет .flatpak с помощью packaging/flatpak/build-bundle.sh и прикрепляется к каждому релизу, так же, как уже делается с 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

Категории