Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
nmlinux — Kit de herramientas de red unificado para Linux — Python 3 + PySide6 | Kitploit
Herramientas/GitHubGitHub/thongor77/nmlinux
Mapeo de RedesEscaneo de PuertosRecopilación de InformaciónAnálisis de DNS
GitHubthongor77/nmlinux

nmlinux

Kit de herramientas de red unificado para Linux — Python 3 + PySide6

Ver Repositorio
921hace 6 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

NMLinux · v1.7.12

Version Python License: GPL-2.0 Platform Languages Donate Bitcoin

Un kit de herramientas de red unificado para Linux y macOS — inspecciona, conecta, diagnostica.

NMLinux es una interfaz gráfica única y unificada que reúne 29 módulos de red en una sola ventana: monitoreo de interfaces, Wi-Fi, DNS, terminal SSH, visor de firewall, mapa de topología, traceroute y más. Construido desde cero en Python y PySide6 (Qt 6), con 8 idiomas de interfaz y sin dependencias externas más allá de las herramientas estándar del sistema.

[!NOTE] NMLinux no está relacionado con el demonio del sistema Linux /usr/bin/NetworkManager (NetworkManager de Red Hat/GNOME). NMLinux es un proyecto independiente construido desde cero en Python y PySide6.

Construido con Claude Code (Anthropic) y la contribución de su autor.


Proceso de desarrollo

NMLinux se construye con asistencia de IA — concretamente Claude Code — y eso no se oculta en ningún lugar de este repositorio. Casi todos los proyectos de software serios usan IA en algún punto de su proceso hoy en día, lo digan o no. Así que «¿se usó IA?» no es la pregunta interesante. La pregunta interesante es: ¿hay algo que lo detecte cuando la IA se equivoca?

Esto es lo que lo hace, si prefieres comprobarlo antes que fiarte de mi palabra:

  • 162 pruebas — pytest tests/ -v. Lógica pura más un puñado de pruebas reales de widgets Qt (menús, tablas), sin simular las partes interesantes.
  • docs/Decisions-Techniques.md — cada decisión técnica no obvia, las alternativas rechazadas y los errores (incluidos los introducidos por IA) que se encontraron y corrigieron, con el razonamiento documentado.
  • docs/Architecture.md y docs/Carte-des-Modules.md — la estructura real del código, mantenida sincronizada con lo que se publica.
  • Una comprobación de coherencia i18n ejecutada antes de cada lanzamiento para detectar claves de traducción ausentes en los 8 idiomas soportados.

Nada de eso existe porque no se pueda confiar en la IA. Existe porque nada debería publicarse sin un proceso que lo verifique — incluido el código escrito a mano. Juzga el resultado y cómo se verifica, no la herramienta que ayudó a escribirlo.

¿Encontraste un error de todos modos? Eso es útil, no vergonzoso — abre un issue.


Comunidad

GitHub Discussions está abierto — comparte comentarios, reporta ideas, haz preguntas o simplemente saluda. El autor tiene más de 30 años en infraestructura y operaciones, y construyó esta herramienta porque el software bueno, gratuito y sencillo también debería existir para Linux.


Capturas de pantalla

Capturas de Linux de la v1.2.7 — capturas de macOS de la v1.3.5. La aplicación ahora tiene 29 módulos y 8 idiomas de interfaz (FR/EN/ES/DE/IT/PT/JA/ZH).

Linux (KDE)

PanelTopología
PanelTopología
TracerouteWi-Fi
TracerouteWi-Fi

macOS

PanelTraceroute
Panel de macOSTraceroute de macOS

Registro de cambios

v1.7.12 — 2026-08-12

  • Traceroute — corrección: bajo Flatpak (v1.7.11, ver más abajo — ahora eliminado), traceroute siempre se resolvía en PATH a través del shim del host incluso cuando el host no tenía un binario traceroute real instalado, por lo que el worker nunca recurría a tracepath y el trazado terminaba al instante sin saltos y sin mostrar ningún error. Ahora recurre a tracepath siempre que traceroute no produzca ninguna salida analizable, independientemente del motivo del fallo.
  • Terminal SSH — corrección de askpass: cuando DISPLAY/WAYLAND_DISPLAY están definidas (cualquier sesión gráfica) y ssh no tiene una tty limpia, puede intentar usar $SSH_ASKPASS para la solicitud de contraseña en lugar de la terminal integrada — fallando silenciosamente la autenticación si no hay ningún helper askpass instalado. SSH_ASKPASS_REQUIRE=never ahora obliga a que las solicitudes de contraseña pasen siempre por la propia terminal.
  • Empaquetado Flatpak eliminado: el manifiesto local para KDE Linux incluido en la v1.7.11 se ha descontinuado. La investigación del error de solicitud de contraseña SSH mencionado arriba reveló una limitación a nivel de kernel: un proceso redirigido a través de nunca puede convertirse en el propietario de la terminal de control del pty reenviado ( rechazado con — una sesión diferente y no relacionada ya lo posee; se trata de un límite de seguridad intencional del kernel, no de un error). La única alternativa viable (, asignando un pty nuevo) corrige la solicitud de contraseña pero rompe la propagación del redimensionamiento de la terminal en vivo para esa sesión — considerada un peor equilibrio que no distribuir Flatpak en absoluto. AUR y AppImage son las vías de instalación en Linux compatibles a partir de ahora.

v1.7.11 — 2026-08-03

  • Empaquetado Flatpak (KDE Linux): un manifiesto de compilación local en packaging/flatpak/ está dirigido a KDE Linux y otras distribuciones solo-Flatpak. Las herramientas CLI del host a las que nmlinux llama externamente (nmcli, pkexec, mount.cifs, ssh, nmap, …) se conectan a través de shims flatpak-spawn --host en PATH en lugar de aislar cada una individualmente; PySide6 proviene de io.qt.PySide.BaseApp de Flathub en lugar del wheel de PyPI. No está publicado en Flathub — se compila un único paquete .flatpak con packaging/flatpak/build-bundle.sh y se adjunta a cada lanzamiento, de la misma manera que ya se hace con AppImage. Descontinuado en la v1.7.12 — ver más arriba.

v1.7.10 — 2026-08-03

  • Terminal SSH — corrección: se corrigió una condición de carrera en la que el PTY podía iniciarse con un tamaño incorrecto (24×80 por defecto) si el tamaño real del widget de la terminal aún no se conocía cuando se lanzaba la sesión, descartando silenciosamente la solicitud de redimensionamiento. Esto desincronizaba las aplicaciones remotas de pantalla completa (p. ej. Claude Code CLI, htop, vim) del tamaño real de la ventana, provocando texto obsoleto/sobrante en la parte inferior de la pantalla que solo se limpiaba cuando la nueva salida pasaba por encima. Reportado por el usuario; reproducido con una sesión interactiva real

