Torna agli aggiornamenti
New releaseAug 3, 2026

nmlinux v1.7.9

Unified network toolkit for Linux — Python 3 + PySide6

Condividi

NMLinux · v1.7.12

Version Python License: GPL-2.0 Platform Languages Donate Bitcoin

Un toolkit di rete unificato per Linux e macOS: ispeziona, connettiti, diagnostica.

NMLinux è un'unica GUI unificata che riunisce 29 moduli di rete in una finestra: monitoraggio interfacce, Wi-Fi, DNS, terminale SSH, visualizzatore firewall, mappa topologica, traceroute e altro. Sviluppato da zero in Python e PySide6 (Qt 6), con 8 lingue dell'interfaccia e nessuna dipendenza esterna oltre agli strumenti di sistema standard.

[!NOTE] NMLinux non è correlato al daemon di sistema Linux /usr/bin/NetworkManager (NetworkManager di Red Hat/GNOME). NMLinux è un progetto autonomo sviluppato da zero in Python e PySide6.

Sviluppato con Claude Code (Anthropic) e il contributo del suo autore.


Processo di sviluppo

NMLinux è sviluppato con l'assistenza dell'IA — nello specifico Claude Code — e questo non è nascosto da nessuna parte in questo repository. Quasi ogni progetto software serio oggi usa l'IA da qualche parte nel proprio processo, che lo dichiari o meno. Quindi "se l'IA fosse coinvolta" non è la domanda interessante. La domanda interessante è: c'è qualcosa che intercetta gli errori dell'IA?

Ecco cosa lo fa, se preferisci verificare piuttosto che prendere la mia parola:

  • 162 test — pytest tests/ -v. Pura logica più una manciata di veri test dei widget Qt (menu, tabelle), senza simulare le parti interessanti.
  • docs/Decisions-Techniques.md — ogni scelta tecnica non ovvia, le alternative scartate e i bug (inclusi quelli introdotti dall'IA) trovati e corretti, con il ragionamento documentato.
  • docs/Architecture.md e docs/Carte-des-Modules.md — la struttura reale del codice, mantenuta sincronizzata con ciò che viene distribuito.
  • Un controllo di coerenza i18n eseguito prima di ogni release per individuare chiavi di traduzione mancanti nelle 8 lingue supportate.

Nessuna di queste cose esiste perché l'IA non è affidabile. Esistono perché nulla dovrebbe essere distribuito senza un processo che lo verifichi — codice scritto a mano incluso. Giudica il risultato e come viene verificato, non lo strumento che ha aiutato a scriverlo.

Hai trovato comunque un bug? È utile, non imbarazzante — apri una segnalazione.


Comunità

Le discussioni su GitHub sono aperte — condividi feedback, segnala idee, fai domande o semplicemente saluta. L'autore ha oltre 30 anni di esperienza in infrastrutture e operazioni e ha creato questo strumento perché anche per Linux dovrebbe esistere software buono, gratuito e semplice.


Screenshot

Screenshot Linux dalla v1.2.7 — screenshot macOS dalla v1.3.5. L'app ora ha 29 moduli e 8 lingue dell'interfaccia (FR/EN/ES/DE/IT/PT/JA/ZH).

Linux (KDE)

DashboardTopology
DashboardTopology
TracerouteWi-Fi
TracerouteWi-Fi

macOS

DashboardTraceroute
macOS DashboardmacOS Traceroute

Registro delle modifiche

v1.7.12 — 2026-08-12

  • Traceroute — correzione: in Flatpak (v1.7.11, vedi sotto — ora rimosso), traceroute veniva sempre risolto su PATH tramite lo shim dell'host anche quando sull'host non era installato un vero binario traceroute, quindi il worker non ripiegava mai su tracepath e la traccia terminava all'istante senza hop e senza errori mostrati. Ora ripiega su tracepath ogni volta che traceroute non produce alcun output analizzabile, indipendentemente dal motivo del fallimento.
  • Terminale SSH — correzione askpass: quando DISPLAY/WAYLAND_DISPLAY sono impostati (qualsiasi sessione GUI) e ssh non ha una tty pulita, può provare a usare $SSH_ASKPASS per la richiesta della password invece del terminale integrato — facendo fallire silenziosamente l'autenticazione se non è installato un helper askpass. SSH_ASKPASS_REQUIRE=never ora impone che le richieste di password passino sempre dal terminale stesso.
  • Packaging Flatpak rimosso: il manifest locale KDE Linux distribuito nella v1.7.11 è stato interrotto. L'indagine sul bug della richiesta password SSH sopra ha portato alla luce una limitazione a livello di kernel: un processo inoltrato tramite flatpak-spawn --host non può mai diventare il proprietario del terminale di controllo della pty inoltrata (TIOCSCTTY rifiutato con EPERM — una sessione diversa e non correlata la possiede già; questo è un confine di sicurezza intenzionale del kernel, non un bug). L'unica soluzione alternativa (script, che alloca una nuova pty) risolve la richiesta della password ma rompe la propagazione live del ridimensionamento del terminale per quella sessione — ritenuta una scelta peggiore rispetto a non distribuire affatto Flatpak. AUR e AppImage sono i percorsi di installazione Linux supportati d'ora in poi.

v1.7.11 — 2026-08-03

  • Packaging Flatpak (KDE Linux): un manifest di build locale in packaging/flatpak/ è destinato a KDE Linux e ad altre distribuzioni solo-Flatpak. Gli strumenti CLI dell'host a cui nmlinux delega l'esecuzione (nmcli, pkexec, mount.cifs, ssh, nmap, …) vengono collegati tramite shim flatpak-spawn --host su PATH invece di mettere in sandbox ciascuno singolarmente; PySide6 proviene dal io.qt.PySide.BaseApp di Flathub piuttosto che dalla wheel PyPI. Non pubblicato su Flathub — un singolo bundle .flatpak viene creato con packaging/flatpak/build-bundle.sh e allegato a ogni release, esattamente come già avviene per l'AppImage. Interrotto nella v1.7.12 — vedi sopra.

v1.7.10 — 2026-08-03

Categorie