v1.7.9 — 2026-08-02

  • Terminal SSH — copiar/pegar: selecciona texto con el ratón (clic-arrastre, resaltado), copia con Ctrl+Shift+C o con el menú de clic derecho; pega con Ctrl+Shift+V (existente). Copiar era antes imposible — no existía selección de texto en absoluto
  • Terminal SSH — múltiples sesiones simultáneas: la página SSH ahora abre cada conexión en su propia pestaña en lugar de una única sesión compartida. Reconectarse a una conexión guardada — incluso la misma dos veces — solía matar la sesión activa sin abrir un reemplazo funcional; ahora cada acción de conexión abre una pestaña nueva e independiente

v1.7.8 — 2026-07-14

  • Prueba de velocidad — nueva pestaña LAN (iperf3): junto a la prueba de velocidad de internet existente, una nueva pestaña ejecuta pruebas iperf3 solo-cliente contra una lista pública de servidores incluida (26 países) o un servidor personalizado guardado (p. ej. un servidor interno de la organización). Soporta TCP/UDP, IPv4/IPv6/automático y dirección inversa (descarga), con jitter/pérdida mostrados para las pruebas UDP. Sugerido por issue #6
  • Nueva dependencia opcional: iperf3 — instálalo para habilitar la pestaña LAN; la pestaña muestra un banner y permanece deshabilitada en caso contrario

v1.7.6 — 2026-07-05

  • Inventario de activos — actualización con clic derecho: haz clic derecho en una o más filas ya escaneadas (se admite selección múltiple) y elige «Actualizar seleccionados» para volver a escanear solo esos hosts en su lugar, en lugar de volver a ejecutar un escaneo de red completo
  • Inventario de activos — retroalimentación de fallo de autenticación SSH: un inicio de sesión SSH rechazado ahora muestra «Fallo de autenticación SSH» en lugar de fallar silenciosamente, sin perder la línea base de nombre de host/SO detectada por Nmap — confirmado contra un NAS Synology real donde el Auto Block de DSM rechazó una contraseña correcta después de que se probaran primero otros conjuntos de credenciales configurados

v1.7.5 — 2026-07-04

  • Monitor de ping — directorio de objetivos guardados: un nuevo panel izquierdo te permite guardar objetivos de ping (nombre, host, intervalo) en una lista persistente, de modo que los hosts en monitoreo sobrevivan a un reinicio de la aplicación en lugar de tener que volver a escribirlos. Un botón ★ en cada fila monitoreada activamente guarda ese host en el directorio en cualquier momento durante la sesión — sin necesidad de haberlo planeado antes de que la aplicación se cierre inesperadamente
  • Monitor de ping — «Iniciar monitoreo»: selecciona un objetivo guardado y comienza a monitorearlo con un clic, reutilizando su intervalo guardado

v1.7.4 — 2026-07-04

  • Inventario de activos — corregidos resultados de escaneo inconsistentes: la comprobación de actividad enviaba un único ping con tiempo de espera de 1 segundo y sin reintentos, lo que podía omitir un dispositivo real bajo la carga concurrente del propio escáner (hasta 40 hosts sondeados a la vez) o cuando un host Wi-Fi estaba brevemente en reposo entre balizas — confirmado en vivo contra una subred real que devolvía conteos de dispositivos diferentes en ejecuciones repetidas del mismo rango. La comprobación ahora reintenta el ping antes de recurrir a la sonda de puerto TCP
  • Inventario de activos — nuevo botón «Actualizar vacíos»: después de un escaneo, vuelve a escanear solo las IPs que no devolvieron datos en lugar de todo el rango de nuevo; los hosts recién encontrados se fusionan con los resultados existentes

v1.7.3 — 2026-07-03

  • SMB — montar recursos compartidos desde el menú de clic derecho: haz clic derecho en un recurso compartido de la pestaña SMB y elige Montar/Desmontar para montarlo en una ruta local estable (~/mnt/<host>_<share>), utilizable desde la terminal y desde cualquier otra aplicación — no una vista de exploración transitoria. Solo para la sesión (sin persistencia en fstab/systemd), las credenciales se reutilizan de los campos existentes de usuario/contraseña. Linux usa pkexec mount -t cifs con un archivo de credenciales de permisos restringidos (nunca expuesto a través de ps); macOS usa mount_smbfs directamente. Reintenta automáticamente con un dialecto SMB más antiguo (vers=2.0) cuando un servidor rechaza la negociación predeterminada (común en NAS antiguos) — ambos intentos se realizan bajo una única solicitud de autenticación mediante un proceso helper dedicado
  • Nueva dependencia opcional: cifs-utils (Linux) para el montaje SMB; integrado en macOS

v1.7.2 — 2026-07-03

  • Instalación en macOS — corregidos dos errores de arranque encontrados en un Mac recién preparado: bootstrap_macos.sh ya no fuerza NONINTERACTIVE=1 en el instalador de Homebrew, que abortaba inmediatamente en cualquier cuenta de administrador nueva en lugar de solicitar la contraseña de sudo; el one-liner documentado ahora descarga primero el script en lugar de enviarlo directamente a bash, ya que los pasos interactivos anidados (instalador de Xcode CLT, la propia solicitud de sudo de Homebrew) podían interferir con el flujo de entrada del script externo cuando se usaba pipe
  • Menú universal de clic derecho — SMB añadido: SmbNfsPage era la única página de destino que faltaba en el sistema de clic derecho entre módulos incluido en la v1.7.0; hacer clic derecho en un host y elegir SMB ahora rellena el campo de host e inicia el escaneo de inmediato, en negrita en el menú cuando se detecta el puerto 445 abierto
  • i18n — cadenas restantes del Panel traducidas: la etiqueta de latencia de la puerta de enlace, el título de la tarjeta de la Lista de vigilancia TLS y su fila de estado seguían codificados en francés; ahora traducidos a los 8 idiomas de la interfaz

v1.7.1 — 2026-07-02

  • macOS 26 (Tahoe) — correcciones de SSID Wi-Fi: se cambió de system_profiler (devuelve <redacted> sin los Servicios de Localización) a CoreWLAN como fuente de datos principal; la aplicación ahora solicita permiso de Servicios de Localización en el primer lanzamiento; la página Wi-Fi muestra todas las redes con nombres reales una vez concedido
  • macOS — Administrador de conexiones: el SSID conectado ahora se lee a través de CoreWLAN, con system_profiler para el modo de seguridad
  • macOS — SMB: mensaje claro de «autenticación requerida» cuando el NAS exige credenciales; corregida una advertencia espuria de smb.conf del smbclient de Homebrew
  • macOS — Corregido un posible cierre inesperado al salir después del primer diálogo de permiso de Servicios de Localización

v1.7.0 — 2026-07-02

  • Menú contextual universal de clic derecho en todas las tablas que contienen IPs o nombres de host — navega directamente entre módulos sin copiar y pegar: haz clic derecho en cualquier host descubierto y elige Ping, Escanear puertos, Whois, DNS, Traceroute, MTR, SSH, RDP, VNC, Ver en Topología o Añadir al inventario. Los elementos del menú SSH/RDP/VNC aparecen en negrita cuando se detecta el puerto correspondiente abierto. Las etiquetas están completamente traducidas a los 8 idiomas de la interfaz.
  • Páginas de origen (emiten acciones de clic derecho): Escáner de IPs, Nmap, Ping, Escáner de puertos, Traceroute, MTR, Topología (clic derecho en nodo)
  • Páginas de destino (reciben el host y lo rellenan): Whois (set_target + consulta automática), DNS (set_target solo relleno), Ping (set_target + inicio automático), Traceroute (set_target + inicio automático), MTR (set_target + inicio automático), Escáner de puertos (set_target + foco), SSH / RDP / VNC (set_target abre el formulario de nueva conexión rellenado), Topología (load_hosts inyecta nodos desde el escaneo del Escáner de IPs/Nmap sin volver a escanear — la puerta de enlace se detecta automáticamente, se dibujan las aristas, el nodo de origen se resalta en rojo), Inventario de activos (prefill_hosts inicia el escaneo de credenciales directamente sobre los hosts descubiertos, omitiendo la fase de descubrimiento ICMP)

v1.6.4 — 2026-06-28

  • macOS: la barra de menú ahora muestra NMLinux en lugar de Python — causa raíz: después del exec() en Python, NSBundle.mainBundle() se resuelve al bundle Python.framework (CFBundleName = "Python") que Qt lee durante la construcción de QApplication; corregido parcheando el infoDictionary() del bundle y renombrando los elementos de menú nativos a través de AppKit antes de que se cree el menú de la aplicación

v1.6.3 — 2026-06-28

  • macOS: primer intento de corregir la barra de menú usando NSProcessInfo.setProcessName_ a través de pyobjc-framework-Cocoa (superado por la v1.6.4)

v1.6.2 — 2026-06-28

  • macOS: se reemplazó el script de lanzamiento bash por un stub C compilado en install_macos_app.sh para que macOS asocie correctamente el bundle .app con el proceso en ejecución; se añadieron setprogname y la sobrescritura de sys.argv[0] como respaldos

v1.6.1 — 2026-06-25

  • Terminal SSH — corregido el eco remoto: las pulsaciones de teclas escritas en la terminal SSH integrada se enviaban al shell remoto pero nunca se reflejaban de vuelta (el teclado parecía «muerto» después del inicio de sesión). nmlinux forzaba el eco local del PTY a desactivado, y ssh propagaba ese «sin eco» al pty remoto a través de sus modos de terminal (pty-req), por lo que el shell remoto dejaba de reflejar la entrada. Reproducido en una VM limpia de Ubuntu 26.04 (OpenSSH reciente aplica estos modos fielmente). La terminal ahora mantiene el PTY en modo normal y deja que ssh gestione el eco, igual que los emuladores de terminal reales.

v1.6.0 — 2026-06-24

  • Inventario de activos — WinRM Windows (completo): detección de hosts mediante sonda de puerto TCP cuando ICMP está bloqueado por el Firewall de Windows; PowerShell ahora usa ruta absoluta completa + EncodedCommand (base64) para evitar que cmd.exe interprete las tuberías |; cadena de respaldo completa sin derechos de administrador: SO mediante ver, CPU mediante registro, RAM mediante systeminfo, disco mediante wmic → fsutil (coma EN según locale / espacio FR) → dir /-C
  • Inventario de activos — SSH multi-credenciales: se admiten múltiples conjuntos de credenciales SSH; disco de macOS corregido (/System/Volumes/Data), respaldo de CPU para Apple Silicon (hw.model), Synology (/volume1), Unraid (/mnt/user)
  • Correcciones de errores: los errores de WinRM ahora se muestran en la tabla en lugar de un respaldo silencioso; la detección de hosts por WinRM/SNMP ya no se bloquea por la presencia de credenciales SSH; corregido el tiempo de espera de pywinrm

v1.5.3 — 2026-06-24

  • macOS .app — detección de herramientas de Homebrew: sshpass, nmap y snmpget instalados a través de Homebrew ahora se encuentran y se llaman usando su ruta absoluta; los bundles .app en macOS no heredan el PATH de Homebrew (/opt/homebrew/bin, /usr/local/bin), por lo que las herramientas previamente instaladas se ignoraban silenciosamente
  • Ruta de actualización en macOS: ejecutar git pull && bash packaging/install_macos_app.sh desde la raíz del repositorio ahora es el método de actualización documentado; el script gestiona su propio venv (~/.local/share/nmlinux/venv) y no requiere pip ni pipx a nivel de sistema

v1.5.2 — 2026-06-24

  • Inventario de activos — nuevo módulo (29º); escanea un rango CIDR y recopila SO, CPU, RAM, disco y tiempo de actividad de cada host mediante SSH, WinRM, SNMP o Nmap; admite múltiples conjuntos de credenciales por protocolo (prueba cada uno en orden); política de retención cero: las credenciales nunca se escriben en disco y se eliminan de la memoria después del escaneo; exporta resultados como JSON, CSV o Markdown; se añadió un mapa geográfico animado a la sección Geolocalización de IPs del Panel
  • Correcciones de recopilación SSH: corregido el error de comillas en awk del comando de disco; free -h reemplazado por free compatible con BusyBox; la ruta de código de macOS ahora usa sw_vers para el nombre del SO, respaldo hw.model para CPU de Apple Silicon, /System/Volumes/Data para el volumen de datos de usuario APFS; los volúmenes de Synology/Unraid (/volume1, /mnt/user) se detectan antes que la raíz; el patrón de falso éxito df | tail -1 || … se corrigió con guardas test -d; la salida de lsb_release se limpia de comillas circundantes; se admiten múltiples conjuntos de credenciales SSH/WinRM (prueba cada uno en orden por host)

v1.5.0 — 2026-06-17

  • Servidor de transferencia de archivos — nuevo módulo para iniciar/detener un servidor TFTP o HTTP ligero directamente desde la aplicación; caso de uso clásico: respaldo y restauración de configuraciones de routers, switches o impresoras; un solo servidor activo a la vez (TFTP o HTTP), puerto y directorio raíz configurables, IPs locales mostradas como botones de copiar al portapapeles; HTTP incluye listado de directorios (navega desde cualquier navegador en la LAN), GET (descarga) y POST/PUT (subida); TFTP admite GET y PUT (bidireccional), el puerto 69 requiere root — la aplicación muestra un botón «Iniciar como root (pkexec)» en caso de error de permisos; tabla de registro de transferencias en vivo (marca de tiempo, nombre de archivo, IP del cliente, dirección ↑/↓, tamaño); protección contra recorrido de puertos; 8 idiomas de interfaz; nueva dependencia: tftpy

v1.4.3 — 2026-06-14

  • Correcciones de la Lista de vigilancia TLS: los certificados autofirmados y no confiables ahora se muestran correctamente como «⚠ Certificado inválido / no confiable» (naranja) en lugar de verde; la captura de excepciones SSL se amplió para cubrir todas las subclases de ssl.SSLError; las entradas ahora muestran «… (comprobando)» mientras se ejecuta la comprobación en segundo plano y «— (inalcanzable)» cuando no se puede acceder al host

v1.4.2 — 2026-06-14

  • Lista de vigilancia TLS — lista persistente de nombres de host para monitorear la caducidad de certificados; añade hosts con + Vigilar (usa el host/puerto actual) o manualmente en el panel; la comprobación en segundo plano se ejecuta automáticamente 2 segundos después del lanzamiento; la entrada lateral «Inspector TLS» muestra un punto de color: rojo si algún certificado está caducado, naranja si algún certificado caduca dentro de 30 días; botón de re-comprobación en el panel; la lista muestra estado por entrada (✓ / ⚠ / CADUCADO) con código de colores

v1.4.1 — 2026-06-14

  • macOS — Escáner de IPs: corregida la consulta de dirección MAC, proveedor e interfaz en macOS; _arp_entry() ahora llama a arp -n <ip> en macOS y analiza su formato de salida (? (IP) at AA:BB:CC on en0) en lugar de leer /proc/net/arp (solo Linux); las cuatro columnas del escáner ahora se rellenan correctamente en macOS
  • Ayuda de VNC: se añadió una nota en los 8 idiomas que aclara que Linux no tiene un servidor VNC por defecto y enumera opciones comunes de instalación (x11vnc, tigervnc-server, wayvnc)

v1.4.0 — 2026-06-14- macOS — Escáner de IP: sustituye getent (solo Linux) por socket.gethostbyaddr() de Python para la resolución DNS inversa multiplataforma; la resolución de nombres de host ahora funciona de forma nativa en macOS sin ninguna herramienta adicional

  • macOS — Explorador de SMB: pasa de smbclient (requiere Homebrew samba) a smbutil view (herramienta integrada en macOS); el listado de recursos compartidos SMB ahora funciona en macOS sin necesidad de instalar nada
  • macOS — Explorador de NFS: showmount está integrado en macOS pero no admite --no-headers; el indicador se elimina en macOS y la línea de cabecera se omite en el analizador; el listado de exportaciones NFS ahora funciona de forma nativa
  • macOS — RDP: cuando no se encuentra xfreerdp, se recurre al esquema de URL open rdp://; abre Microsoft Remote Desktop (App Store) si está instalado, con host, puerto, usuario y dominio predefinidos
  • macOS — VNC: cuando no se encuentra vncviewer, se recurre al esquema de URL open vnc://; abre Compartir pantalla de macOS (integrado, sin necesidad de instalar nada)

v1.3.9 — 2026-06-13

  • Reenvío del agente SSH — nueva casilla «Reenvío del agente» en el formulario de conexión SSH; añade -A al comando ssh; permite saltar entre servidores sin copiar tu clave privada (PC → A → B); requiere un agente SSH activo (SSH_AUTH_SOCK); ayuda contextual actualizada en los 8 idiomas

v1.3.8 — 2026-06-13

  • Paleta de comandos (Ctrl+P) — navegación instantánea con el teclado a cualquiera de los 27 módulos; búsqueda difusa por nombre y palabras clave (p. ej., "firewall", "tls", "ssh key", "scan"); flechas arriba/abajo + Enter o un solo clic para navegar; se abre con Ctrl+P desde cualquier lugar de la aplicación
  • Gestor de exportación — exporta una instantánea completa de la red (interfaces, rutas, resolutores DNS) desde Archivo → Exportar informe de red… en JSON, Markdown, texto plano o PDF (opcional: pip install reportlab)
  • Botones de exportación por módulo — se añaden botones de exportación a las páginas Interfaces, DNS, Firewall, Conexiones SSH y Gestor de conexiones; cada página exporta sus datos actuales en el formato elegido, con actualización en vivo de la extensión del nombre de archivo al cambiar el filtro de formato

v1.3.6 — 2026-06-12

  • Topología — iconos de dispositivos — cada nodo muestra ahora un icono SVG de Lucide que coincide con su tipo de dispositivo (router/wifi, ordenador/portátil, impresora, NAS/servidor, smartphone, conmutador de red, Raspberry Pi) en lugar de un círculo genérico; 5 nuevos iconos SVG incluidos (printer, server, smartphone, cpu, laptop)
  • Topología — detección mDNS — el tipo de dispositivo se detecta mediante avahi-browse (opcional, se ejecuta en paralelo con el escaneo de nmap); identifica impresoras (_ipp._tcp, PDL Printer), teléfonos Android y televisores (_googlecast._tcp, _androidtvremote2._tcp), Macs de Apple (am=Mac16,x en el TXT de AirPlay), dispositivos NAS (Synology informa de model=Xserve), escritorios KDE Connect; si avahi no está disponible, recurre a la OUI del fabricante MAC y a heurísticas del nombre de host

v1.3.5 — 2026-06-06

  • Compatibilidad con macOS — los 9 módulos de red ahora funcionan en macOS sin alterar el comportamiento en Linux; cada módulo detecta la plataforma al iniciarse (_IS_MACOS) y usa comandos nativos de macOS: route -n get default, ifconfig, scutil --dns, networksetup, system_profiler SPAirPortDataType, pfctl, netstat -ib; la elevación de privilegios usa osascript + with administrator privileges en lugar de pkexec; la fuente monoespaciada usa Menlo en lugar de Monospace
  • Módulos con rutas duales Linux/macOS: Panel general, Interfaces, Wi-Fi, Topología, Ancho de banda, Firewall (pf.conf + pfctl), Gestor de conexiones, Archivo hosts, MTR

v1.3.2 — 2026-06-06

  • i18n ampliado a 8 idiomas — se añaden Italiano, Português, 日本語 (japonés) y 中文 (chino simplificado); toda la interfaz (los 27 módulos, ~720 claves de traducción) está ahora disponible en FR / EN / ES / DE / IT / PT / JA / ZH; aparece un aviso de reinicio al cambiar el idioma en Configuración
  • Ayuda contextual en 8 idiomas — el panel de la insignia ? (descripción, ejemplos de uso y comandos CLI equivalentes) cubre ahora los 8 idiomas para cada módulo; antes JA y ZH recurrían al inglés
  • Corrección de errores — los tooltips de navegación de SMB/NFS y del archivo Hosts se mostraban en francés independientemente del idioma seleccionado; se añaden las claves faltantes nav_hint_smb_nfs y nav_hint_hosts a los 7 bloques de idioma no francés

v1.3.1 — 2026-06-05

  • Gestor de claves SSH — lista todos los pares de claves en ~/.ssh/ (archivo, tipo, bits, comentario, huella SHA256); genera claves Ed25519 o RSA 4096 con frase de contraseña opcional (detección de discrepancias, nombre de archivo automático según el tipo); copia la clave pública al portapapeles; despliega en un servidor remoto mediante ssh-copy-id en una terminal integrada con soporte de stdin para los avisos de contraseña; elimina pares de claves con confirmación; crea ~/.ssh/ automáticamente si no existe; i18n: fr / en / es / de

v1.3.0 — 2026-06-03

  • Inspector TLS/SSL — inspecciona el certificado de cualquier servidor: CN del sujeto, SAN, emisor, fechas de validez (codificadas por color: verde / naranja < 30 días / rojo caducado), número de serie, protocolo TLS, suite de cifrado y cadena de certificados (mediante openssl s_client); funciona con certificados válidos, caducados y autofirmados; mensajes de error claros para hosts inalcanzables
  • Explorador SMB/NFS — lista recursos compartidos y exportaciones de cualquier servidor; pestaña SMB: smbclient -L con credenciales opcionales, muestra nombre / tipo / comentario del recurso compartido; pestaña NFS: showmount -e, muestra la ruta de exportación y la lista de acceso; detecta herramientas ausentes con instrucciones de instalación específicas por distribución
  • Editor del archivo hosts — ver y editar /etc/hosts; tabla con conmutador habilitar/deshabilitar, añadir/editar/eliminar entradas mediante diálogo; filtrar por IP o nombre de host; guarda mediante pkexec cp (diálogo de autenticación de polkit)
  • install.sh — nuevo script para Debian / Ubuntu / Linux Mint: crea un venv en ~/.local/share/nmlinux/venv, instala las dependencias del sistema vía apt, crea un lanzador y una entrada .desktop (corrige el error PEP 668 externally-managed-environment)

v1.2.9 — 2026-05-30

  • VNC — nuevo módulo para gestionar perfiles de conexión VNC; grupos/subgrupos como SSH y RDP; lanza vncviewer (TigerVNC); compatible con macOS ARD (la autenticación DH30 la gestiona nativamente vncviewer); la contraseña nunca se almacena; detecta la ausencia de vncviewer con instrucciones de instalación específicas por distribución
  • Acerca de — Herramientas y servicios — nueva sección que lista todas las herramientas y API de terceros de las que depende la aplicación
  • i18n de la barra lateral — los 23 tooltips de navegación están ahora traducidos a FR/EN/ES/DE (antes estaban fijados en francés); etiquetas corregidas: Topología, Conexiones, Subred

v1.2.8 — 2026-05-30

  • Escritorio remoto (RDP) — nuevo módulo para gestionar perfiles de conexión RDP de Windows; grupos/subgrupos como SSH; lanza xfreerdp como proceso externo; la contraseña se solicita al conectar y nunca se almacena; campos: host, puerto, usuario, dominio, resolución, pantalla completa; detecta la ausencia de xfreerdp con instrucciones de instalación específicas por distribución (Arch / Debian / Fedora)

v1.2.7 — 2026-05-26

  • Iconos Lucide integrados — 21 iconos SVG de Lucide (MIT) están ahora incluidos en assets/icons/; se renderizan en tiempo de ejecución mediante QSvgRenderer; coloreados #60a5fa; la aplicación ya no requiere ningún tema de iconos del sistema (Breeze, Adwaita, Papirus…)

v1.2.6 — 2026-05-24

  • Compatibilidad con GNOME / Adwaita — iconos corregidos en escritorios que no son KDE: main.py ahora detecta automáticamente el tema de iconos GTK mediante gsettings y lo aplica a Qt; cadenas de respaldo ampliadas para Wi-Fi, Traceroute, Prueba de velocidad, Interfaces, Escáner de puertos, Firewall, MTR; themed_icon() ahora valida que exista un pixmap real antes de aceptar un icono del tema
  • Compatibilidad con NixOS / KDE — iconos corregidos en NixOS: Breeze 6.x solo incluye iconos SVGZ; el wrapper de Nix ahora añade qt6.qtsvg a QT_PLUGIN_PATH para que Qt pueda renderizar iconos SVG; themed_icon() prueba los tamaños 22/24/16/32/48 (Breeze usa 22 px, no 24); el tema se fuerza a breeze cuando se detecta el conjunto de iconos incluido en Nix; también comprueba /etc/xdg/kdeglobals para la configuración de KDE en todo el sistema

v1.2.5 — 2026-05-23

  • MTR — My Traceroute integrado: ejecuta mtr --report, analiza la salida de texto, muestra una tabla en vivo con % de pérdida, RTT último/promedio/mejor/peor/jitter por salto, codificada por colores según la gravedad de la pérdida; modo continuo; exportación CSV + TXT
  • Prueba de velocidad — prueba de velocidad sin dependencias mediante curl + Cloudflare (speed.cloudflare.com): descarga (25 MB), subida (10 MB), ping a 1.1.1.1; hasta 5 ejecuciones guardadas en JSON; gráfico de líneas histórico (descarga/subida)
  • Visor de firewall — visor de reglas de solo lectura: analiza /etc/nftables.conf y /etc/iptables/*.rules sin root; conjunto de reglas en vivo mediante pkexec nft list ruleset; columnas: Tabla / Cadena / Regla / Puerto / Acción / Comentario; acciones codificadas por color; filtro en vivo
  • Sugerencias en la barra lateral — cada entrada de navegación muestra ahora una insignia ? sutil; al pasar el cursor se muestra un tooltip que describe lo que hace el módulo; se añade un separador vertical entre la barra lateral y el área de contenido
  • i18n — todos los módulos nuevos traducidos a francés, inglés y español

v1.2.0 — 2026-05-22

  • Adaptación del tema — soporte completo de cambio claro/oscuro en tiempo de ejecución en todas las páginas; nuevo core/theme.py con is_dark(), color_ok(), color_err(); los widgets de pintado personalizados (_Graph, _MapWidget) leen la paleta en el momento de pintar; todos los colores fijos de Catppuccin Mocha se sustituyen por roles semánticos de la paleta de Qt
  • Máscara de subred — las páginas Panel general, Interfaces y Conexiones muestran ahora la máscara de subred en notación decimal punteada (p. ej., 255.255.255.0) derivada del prefijo CIDR
  • Monitor de ancho de banda — un botón explícito Iniciar/Detener sustituye al autoarranque poco fiable al cargar la página
  • Exportar CSV/TXT — las páginas Nmap y Traceroute ofrecen ahora botones Exportar CSV y Exportar TXT (aparecen al completarse el escaneo/trazado)
  • i18n — nuevas claves de traducción para todas las funciones anteriores (fr/en/es/de)

v1.1.1 — 2026-05-16

  • Terminal SSH — reescritura completa con pyte (emulador VT100/xterm) + renderizador QPainter; 2000 líneas de scrollback, parpadeo del cursor, soporte de 256 colores
  • Traceroute visual — mapa mundial (Natural Earth 110m), geolocalización en vivo por salto (ip-api.com), zoom/pan interactivos, analizador dual (respaldo traceroute / tracepath)
  • Monitor de ancho de banda — rendimiento por interfaz en tiempo real, gráfico deslizante de 60 s, velocidades en vivo, totales y picos de sesión
  • Wake on LAN — paquete mágico en Python puro (broadcast UDP), libro de hosts persistente (JSON)
  • Escáner de IP — resolución de nombres de host mediante getent/avahi/nmblookup; dirección MAC, fabricante (OUI IEEE, 39 000 entradas), columnas de interfaz; exportación CSV/TXT actualizada
  • i18n — traducción completa fr/en/es/de para todas las páginas nuevas

v1.0.0 — 2026-05-14

Versión pública inicial — 13 módulos: Panel general, Interfaces, Wi-Fi, Calculadora de subredes, Consulta DNS, Monitor de ping, Escáner de IP, Escáner de puertos, Nmap, Whois, SNMP, SNTP/NTP, SSH.


Requisitos

Herramientas del sistema

Linux — la mayoría ya están presentes en una instalación estándar:```bash

Arch / EndeavourOS

sudo pacman -S iproute2 networkmanager bind-tools nmap whois net-snmp iputils mtr curl

Debian / Ubuntu

sudo apt install iproute2 network-manager dnsutils nmap whois snmp mtr-tiny curl

Fedora

sudo dnf install iproute NetworkManager bind-utils nmap whois net-snmp-utils mtr curl

root@kitploit:~
**macOS** — instalar mediante [Homebrew](https://brew.sh):```bash
# Required
brew install nmap mtr curl

# Optional — enable additional modules
brew install whois          # WHOIS page
brew install net-snmp       # SNMP page (snmpwalk / snmpget)
brew install samba          # SMB scan with credentials (smbclient)

macOS incluye ping, dig, traceroute, netstat, ifconfig, smbutil y route de forma nativa. networksetup y scutil son herramientas integradas de macOS, no necesitan instalación. La búsqueda de proveedores OUI en IP Scanner tampoco necesita instalación: la base de datos manuf de Wireshark se descarga automáticamente en segundo plano la primera vez que se usa y se guarda en caché localmente.

Herramientas opcionales

Python

  • Python 3.11+
  • PySide6 6.6+
  • ptyprocess 0.7+
  • pyte 0.8+ (pip install pyte or sudo pacman -S python-pyte)
  • tftpy 0.8+ (pip install tftpy or sudo pacman -S python-tftpy) — módulo de transferencia de archivos

Instalación

Opción 1 — Arch Linux / Manjaro / EndeavourOS (AUR)```bash

yay -S nmlinux

root@kitploit:~
Todas las dependencias (PySide6, ptyprocess, pyte, nmcli, …) se gestionan automáticamente.

### Opción 2 — NixOS / Nix

Ejecuta directamente con el `flake.nix` incluido — no se necesita instalación en todo el sistema:```bash
git clone https://github.com/thongor77/nmlinux.git
cd nmlinux
nix run .

O entra en un shell de desarrollo:```bash nix develop python3 -m nmlinux.main

root@kitploit:~
Todas las dependencias de Python (PySide6, ptyprocess, pyte, tftpy) y herramientas del sistema (nmcli, nmap, freerdp, vncviewer, mtr, avahi-browse…) se proporcionan automáticamente mediante el wrapper de Nix.

### Opción 4 — AppImage (cualquier distro Linux, sin instalación)

Descarga `NMLinux-x.y.z-x86_64.AppImage` desde la [última versión](https://github.com/thongor77/nmlinux/releases/latest):```bash
chmod +x NMLinux-*.AppImage
./NMLinux-*.AppImage

No se requiere instalación — Python, Qt y todos los módulos de NMLinux están incluidos en un solo archivo.
Funciona en cualquier Linux x86_64 con glibc 2.17+ (Ubuntu 16.04+, Fedora 26+, Arch, Mint, etc.).

Las herramientas de red del sistema (nmap, whois, mtr…) no están incluidas — instálalas con tu gestor de paquetes para que los módulos correspondientes funcionen. Consulta Requisitos a continuación.

Opción 5 — macOS

La forma más rápida — bootstrap en una sola línea. Funciona en una Mac completamente limpia: instala Xcode Command Line Tools, Homebrew, todas las herramientas del sistema y luego NMLinux. Es seguro volver a ejecutarlo (actualiza en lugar de reinstalar):```bash curl -fsSL https://raw.githubusercontent.com/thongor77/nmlinux/main/packaging/bootstrap_macos.sh -o /tmp/bootstrap_macos.sh && bash /tmp/bootstrap_macos.sh

root@kitploit:~
Instalar en todo el sistema (`/Applications`) en lugar de `~/Applications`:````bash
curl -fsSL https://raw.githubusercontent.com/thongor77/nmlinux/main/packaging/bootstrap_macos.sh -o /tmp/bootstrap_macos.sh && bash /tmp/bootstrap_macos.sh --system

No se necesita cuenta de desarrollador de Apple ni notarización de pago: es el mismo script de código abierto install_macos_app.sh en segundo plano, solo que se descarga y se ejecuta por ti. El script es bash simple y legible; siéntete libre de abrir /tmp/bootstrap_macos.sh y leerlo antes de ejecutarlo, o revísalo directamente aquí: packaging/bootstrap_macos.sh.

La secuencia de descargar y luego ejecutar (en lugar de canalizar directamente hacia bash) es intencional: en una Mac recién configurada, el script activa pasos interactivos anidados (el instalador de Xcode Command Line Tools, el propio instalador de Homebrew que solicita tu contraseña de sudo) que leen desde la terminal; canalizar el script directamente hacia bash puede hacer que esos avisos anidados interfieran con el flujo de entrada del propio script y lo detengan a mitad de camino. Ejecutarlo desde un archivo descargado evita eso por completo.

Instalación manual — si prefieres ejecutar cada paso tú mismo, o ya tienes Homebrew:```bash

1. Install Homebrew system tools (see Requirements above)

brew install nmap mtr curl

2. Clone and install

git clone https://github.com/thongor77/nmlinux.git cd nmlinux bash packaging/install_macos_app.sh

root@kitploit:~
Para actualizar: `git pull && bash packaging/install_macos_app.sh`  
Para desinstalar: `bash packaging/uninstall_macos.sh`  
Para instalar en todo el sistema (`/Applications`): `bash packaging/install_macos_app.sh --system`

El script instala automáticamente los siguientes paquetes de Python en el venv:
- `PySide6`, `ptyprocess`, `pyte`, `tftpy`
- `pyobjc-framework-Cocoa` — barra de menús de macOS, diálogos nativos
- `pyobjc-framework-CoreWLAN` — escaneo de SSID de Wi-Fi
- `pyobjc-framework-CoreLocation` — permiso de Servicios de Localización para nombres de Wi-Fi

**Wi-Fi en macOS 26 (Tahoe):** en el primer lanzamiento, macOS solicitará permiso para Servicios de Localización — concédelo para mostrar los nombres de las redes Wi-Fi. El permiso aparece en *Configuración del Sistema › Privacidad y Seguridad › Servicios de Localización*.

> La mayoría de los módulos funcionan en macOS sin modificación. RDP recurre a `open rdp://` (Microsoft Remote Desktop), VNC recurre a `open vnc://` (Screen Sharing integrado). El Administrador de Conexiones tiene funcionalidad reducida en macOS (`nmcli` no está disponible).

### Opción 6 — Debian / Ubuntu / Linux Mint (script de instalación)

> **Nota para usuarios de Linux Mint / Ubuntu:** `pip install` está bloqueado a nivel de sistema en Python 3.12+ (PEP 668 — `externally-managed-environment`). Usa el script de instalación proporcionado — crea un entorno virtual automáticamente e instala una entrada `.desktop`.```bash
git clone https://github.com/thongor77/nmlinux.git
cd nmlinux
bash install.sh

El script:

  • Instala las dependencias del sistema mediante apt (libgl1, python3-venv, freerdp, tigervnc…)
  • Crea un entorno virtual en ~/.local/share/nmlinux/venv
  • Instala NMLinux y sus dependencias de Python dentro del venv
  • Crea un lanzador en ~/.local/bin/nmlinux
  • Añade una entrada .desktop para que NMLinux aparezca en el menú de aplicaciones

Después de la instalación, ejecuta nmlinux desde una terminal o inícialo desde el menú de aplicaciones.

Opción 7 — Wheel (todas las distribuciones / macOS)

Descarga el .whl desde la última versión e instálalo:```bash

Arch / Fedora / macOS — no pip restrictions

pip install nmlinux-1.5.3-py3-none-any.whl

Debian / Ubuntu / Mint — install system libs first, then use pipx

Ubuntu ≤24.04:

sudo apt install libgl1 libglib2.0-0 libdbus-1-3 freerdp2-x11 tigervnc-viewer

Ubuntu 26.04+:

sudo apt install libgl1 libglib2.0-0 libdbus-1-3 freerdp3-x11 tigervnc-viewer

pipx install nmlinux-1.5.3-py3-none-any.whl

root@kitploit:~
> **Nota para Ubuntu 26.04+:** `pipx` requiere que las bibliotecas del sistema (libGL, etc.) estén instaladas primero — los comandos anteriores las cubren. Si `pipx install` falla debido a un error de compilación de PySide6, usa la **Opción 4** (script de instalación) en su lugar, que maneja todo automáticamente.

### Opción 8 — Desde el código fuente (Arch / Fedora / macOS)```bash
git clone https://github.com/thongor77/nmlinux.git
cd nmlinux
pip install PySide6 ptyprocess pyte tftpy
python3 -m nmlinux.main

Opción 9 — Entrada de escritorio (KDE / GNOME / etc.)

Copia el archivo .desktop para que NMLinux aparezca en tu lanzador de aplicaciones:```bash cp data/nmlinux.desktop ~/.local/share/applications/ update-desktop-database ~/.local/share/applications/

root@kitploit:~
Luego edita la ruta de `Exec=` en el archivo si es necesario.

---

## Ejecución```bash
./nmlinux.sh
# or, after pip install:
nmlinux
# or directly:
python3 -m nmlinux.main

Estructura del proyecto```

nmlinux/ core/ i18n.py — Translation system (8 languages: fr/en/es/de/it/pt/ja/zh), tr(key) function icons.py — themed_icon(): 21 bundled Lucide SVG icons via QSvgRenderer theme.py — is_dark(), color_ok(), color_err(): runtime light/dark helpers settings.py — AppSettings dataclass, JSON persistence ssh.py — SshConnection dataclass, SshStore rdp.py — RdpConnection dataclass, RdpStore, find_xfreerdp() vnc.py — VncConnection dataclass, VncStore, find_vncviewer() terminal.py — SshWorker (QThread) + PTY via ptyprocess, emits raw bytes tls_watchlist.py — TlsWatchlist: background cert expiry checker, JSON persistence http_server.py — ThreadedHTTPServer: directory listing, GET/PUT/POST, port binding tftp_helper.py — TftpServerThread: tftpy wrapper, configurable port and root help_content.py — Module contextual help strings (all 8 languages) cli_bar.py — CliBar singleton: pedagogical CLI equivalent bar export_dialog.py — open_export_dialog(): QFileDialog with live extension update command_palette.py — CommandPalette (Ctrl+P): fuzzy search across 29 modules export_manager.py — collect_snapshot(), to_json/text/markdown/pdf, save_export() pages/ about.py — About page (credits, tools & services) bandwidth.py — Bandwidth Monitor: per-interface 60s graph, live stats connection_manager.py — Connection Manager: nmcli profiles, connect/disconnect/edit dashboard.py — Dashboard dns.py — DNS Lookup file_transfer.py — File Transfer: TFTP + HTTP server, live log, pkexec for port 69 firewall.py — Firewall Viewer: nftables + iptables parser, live via pkexec help_page.py — Contextual help overlay hosts.py — Hosts File: view/edit /etc/hosts, toggle entries, save via pkexec interfaces.py — Network Interfaces ip_scanner.py — IP Scanner mtr.py — MTR: mtr --report parser, live hop stats table, export nmap_scan.py — Nmap ping.py — Ping Monitor port_scanner.py — Port Scanner rdp.py — Remote Desktop: RDP profiles, launches xfreerdp settings.py — Settings page smb_nfs.py — SMB/NFS Browser: smbclient + showmount snmp.py — SNMP sntp.py — SNTP / NTP speedtest.py — Speed Test: curl + Cloudflare, history graph ssh.py — SSH page (connection manager + terminal) ssh_keys.py — SSH Key Manager: list/generate/deploy/delete key pairs subnet.py — Subnet Calculator terminal_view.py — TerminalView: pyte VT100 emulator + QPainter renderer tls.py — TLS Inspector + TLS Watchlist: cert details, background expiry monitor topology.py — Topology Map: nmap -sn, interactive graph, zoom/pan traceroute.py — Visual Traceroute: world map, geolocation, zoom/pan vnc.py — VNC: connection profiles, launches vncviewer whois.py — Whois wifi.py — Wi-Fi wol.py — Wake on LAN: magic packet, persistent host book assets/ icons/ — 21 bundled Lucide SVG icons (#60a5fa) world.geojson — Natural Earth 110m countries (map background) window.py — MainWindow (sidebar + QStackedWidget) main.py — Entry point

root@kitploit:~
---

## Compatibilidad con entornos de escritorio

Desde la v1.2.7, NMLinux utiliza 21 iconos SVG de [Lucide](https://lucide.dev) incluidos, renderizados en tiempo de ejecución mediante `QSvgRenderer`. La aplicación ya no depende de ningún tema de iconos del sistema (Breeze, Adwaita, Papirus…) y se muestra correctamente en KDE, GNOME, XFCE y otros. El estilo Qt se adapta automáticamente al escritorio en ejecución.

---

## Limitaciones

### Linux
Soporte completo — los 29 módulos disponibles.

### macOS
La mayoría de los módulos funcionan directamente, ya que utilizan herramientas disponibles en ambas plataformas (`ssh`, `dig`, `ping`, `curl`, `nmap`, `openssl`…).

**9 módulos requirieron una adaptación explícita para macOS** (rutas de código duales que detectan la plataforma al inicio): Dashboard, Interfaces, Wi-Fi, Topology, Bandwidth, Firewall, Connection Manager, Hosts File, MTR — estos usan comandos nativos de macOS (`ifconfig`, `networksetup`, `scutil`, `pfctl`, `system_profiler`…) en lugar de sus equivalentes de Linux.

**Módulos con soporte limitado o sin soporte en macOS:**

| Módulo | Estado | Notas |
|--------|--------|-------|
| **RDP** | ✓ macOS | Recurre a `open rdp://` → Microsoft Remote Desktop (App Store) |
| **VNC** | ✓ macOS | Recurre a `open vnc://` → Screen Sharing (integrado, sin instalación) |
| **IP Scanner** | ✓ macOS | Usa `socket.gethostbyaddr()` — Python nativo, sin herramientas adicionales |
| **SMB** | ✓ macOS | Usa `smbutil view` (integrado) en lugar de `smbclient` |
| **NFS** | ✓ macOS | `showmount` integrado; análisis de cabeceras adaptado |
| **Connection Manager** | ⚠ Reducido | Editar/eliminar requieren `nmcli` (solo Linux); la vista de lista funciona |

### General
- Sin integración con root/polkit — las herramientas que requieren privilegios elevados (algunos modos de Nmap, sockets raw) deben ejecutarse con `sudo`; en macOS, la elevación de privilegios utiliza `osascript` + privilegios de administrador
- El reenvío del agente SSH requiere un agente SSH activo (`SSH_AUTH_SOCK`); en macOS, esto lo gestiona automáticamente el sistema, sin necesidad de configuración manual

---

## Créditos y agradecimientos

- **[Anthropic](https://www.anthropic.com)** — Claude Code, el asistente de IA utilizado para construir este proyecto
- El autor, por la visión, las pruebas y la dirección

---

## Apoya el proyecto

Si NMLinux te resulta útil, considera apoyar su desarrollo:

- **PayPal** — [Dona a través de PayPal](https://www.paypal.com/donate/?business=JFQGY7NU3ANCN&no_recurring=0&item_name=Every+donation%2C+no+matter+how+small%2C+helps+me+keep+this+project+alive.+Thank+you%21%0A&currency_code=EUR)
- **Bitcoin** — `bc1qspe0tky7552qas72wgn8w9dswr0dxlv24w39t6ztjqk3nz6kc5tqv753a4`

---

## Licencia

GPL-2.0 — consulta [LICENSE](https://github.com/thongor77/nmlinux/blob/HEAD/LICENSE).

Este proyecto es una reimplementación independiente. No se utilizó ni se tradujo ningún código de NETworkManager.
Descargar herramienta
flatpak-spawn --host
TIOCSCTTY
EPERM
script
  • Panel — gráfico de latencia de la puerta de enlace: minigráfico de latencia en vivo actualizado cada 2 segundos; con código de colores (<20 ms verde / 20–100 ms naranja / >100 ms rojo / tiempo de espera agotado rojo)
  • Panel — resumen de la Lista de vigilancia TLS: la tarjeta de estado del Panel refleja automáticamente el estado de la Lista de vigilancia TLS (OK / por caducar / alerta) sin volver a consultar
  • Panel — redimensionado del mapa geográfico: el mapa mundial ahora se expande horizontalmente cuando se redimensiona la ventana
  • Topología — panel de detalles muestra la clase de dispositivo detectada (Impresora, Smartphone, NAS…) en lugar de la etiqueta genérica «Host»; i18n en los 8 idiomas
  • Traceroute — auto-zoom — el mapa mundial se amplía y centra automáticamente en el cuadro delimitador de los saltos geolocalizados al final de cada ruta; se desactiva cuando el usuario desplaza o hace zoom manualmente; se restablece en el siguiente traceroute; clic derecho para volver a la vista completa del mundo
  • Módulos sin cambios (herramientas idénticas en ambas plataformas): DNS, Escaneo Nmap, SNMP, Whois
  • HerramientaCaracterísticaLinuxmacOS
    xfreerdp / xfreerdp3Escritorio remoto (RDP)Arch: freerdp · Ubuntu ≤24.04: freerdp2-x11 · Ubuntu 26.04+: freerdp3-x11opcional — recurre a Microsoft Remote Desktop (open rdp://)
    vncviewerVNCArch: tigervnc · Debian: tigervnc-vieweropcional — recurre a Screen Sharing de macOS (open vnc://, integrado)
    nm-connection-editorEditar conexiones desde el Administrador de conexionesArch: nm-connection-editor— (en su lugar se abre System Preferences)
    tracerouteAlternativa a traceroute (se usa tracepath de forma predeterminada)Arch: tracerouteintegrado
    mount.cifs (cifs-utils)Montar recursos compartidos SMB desde el menú contextualArch/Debian: cifs-utilsintegrado (mount_smbfs)
    iperf3Prueba de velocidad — pestaña LANArch: iperf3 · Debian/Ubuntu: iperf3brew install iperf3