Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
nmlinux — Linux용 통합 네트워크 툴킷 — Python 3 + PySide6 | Kitploit
도구/GitHubGitHub/thongor77/nmlinux
Network MappingPort ScanningInformation GatheringDNS Analysis
GitHubthongor77/nmlinux

nmlinux

Linux용 통합 네트워크 툴킷 — Python 3 + PySide6

저장소 보기
9212127일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

NMLinux · v1.7.12

Version Python License: GPL-2.0 Platform Languages Donate Bitcoin

Linux 및 macOS용 통합 네트워크 툴킷 — 검사, 연결, 진단.

NMLinux는 29개의 네트워크 모듈을 하나의 창에 통합한 단일 GUI입니다: 인터페이스 모니터링, 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 — 명확하지 않은 모든 기술적 결정, 거부된 대안, 그리고 발견되어 수정된 버그(AI가 유발한 것 포함)와 그 근거가 기록되어 있습니다.
  • docs/Architecture.md 및 docs/Carte-des-Modules.md — 출시되는 것과 동기화된 실제 코드 구조.
  • i18n 일관성 검사 — 릴리스 전마다 실행되어 8개 지원 언어에서 누락된 번역 키를 찾아냅니다.

이러한 것들이 존재하는 이유는 AI를 신뢰할 수 없기 때문이 아닙니다. 검증 프로세스 없이는 어떤 것도 출시되어서는 안 되기 때문입니다 — 직접 작성한 코드도 포함해서 말입니다. 출력물과 검증 방식을 판단하세요. 작성에 도움을 준 도구가 아니라.

그래도 버그를 찾았나요? 그건 부끄러운 일이 아니라 유용한 일입니다 — 이슈를 열어주세요.


커뮤니티

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토폴로지
DashboardTopology
TracerouteWi-Fi
TracerouteWi-Fi

macOS

DashboardTraceroute
macOS DashboardmacOS Traceroute

변경 로그

v1.7.12 — 2026-08-12

  • Traceroute — 수정: Flatpak(v1.7.11, 아래 참조 — 현재 제거됨)에서 traceroute가 호스트에 실제 traceroute 바이너리가 설치되지 않았음에도 호스트 shim을 통해 항상 PATH에서 확인되어, 워커가 tracepath로 폴백하지 못하고 홉 없이 즉시 완료되며 오류도 표시되지 않았습니다. 이제 traceroute가 파싱 가능한 출력을 전혀 생성하지 않으면 실패 이유와 관계없이 tracepath로 폴백합니다.
  • SSH 터미널 — askpass 수정: DISPLAY/WAYLAND_DISPLAY가 설정된 경우(모든 GUI 세션) ssh에 깨끗한 tty가 없으면 임베디드 터미널 대신 $SSH_ASKPASS를 사용해 비밀번호 프롬프트를 시도할 수 있습니다 — askpass 헬퍼가 설치되지 않으면 인증이 조용히 실패합니다. 이제 SSH_ASKPASS_REQUIRE=never가 비밀번호 프롬프트가 항상 터미널 자체를 통해 진행되도록 강제합니다.
  • Flatpak 패키징 제거: v1.7.11에 포함된 로컬 KDE Linux 매니페스트는 중단되었습니다. 위의 SSH 비밀번호 프롬프트 버그를 조사하면서 커널 수준 제한이 드러났습니다: flatpak-spawn --host를 통해 중계된 프로세스는 전달된 pty의 제어 터미널 소유자가 될 수 없습니다(TIOCSCTTY가 으로 거부됨 — 다른 무관한 세션이 이미 소유하고 있음; 이는 의도적인 커널 보안 경계이며 버그가 아닙니다). 유일한 해결 방법(, 새 pty 할당)은 비밀번호 프롬프트를 수정하지만 해당 세션의 실시간 터미널 크기 전파를 깨뜨립니다 — Flatpak을 아예 제공하지 않는 것보다 더 나쁜 절충으로 판단되었습니다. AUR과 AppImage가 향후 지원되는 Linux 설치 경로입니다.

v1.7.11 — 2026-08-03

  • Flatpak 패키징(KDE Linux): packaging/flatpak/ 아래의 로컬 빌드 매니페스트가 KDE Linux 및 기타 Flatpak 전용 배포판을 대상으로 합니다. nmlinux가 외부로 호출하는 호스트 CLI 도구(nmcli, pkexec, mount.cifs, ssh, nmap, …)는 각각을 샌드박싱하는 대신 PATH의 flatpak-spawn --host shim을 통해 브리지됩니다; PySide6는 PyPI 휠이 아닌 Flathub의 io.qt.PySide.BaseApp에서 가져옵니다. Flathub에는 게시되지 않습니다 — AppImage가 이미 그런 것처럼 packaging/flatpak/build-bundle.sh로 단일 .flatpak 번들이 빌드되어 각 릴리스에 첨부됩니다. 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 테스트에는 지터/손실이 표시됩니다. 이슈 #6에서 제안됨
  • 새 선택적 의존성: iperf3 — LAN 탭을 활성화하려면 설치하세요; 탭은 배너를 표시하고 그렇지 않으면 비활성 상태로 유지됩니다

v1.7.6 — 2026-07-05

  • Asset Inventory — 오른쪽 클릭 새로고침: 이미 스캔된 하나 이상의 행(다중 선택 지원)을 오른쪽 클릭하고 "선택 항목 새로고침"을 선택하여 전체 네트워크 스캔을 다시 실행하는 대신 해당 호스트만 제자리에서 다시 스캔합니다
  • Asset Inventory — SSH 인증 실패 피드백: 거부된 SSH 로그인은 이제 조용히 실패하는 대신 "SSH 인증 실패"를 표시하며, Nmap으로 감지된 호스트명/OS 기준 정보를 잃지 않습니다 — 다른 구성된 자격 증명 세트가 먼저 시도된 후 DSM의 Auto Block이 올바른 비밀번호를 거부한 실제 Synology NAS에서 확인됨

v1.7.5 — 2026-07-04

  • Ping Monitor — 저장된 대상 디렉터리: 새 왼쪽 패널에서 핑 대상을(이름, 호스트, 간격) 영구 목록에 저장할 수 있어, 모니터링 중인 호스트가 앱 재시작 후에도 유지되어 다시 입력할 필요가 없습니다. 각 활성 모니터링 행의 ★ 버튼은 세션 중 언제든지 해당 호스트를 디렉터리에 저장합니다 — 앱이 예기치 않게 종료되기 전에 미리 계획할 필요가 없습니다
  • Ping Monitor — "모니터링 시작": 저장된 대상을 선택하고 저장된 간격을 재사용하여 한 번의 클릭으로 모니터링을 시작합니다

v1.7.4 — 2026-07-04

  • Asset Inventory — 일관되지 않은 스캔 결과 수정: 활성 검사가 재시도 없는 단일 1초 타임아웃 핑을 보내, 스캐너 자체의 동시 부하(최대 40개 호스트 동시 프로빙) 또는 Wi-Fi 호스트가 비콘 사이에 잠시 절전 상태일 때 실제 장치를 놓칠 수 있었습니다 — 동일한 범위를 반복 실행할 때 다른 장치 수를 반환한 실제 서브넷에서 실시간으로 확인됨. 이제 검사는 TCP 포트 프로브로 폴백하기 전에 핑을 재시도합니다
  • Asset Inventory — 새 "빈 항목 새로고침" 버튼: 스캔 후 전체 범위를 다시 스캔하는 대신 데이터를 반환하지 않은 IP만 다시 스캔합니다; 새로 발견된 호스트는 기존 결과에 병합됩니다

v1.7.3 — 2026-07-03

  • SMB — 오른쪽 클릭 메뉴에서 공유 마운트: SMB 탭에서 공유를 오른쪽 클릭하고 마운트/마운트 해제를 선택하여 안정적인 로컬 경로(~/mnt/<host>_<share>)에 마운트합니다 — 터미널 및 다른 앱에서 사용 가능한 일시적이지 않은 탐색 보기가 아닙니다. 세션 전용(fstab/systemd 영속성 없음), 자격 증명은 기존 사용자/비밀번호 필드에서 재사용됩니다. Linux는 제한된 권한의 자격 증명 파일(ps로 노출되지 않음)과 함께 pkexec mount -t cifs를 사용합니다; macOS는 mount_smbfs를 직접 사용합니다. 서버가 기본 협상을 거부할 때(오래된 NAS 장치에서 흔함) 이전 SMB 버전(vers=2.0)으로 자동 재시도합니다 — 두 시도 모두 전용 헬퍼 프로세스를 통해 단일 인증 프롬프트에서 발생합니다
  • 새 선택적 의존성: SMB 마운트용 cifs-utils(Linux); macOS에는 내장됨

v1.7.2 — 2026-07-03

  • macOS 설치 — 새 Mac에서 발견된 두 부트스트랩 버그 수정: bootstrap_macos.sh는 더 이상 Homebrew 설치 프로그램에 NONINTERACTIVE=1을 강제하지 않습니다. 이전에는 새 관리자 계정에서 sudo 비밀번호를 묻는 대신 즉시 중단되었습니다; 문서화된 원라이너는 이제 스크립트를 bash로 직접 파이프하는 대신 먼저 다운로드합니다. 중첩된 대화형 단계(Xcode CLT 설치 프로그램, Homebrew 자체의 sudo 프롬프트)가 파이프될 때 외부 스크립트의 자체 입력 스트림과 간섭할 수 있기 때문입니다
  • 범용 오른쪽 클릭 메뉴 — SMB 추가: SmbNfsPage는 v1.7.0에서 출시된 모듈 간 오른쪽 클릭 시스템에서 누락된 유일한 대상 페이지였습니다; 호스트를 오른쪽 클릭하고 SMB를 선택하면 호스트 필드가 미리 채워지고 즉시 스캔이 시작되며, 포트 445가 열린 것으로 감지되면 메뉴에서 굵게 표시됩니다
  • i18n — 나머지 Dashboard 문자열 번역: 게이트웨이 지연 시간 레이블, TLS Watchlist 카드 제목 및 상태 행이 여전히 하드코딩된 프랑스어였습니다; 이제 8개 인터페이스 언어 모두에서 번역되었습니다

v1.7.1 — 2026-07-02

  • macOS 26 (Tahoe) — Wi-Fi SSID 수정: 기본 데이터 소스를 system_profiler(위치 서비스 없이 <redacted> 반환)에서 CoreWLAN으로 전환; 앱은 이제 첫 실행 시 위치 서비스 권한을 요청합니다; Wi-Fi 페이지는 권한이 부여되면 모든 네트워크를 실제 이름으로 표시합니다
  • macOS — 연결 관리자: 연결된 SSID는 이제 CoreWLAN을 통해 읽으며, 보안 모드는 system_profiler 사용
  • macOS — SMB: NAS가 자격 증명을 요구할 때 명확한 "인증 필요" 메시지 표시; Homebrew smbclient의 잘못된 smb.conf 경고 수정
  • macOS — 첫 위치 서비스 권한 대화 상자 후 종료 시 잠재적 충돌 수정

v1.7.0 — 2026-07-02

  • 범용 오른쪽 클릭 컨텍스트 메뉴: IP 또는 호스트명이 포함된 모든 테이블에서 — 복사-붙여넣기 없이 모듈 간 직접 이동: 발견된 호스트를 오른쪽 클릭하고 Ping, 포트 스캔, Whois, DNS, Traceroute, MTR, SSH, RDP, VNC, 토폴로지에서 보기 또는 인벤토리에 추가를 선택합니다. SSH/RDP/VNC 메뉴 항목은 해당 포트가 열린 것으로 감지되면 굵게 표시됩니다. 레이블은 8개 인터페이스 언어 모두에서 완전히 번역됩니다.
  • 소스 페이지(오른쪽 클릭 작업 생성): IP 스캐너, Nmap, Ping, 포트 스캐너, Traceroute, MTR, 토폴로지(노드 오른쪽 클릭)
  • 대상 페이지(호스트 수신 및 사전 채움): Whois(set_target + 자동 쿼리), DNS(set_target 사전 채움만), Ping(set_target + 자동 시작), Traceroute(set_target + 자동 시작), MTR(set_target + 자동 시작), 포트 스캐너(set_target + 포커스), SSH / RDP / VNC(set_target은 사전 채워진 새 연결 양식 열기), 토폴로지(load_hosts는 재스캔 없이 IP 스캐너/Nmap 스캔에서 노드 주입 — 게이트웨이 자동 감지, 가장자리 그려짐, 원본 노드 빨간색으로 강조), Asset Inventory(prefill_hosts는 발견된 호스트에서 직접 자격 증명 스캔 시작, ICMP 발견 단계 건너뜀)
  • Dashboard — 게이트웨이 핑 그래프: 2초마다 업데이트되는 실시간 지연 시간 스파크라인; 색상 코드(<20 ms 녹색 / 20–100 ms 주황색 / >100 ms 빨간색 / 타임아웃 빨간색)
  • Dashboard — TLS Watchlist 요약: Dashboard의 상태 카드가 재쿼리 없이 TLS Watchlist 상태(OK / 만료 임박 / 경고)를 자동으로 반영
  • Dashboard — 지리 지도 크기 조정: 창 크기가 조정되면 세계 지도가 이제 가로로 확장됩니다

v1.6.4 — 2026-06-28

  • macOS: 메뉴 바가 이제 Python 대신 NMLinux를 표시합니다 — 근본 원인: exec()로 Python에 진입한 후 NSBundle.mainBundle()은 Qt가 QApplication 구성 중에 읽는 Python.framework 번들(CFBundleName = "Python")로 확인됩니다; 애플리케이션 메뉴가 생성되기 전에 번들의 infoDictionary()를 패치하고 AppKit을 통해 네이티브 메뉴 항목 이름을 변경하여 수정됨

v1.6.3 — 2026-06-28

  • macOS: pyobjc-framework-Cocoa를 통한 NSProcessInfo.setProcessName_을 사용한 메뉴 바 수정 첫 시도(v1.6.4로 대체됨)

v1.6.2 — 2026-06-28

  • macOS: bash 런처 스크립트를 install_macos_app.sh의 컴파일된 C 스텁으로 교체하여 macOS가 .app 번들을 실행 중인 프로세스와 올바르게 연결하도록 함; 폴백으로 setprogname 및 sys.argv[0] 재정의 추가

v1.6.1 — 2026-06-25

  • SSH 터미널 — 원격 에코 수정: 임베디드 SSH 터미널에서 입력한 키 입력이 원격 셸로 전송되었지만 다시 에코되지 않았습니다(로그인 후 키보드가 "죽은" 것처럼 보임). nmlinux가 로컬 PTY 에코를 강제로 끄고, ssh가 터미널 모드(pty-req)를 통해 해당 "에코 없음"을 원격 pty로 전파하여 원격 셸이 입력 에코를 중단했습니다. 새 Ubuntu 26.04 VM(최신 OpenSSH는 이러한 모드를 충실히 적용)에서 재현됨. 이제 터미널은 PTY를 일반 모드로 유지하고 ssh가 에코를 관리하도록 하여 실제 터미널 에뮬레이터와 일치합니다.

v1.6.0 — 2026-06-24

  • Asset Inventory — WinRM Windows(완전): Windows 방화벽이 ICMP를 차단할 때 TCP 포트 프로브를 통한 호스트 감지; PowerShell은 이제 전체 절대 경로 + **EncodedCommand(base64)**를 사용하여 cmd.exe가 파이프 |를 해석하지 못하도록 함; 관리자 권한 없는 전체 폴백 체인: OS는 ver, CPU는 레지스트리, RAM은 systeminfo, 디스크는 wmic → fsutil(로케일 인식 EN 쉼표 / FR 공백) → dir /-C
  • Asset Inventory — 다중 자격 증명 SSH: 여러 SSH 자격 증명 세트 지원; macOS 디스크 수정(/System/Volumes/Data), Apple Silicon CPU 폴백(hw.model), Synology(/volume1), Unraid(/mnt/user)
  • 버그 수정: WinRM 오류가 조용한 폴백 대신 테이블에 표시됨; WinRM/SNMP 호스트 감지가 더 이상 SSH 자격 증명 존재로 차단되지 않음; pywinrm 타임아웃 수정

v1.5.3 — 2026-06-24

  • macOS .app — Homebrew 도구 감지: Homebrew로 설치된 sshpass, nmap 및 snmpget이 이제 절대 경로를 사용하여 발견되고 호출됩니다; macOS의 .app 번들은 Homebrew PATH(/opt/homebrew/bin, /usr/local/bin)를 상속하지 않으므로 이전에 설치된 도구가 조용히 무시되었습니다
  • macOS 업데이트 경로: 저장소 루트에서 git pull && bash packaging/install_macos_app.sh 실행이 이제 문서화된 업그레이드 방법입니다; 스크립트는 자체 venv(~/.local/share/nmlinux/venv)를 관리하며 시스템 수준 pip 또는 pipx가 필요하지 않습니다

v1.5.2 — 2026-06-24

  • Asset Inventory — 새 모듈(29번째); CIDR 범위를 스캔하고 SSH, WinRM, SNMP 또는 Nmap을 통해 각 호스트에서 OS, CPU, RAM, 디스크 및 가동 시간을 수집합니다; 프로토콜별 여러 자격 증명 세트 지원(각각 순서대로 시도); 제로 보존 정책: 자격 증명은 디스크에 기록되지 않으며 스캔 후 메모리에서 지워집니다; 결과를 JSON, CSV 또는 Markdown으로 내보내기; Dashboard IP 지리적 위치 섹션에 애니메이션 지리 지도 추가
  • SSH 수집 수정: 디스크 명령 awk 따옴표 오류 수정; free -h를 BusyBox 호환 free로 교체; macOS 코드 경로는 이제 OS 이름에 sw_vers, Apple Silicon CPU에 hw.model 폴백, APFS 사용자 데이터 볼륨에 /System/Volumes/Data 사용; Synology/Unraid 볼륨(/volume1, /mnt/user)이 루트보다 먼저 감지됨; df | tail -1 || … 거짓 성공 패턴을 test -d 가드로 수정; lsb_release 출력에서 주변 따옴표 제거; 여러 SSH/WinRM 자격 증명 세트 지원(호스트별 각각 순서대로 시도)

v1.5.0 — 2026-06-17

  • 파일 전송 서버 — 앱에서 직접 경량 TFTP 또는 HTTP 서버를 시작/중지하는 새 모듈; 일반적인 사용 사례: 라우터, 스위치 또는 프린터 구성 백업 및 복원; 한 번에 하나의 서버만 활성(TFTP 또는 HTTP), 구성 가능한 포트 및 루트 디렉터리, 로컬 IP가 클립보드 복사 버튼으로 표시됨; HTTP는 디렉터리 목록(LAN의 모든 브라우저에서 탐색), GET(다운로드) 및 POST/PUT(업로드) 포함; TFTP는 GET 및 PUT(양방향) 지원, 포트 69는 루트 필요 — 앱은 권한 오류 시 "루트로 시작(pkexec)" 버튼 표시; 실시간 전송 로그 테이블(타임스탬프, 파일명, 클라이언트 IP, 방향 ↑/↓, 크기); 포트 순회 보호; 8개 인터페이스 언어; 새 의존성: tftpy

v1.4.3 — 2026-06-14

  • TLS Watchlist 수정: 자체 서명 및 신뢰할 수 없는 인증서가 이제 녹색 대신 "⚠ 유효하지 않음 / 신뢰할 수 없는 인증서"(주황색)로 올바르게 표시됨; SSL 예외 포착이 모든 ssl.SSLError 하위 클래스를 포함하도록 확장됨; 항목은 이제 백그라운드 검사 중 "… (확인 중)"을 표시하고 호스트에 연결할 수 없을 때 "— (연결 불가)"를 표시합니다

v1.4.2 — 2026-06-14

  • TLS Watchlist — 인증서 만료를 모니터링할 호스트명의 영구 목록; + Watch(현재 호스트/포트 사용) 또는 패널에서 수동으로 호스트 추가; 백그라운드 검사는 실행 2초 후 자동으로 실행됩니다; 사이드바 "TLS Inspector" 항목은 색상 점을 표시합니다: 인증서가 만료되면 빨간색, 30일 내 만료 예정이면 주황색; 패널의 재검사 버튼; 목록은 항목별 상태(✓ / ⚠ / EXPIRED)를 색상 코드와 함께 표시합니다

v1.4.1 — 2026-06-14

  • macOS — IP 스캐너: macOS에서 MAC 주소, 공급업체 및 인터페이스 조회 수정; _arp_entry()는 이제 macOS에서 arp -n <ip>를 호출하고 /proc/net/arp(Linux 전용)를 읽는 대신 출력 형식(? (IP) at AA:BB:CC on en0)을 파싱합니다; 네 개의 스캐너 열이 모두 macOS에서 올바르게 채워집니다
  • VNC 도움말: Linux에는 기본적으로 VNC 서버가 없으며 설치할 수 있는 일반적인 옵션(x11vnc, tigervnc-server, wayvnc)을 설명하는 메모가 8개 언어 모두에 추가됨

v1.4.0 — 2026-06-14- macOS — IP 스캐너: Linux 전용인 getent를 Python의 socket.gethostbyaddr()로 대체하여 크로스 플랫폼 역방향 DNS 조회 지원; 호스트 이름 조회가 이제 추가 도구 없이 macOS에서 기본적으로 동작

  • macOS — SMB 브라우저: smbclient(Homebrew samba 필요)에서 smbutil view(macOS 내장 도구)로 전환; SMB 공유 목록이 이제 설치 없이 macOS에서 동작
  • macOS — NFS 브라우저: showmount는 macOS에 내장되어 있지만 --no-headers를 지원하지 않음; macOS에서는 플래그를 제거하고 파서에서 헤더 줄을 건너뜀; NFS 내보내기 목록이 이제 기본적으로 동작
  • macOS — RDP: xfreerdp가 없을 경우 open rdp:// URL 스킴으로 대체; 설치된 경우 Microsoft Remote Desktop(App Store)을 호스트, 포트, 사용자 이름, 도메인이 미리 채워진 상태로 실행
  • macOS — VNC: vncviewer가 없을 경우 open vnc:// URL 스킴으로 대체; macOS 화면 공유(내장, 설치 불필요) 실행

v1.3.9 — 2026-06-13

  • SSH 에이전트 포워딩 — SSH 연결 양식에 새 "에이전트 포워딩" 체크박스 추가; ssh 명령에 -A 추가; 개인 키를 복사하지 않고 서버 간 점프 가능(PC → A → B); 활성 SSH 에이전트(SSH_AUTH_SOCK) 필요; 상황별 도움말이 8개 언어 모두 업데이트됨

v1.3.8 — 2026-06-13

  • 명령 팔레트(Ctrl+P) — 27개 모듈 중 어느 곳으로든 즉시 키보드 탐색; 이름 및 키워드 퍼지 검색(예: "firewall", "tls", "ssh key", "scan"); 위/아래 화살표 + Enter 또는 단일 클릭으로 이동; 앱 어디서든 Ctrl+P로 열기
  • 내보내기 관리자 — 파일 → 네트워크 보고서 내보내기…에서 전체 네트워크 스냅샷(인터페이스, 라우트, DNS 리졸버)을 JSON, Markdown, 일반 텍스트 또는 PDF로 내보내기(선택 사항: pip install reportlab)
  • 모듈 수준 내보내기 버튼 — 인터페이스, DNS, 방화벽, SSH 연결, 연결 관리자 페이지에 내보내기 버튼 추가; 각 페이지는 선택한 형식으로 현재 데이터를 내보내며, 형식 필터 변경 시 파일 확장자가 실시간으로 업데이트됨

v1.3.6 — 2026-06-12

  • 토폴로지 — 장치 아이콘 — 각 노드는 이제 일반 원 대신 장치 유형(라우터/와이파이, 컴퓨터/노트북, 프린터, NAS/서버, 스마트폰, 네트워크 스위치, Raspberry Pi)에 맞는 Lucide SVG 아이콘을 표시; 새 번들 SVG 아이콘 5개(printer, server, smartphone, cpu, laptop)
  • 토폴로지 — mDNS 감지 — 장치 유형은 avahi-browse를 통해 감지됨(선택 사항, nmap 스캔과 병렬 실행); 프린터(_ipp._tcp, PDL Printer), Android 휴대폰 및 TV(_googlecast._tcp, _androidtvremote2._tcp), Apple Mac(AirPlay TXT의 am=Mac16,x 모델), NAS 장치(Synology가 model=Xserve 보고), KDE Connect 데스크톱 식별; avahi를 사용할 수 없을 때 MAC 벤더 OUI 및 호스트 이름 휴리스틱으로 대체
  • 토폴로지 — 세부 패널 — 일반 "호스트" 레이블 대신 감지된 장치 클래스(프린터, 스마트폰, NAS 등)를 표시; 8개 언어 모두 i18n 지원
  • Traceroute — 자동 확대/축소 — 각 경로 종료 시 지리적 위치가 확인된 홉의 경계 상자에 맞춰 세계 지도가 자동으로 확대/중앙 정렬; 사용자가 수동으로 이동하거나 확대/축소하면 비활성화; 다음 traceroute에서 복원; 오른쪽 클릭 시 전체 세계 보기로 재설정

v1.3.5 — 2026-06-06

  • macOS 호환성 — 9개 네트워크 모듈 모두 Linux 동작을 깨지 않고 macOS에서 실행 가능; 각 모듈은 시작 시 플랫폼을 감지(_IS_MACOS)하여 기본 macOS 명령으로 분기: route -n get default, ifconfig, scutil --dns, networksetup, system_profiler SPAirPortDataType, pfctl, netstat -ib; 권한 상승은 pkexec 대신 osascript + with administrator privileges 사용; 고정폭 글꼴은 Monospace 대신 Menlo 사용
  • Linux/macOS 이중 경로 모듈: 대시보드, 인터페이스, Wi-Fi, 토폴로지, 대역폭, 방화벽(pf.conf + pfctl), 연결 관리자, 호스트 파일, MTR
  • 변경 없는 모듈(두 플랫폼에서 동일한 도구): DNS, Nmap 스캔, SNMP, Whois

v1.3.2 — 2026-06-06

  • i18n 8개 언어로 확장 — Italiano, Português, 日本語(일본어), 中文(중국어 간체) 추가; 전체 UI(27개 모듈 전체, 약 720개 번역 키)가 이제 FR / EN / ES / DE / IT / PT / JA / ZH로 제공됨; 설정에서 언어 변경 후 재시작 프롬프트 표시
  • 8개 언어 상황별 도움말 — ? 배지 패널(설명, 사용 예시, 동등한 CLI 명령)이 이제 모든 모듈에 대해 8개 언어 모두 지원; 이전에는 JA와 ZH가 영어로 대체됨
  • 버그 수정 — SMB/NFS 및 호스트 파일의 탐색 툴팁이 선택한 언어와 관계없이 프랑스어로 표시되던 문제 수정; 누락된 nav_hint_smb_nfs 및 nav_hint_hosts 키를 프랑스어 외 7개 언어 블록에 추가

v1.3.1 — 2026-06-05

  • SSH 키 관리자 — ~/.ssh/의 모든 키 쌍 나열(파일, 유형, 비트, 주석, SHA256 지문); 선택적 암호가 있는 Ed25519 또는 RSA 4096 키 생성(불일치 감지, 유형별 자동 파일 이름); 공개 키를 클립보드에 복사; 인라인 터미널에서 ssh-copy-id를 통해 원격 서버에 배포(암호 프롬프트용 stdin 지원); 확인 후 키 쌍 삭제; 누락 시 ~/.ssh/ 자동 생성; i18n: fr / en / es / de

v1.3.0 — 2026-06-03

  • TLS / SSL 검사기 — 모든 서버의 인증서 검사: 주체 CN, SAN, 발급자, 유효 기간(색상 코드: 녹색 / 주황색 < 30일 / 빨간색 만료), 일련 번호, TLS 프로토콜, 암호 스위트 및 인증서 체인(openssl s_client 통해); 유효, 만료 및 자체 서명 인증서 모두 지원; 연결할 수 없는 호스트에 대한 친절한 오류 메시지
  • SMB / NFS 브라우저 — 모든 서버에서 공유 및 내보내기 목록 표시; SMB 탭: 선택적 자격 증명이 있는 smbclient -L, 공유 이름/유형/설명 표시; NFS 탭: showmount -e, 내보내기 경로 및 액세스 목록 표시; 배포판별 설치 지침과 함께 누락된 도구 감지
  • 호스트 파일 편집기 — /etc/hosts 보기 및 편집; 활성화/비활성화 토글이 있는 테이블, 대화 상자를 통한 항목 추가/편집/삭제; IP 또는 호스트 이름으로 필터링; pkexec cp로 저장(polkit 인증 대화 상자)
  • install.sh — Debian / Ubuntu / Linux Mint용 새 스크립트: ~/.local/share/nmlinux/venv에 venv 생성, apt로 시스템 종속성 설치, 런처 및 .desktop 항목 생성(PEP 668 externally-managed-environment 오류 수정)

v1.2.9 — 2026-05-30

  • VNC — VNC 연결 프로필 관리를 위한 새 모듈; SSH 및 RDP와 같은 그룹/하위 그룹; vncviewer(TigerVNC) 실행; macOS ARD와 호환(DH30 인증은 vncviewer에서 기본 처리); 암호는 절대 저장되지 않음; 배포판별 설치 지침과 함께 누락된 vncviewer 감지
  • 정보 — 도구 및 서비스 — 앱이 의존하는 모든 타사 도구 및 API를 나열하는 새 섹션
  • 사이드바 i18n — 23개 탐색 툴팁 모두 이제 FR/EN/ES/DE로 번역됨(하드코딩된 프랑스어였음); 레이블 수정: 토폴로지, 연결, 서브넷

v1.2.8 — 2026-05-30

  • 원격 데스크톱(RDP) — Windows RDP 연결 프로필 관리를 위한 새 모듈; SSH와 같은 그룹/하위 그룹; 외부 프로세스로 xfreerdp 실행; 연결 시 암호 프롬프트, 절대 저장되지 않음; 필드: 호스트, 포트, 사용자 이름, 도메인, 해상도, 전체 화면; 배포판별 설치 지침(Arch / Debian / Fedora)과 함께 누락된 xfreerdp 감지

v1.2.7 — 2026-05-26

  • 번들 Lucide 아이콘 — Lucide(MIT)의 SVG 아이콘 21개가 이제 assets/icons/에 번들됨; QSvgRenderer를 통해 런타임에 렌더링; #60a5fa 색상; 앱은 더 이상 시스템 아이콘 테마(Breeze, Adwaita, Papirus 등)가 필요 없음

v1.2.6 — 2026-05-24

  • GNOME / Adwaita 호환성 — 비-KDE 데스크톱에서 아이콘 수정: main.py는 이제 gsettings를 통해 GTK 아이콘 테마를 자동 감지하여 Qt에 적용; Wi-Fi, Traceroute, 속도 테스트, 인터페이스, 포트 스캐너, 방화벽, MTR에 대한 확장 대체 체인; themed_icon()은 이제 테마 아이콘을 수락하기 전에 실제 픽스맵이 존재하는지 검증
  • NixOS / KDE 호환성 — NixOS에서 모든 아이콘 수정: Breeze 6.x는 SVGZ 전용 아이콘 제공; Nix 래퍼는 이제 qt6.qtsvg를 QT_PLUGIN_PATH에 추가하여 Qt가 SVG 아이콘을 렌더링할 수 있게 함; themed_icon()은 크기 22/24/16/32/48을 시도(Breeze는 24px가 아닌 22px 사용); Nix 번들 아이콘 세트가 감지되면 테마를 breeze로 강제; 시스템 전체 KDE 구성을 위해 /etc/xdg/kdeglobals도 확인

v1.2.5 — 2026-05-23

  • MTR — 내장 My Traceroute: mtr --report 실행, 텍스트 출력 파싱, 홉별 손실 %, RTT 최근/평균/최고/최저/지터가 포함된 실시간 테이블 표시, 손실 심각도별 색상 코드; 연속 모드; CSV + TXT 내보내기
  • 속도 테스트 — curl + Cloudflare(speed.cloudflare.com)를 통한 종속성 없는 속도 테스트: 다운로드(25MB), 업로드(10MB), 1.1.1.1에 핑; 최대 5회 실행이 JSON에 저장; 이력 선 그래프(다운로드/업로드)
  • 방화벽 뷰어 — 읽기 전용 규칙 집합 뷰어: 루트 없이 /etc/nftables.conf 및 /etc/iptables/*.rules 파싱; pkexec nft list ruleset을 통한 실시간 규칙 집합; 열: 테이블 / 체인 / 규칙 / 포트 / 동작 / 설명; 색상 코드 동작; 실시간 필터
  • 사이드바 힌트 — 각 탐색 항목에 이제 미묘한 ? 배지 표시; 호버 시 모듈이 수행하는 작업을 설명하는 툴팁 표시; 사이드바와 콘텐츠 영역 사이에 세로 구분선 추가
  • i18n — 모든 새 모듈이 프랑스어, 영어, 스페인어로 번역됨

v1.2.0 — 2026-05-22

  • 테마 적응 — 모든 페이지에서 전체 런타임 라이트/다크 전환 지원; is_dark(), color_ok(), color_err()가 있는 새 core/theme.py; 사용자 정의 페인터 위젯(_Graph, _MapWidget)은 페인트 시 팔레트를 읽음; 모든 하드코딩된 Catppuccin Mocha 색상을 의미론적 Qt 팔레트 역할로 대체
  • 서브넷 마스크 — 대시보드, 인터페이스 및 연결 페이지에서 이제 CIDR 접두사에서 파생된 점으로 구분된 십진 서브넷 마스크(예: 255.255.255.0) 표시
  • 대역폭 모니터 — 페이지 로드 시 신뢰할 수 없는 자동 시작을 대체하는 명시적 시작/중지 버튼
  • CSV/TXT 내보내기 — Nmap 및 Traceroute 페이지에 이제 CSV 내보내기 및 TXT 내보내기 버튼 제공(스캔/추적 완료 후 표시)
  • i18n — 위 모든 기능에 대한 새 번역 키(fr/en/es/de)

v1.1.1 — 2026-05-16

  • SSH 터미널 — pyte(VT100/xterm 에뮬레이터) + QPainter 렌더러로 완전 재작성; 2000줄 스크롤백, 커서 깜박임, 256색 지원
  • 시각적 Traceroute — 세계 지도(Natural Earth 110m), 홉별 실시간 지리적 위치(ip-api.com), 대화형 확대/축소, 이중 파서(traceroute / tracepath 대체)
  • 대역폭 모니터 — 인터페이스별 실시간 처리량, 60초 슬라이딩 그래프, 실시간 속도, 세션 합계 및 최고치
  • Wake on LAN — 순수 Python 매직 패킷(UDP 브로드캐스트), 영구 호스트 목록(JSON)
  • IP 스캐너 — getent/avahi/nmblookup을 통한 호스트 이름 확인; MAC 주소, 벤더(IEEE OUI 39K 항목), 인터페이스 열; CSV/TXT 내보내기 업데이트
  • i18n — 모든 새 페이지에 대한 전체 fr/en/es/de 번역

v1.0.0 — 2026-05-14

최초 공개 릴리스 — 13개 모듈: 대시보드, 인터페이스, Wi-Fi, 서브넷 계산기, DNS 조회, 핑 모니터, IP 스캐너, 포트 스캐너, Nmap, Whois, SNMP, SNTP/NTP, SSH.


기능


요구 사항

시스템 도구

Linux — 대부분 표준 설치에 이미 포함되어 있음:```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** — [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는 ping, dig, traceroute, netstat, ifconfig, smbutil, route를 기본으로 제공합니다. networksetup과 scutil은 macOS에 내장된 도구이므로 설치가 필요 없습니다. IP Scanner의 OUI 벤더 조회도 설치가 필요 없습니다. Wireshark manuf 데이터베이스는 첫 사용 시 백그라운드에서 자동으로 다운로드되어 로컬에 캐시됩니다.

선택 도구

Python

  • Python 3.11+
  • PySide6 6.6+
  • ptyprocess 0.7+
  • pyte 0.8+ (pip install pyte 또는 sudo pacman -S python-pyte)
  • tftpy 0.8+ (pip install tftpy 또는 sudo pacman -S python-tftpy) — 파일 전송 모듈

설치

옵션 1 — Arch Linux / Manjaro / EndeavourOS (AUR)```bash

yay -S nmlinux

root@kitploit:~
모든 종속성(PySide6, ptyprocess, pyte, nmcli, …)은 자동으로 처리됩니다.

### 옵션 2 — NixOS / Nix

번들된 `flake.nix`로 직접 실행하세요. 시스템 전체 설치가 필요 없습니다:```bash
git clone https://github.com/thongor77/nmlinux.git
cd nmlinux
nix run .

개발 셸을 입력하려면:```bash nix develop python3 -m nmlinux.main

root@kitploit:~
모든 Python 의존성(PySide6, ptyprocess, pyte, tftpy)과 시스템 도구(nmcli, nmap, freerdp, vncviewer, mtr, avahi-browse…)는 Nix 래퍼를 통해 자동으로 제공됩니다.

### 옵션 4 — AppImage(모든 Linux 배포판, 설치 불필요)

[최신 릴리스](https://github.com/thongor77/nmlinux/releases/latest)에서 `NMLinux-x.y.z-x86_64.AppImage`를 다운로드하세요:```bash
chmod +x NMLinux-*.AppImage
./NMLinux-*.AppImage

설치 불필요 — Python, Qt 및 모든 NMLinux 모듈이 단일 파일에 번들되어 있습니다.
glibc 2.17+ (Ubuntu 16.04+, Fedora 26+, Arch, Mint 등)이 있는 모든 x86_64 Linux에서 작동합니다.

시스템 네트워크 도구(nmap, whois, mtr…)는 번들되어 있지 않습니다 — 해당 모듈이 작동하려면 패키지 관리자를 통해 설치하세요. 아래 요구 사항을 참조하십시오.

옵션 5 — macOS

가장 빠른 방법 — 한 줄 부트스트랩. 완전히 깨끗한 Mac에서 작동합니다: Xcode Command Line Tools, Homebrew, 모든 시스템 도구, 그리고 NMLinux 자체를 설치합니다. 다시 실행해도 안전합니다(재설치 대신 업데이트):```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:~
시스템 전체(`/Applications`)에 설치하려면 `~/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

Apple 개발자 계정이나 유료 공증(notarization)이 필요 없습니다 — 내부적으로는 동일한 오픈소스 install_macos_app.sh를 사용하며, 단지 자동으로 가져와서 실행해 줄 뿐입니다. 이 스크립트는 단순하고 읽기 쉬운 bash입니다. 실행 전에 /tmp/bootstrap_macos.sh를 열어 읽어보거나, 여기에서 직접 확인할 수 있습니다: packaging/bootstrap_macos.sh.

다운로드 후 실행(파이프로 바로 bash에 연결하지 않는 방식)은 의도적입니다: 새 Mac에서는 스크립트가 중첩된 대화형 단계(Xcode Command Line Tools 설치 프로그램, Homebrew 설치 프로그램이 sudo 비밀번호를 묻는 과정)를 트리거하며, 이 단계들은 터미널에서 입력을 읽습니다 — 스크립트를 bash로 직접 파이프하면 이러한 중첩 프롬프트가 스크립트 자체의 입력 스트림과 간섭하여 중간에 중단될 수 있습니다. 다운로드한 파일에서 실행하면 이 문제가 완전히 방지됩니다.

수동 설치 — 각 단계를 직접 실행하고 싶거나, 이미 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:~
To update: `git pull && bash packaging/install_macos_app.sh`  
To uninstall: `bash packaging/uninstall_macos.sh`  
To install system-wide (`/Applications`): `bash packaging/install_macos_app.sh --system`

The script installs the following Python packages into the venv automatically:
- `PySide6`, `ptyprocess`, `pyte`, `tftpy`
- `pyobjc-framework-Cocoa` — macOS menu bar, native dialogs
- `pyobjc-framework-CoreWLAN` — Wi-Fi SSID scanning
- `pyobjc-framework-CoreLocation` — Location Services permission for Wi-Fi names

**macOS 26(Tahoe)의 Wi-Fi:** 첫 실행 시 macOS가 위치 서비스(Location Services) 권한을 요청합니다. Wi-Fi 네트워크 이름을 표시하려면 이를 허용하세요. 해당 권한은 *시스템 설정 › 개인정보 보호 및 보안 › 위치 서비스*에서 확인할 수 있습니다.

> 대부분의 모듈은 macOS에서 수정 없이 작동합니다. RDP는 `open rdp://`(Microsoft Remote Desktop)로 대체되고, VNC는 `open vnc://`(내장 화면 공유)로 대체됩니다. 연결 관리자(Connection Manager)는 macOS에서 기능이 축소됩니다(`nmcli` 사용 불가).

### 옵션 6 — Debian / Ubuntu / Linux Mint(설치 스크립트)

> **Linux Mint / Ubuntu 사용자 참고 사항:** Python 3.12 이상에서는 `pip install`이 시스템 전체에서 차단됩니다(PEP 668 — `externally-managed-environment`). 제공된 설치 스크립트를 사용하세요. 이 스크립트는 가상 환경을 자동으로 생성하고 `.desktop` 항목을 설치합니다.```bash
git clone https://github.com/thongor77/nmlinux.git
cd nmlinux
bash install.sh

The script will:

  • Install system dependencies via apt (libgl1, python3-venv, freerdp, tigervnc…)
  • Create a virtual environment in ~/.local/share/nmlinux/venv
  • Install NMLinux and its Python dependencies inside the venv
  • Create a launcher at ~/.local/bin/nmlinux
  • Add a .desktop entry so NMLinux appears in your application menu

After install, run nmlinux from a terminal or launch it from the application menu.

Option 7 — Wheel (all distros / macOS)

Download the .whl from the latest release and install it:```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:~
> **Ubuntu 26.04+ 참고 사항:** `pipx`를 사용하려면 먼저 시스템 라이브러리(libGL 등)를 설치해야 합니다 — 위 명령어가 이를 포함합니다. PySide6 빌드 오류로 `pipx install`이 실패하면 **옵션 4**(설치 스크립트)를 대신 사용하세요. 해당 옵션은 모든 것을 자동으로 처리합니다.

### 옵션 8 — 소스에서 설치 (Arch / Fedora / macOS)```bash
git clone https://github.com/thongor77/nmlinux.git
cd nmlinux
pip install PySide6 ptyprocess pyte tftpy
python3 -m nmlinux.main

옵션 9 — 데스크톱 항목 (KDE / GNOME 등)

.desktop 파일을 복사하여 NMLinux가 애플리케이션 런처에 표시되도록 하세요:```bash cp data/nmlinux.desktop ~/.local/share/applications/ update-desktop-database ~/.local/share/applications/

root@kitploit:~
그런 다음 필요하다면 파일의 `Exec=` 경로를 편집하세요.

---

## 실행```bash
./nmlinux.sh
# or, after pip install:
nmlinux
# or directly:
python3 -m nmlinux.main

프로젝트 구조```

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:~
---

## 데스크톱 환경 호환성

v1.2.7부터 NMLinux는 런타임에 `QSvgRenderer`를 통해 렌더링되는 21개의 번들 [Lucide](https://lucide.dev) SVG 아이콘을 사용합니다. 이 앱은 더 이상 시스템 아이콘 테마(Breeze, Adwaita, Papirus 등)에 의존하지 않으며 KDE, GNOME, XFCE 및 기타 환경에서 올바르게 표시됩니다. Qt 스타일은 실행 중인 데스크톱에 자동으로 적응합니다.

---

## 제한 사항

### Linux
완전 지원 — 29개 모듈 모두 사용 가능.

### macOS
대부분의 모듈은 두 플랫폼 모두에서 사용 가능한 도구(`ssh`, `dig`, `ping`, `curl`, `nmap`, `openssl` 등)에 의존하므로 기본적으로 작동합니다.

**9개 모듈은 명시적인 macOS 적응이 필요합니다** (시작 시 플랫폼을 감지하는 이중 코드 경로): Dashboard, Interfaces, Wi-Fi, Topology, Bandwidth, Firewall, Connection Manager, Hosts File, MTR — 이들은 Linux 등가물 대신 기본 macOS 명령어(`ifconfig`, `networksetup`, `scutil`, `pfctl`, `system_profiler` 등)를 사용합니다.

**macOS 지원이 제한적이거나 없는 모듈:**

| 모듈 | 상태 | 참고 |
|--------|--------|-------|
| **RDP** | ✓ macOS | `open rdp://`로 대체 → Microsoft Remote Desktop(App Store) |
| **VNC** | ✓ macOS | `open vnc://`로 대체 → 화면 공유(기본 내장, 설치 불필요) |
| **IP Scanner** | ✓ macOS | `socket.gethostbyaddr()` 사용 — 기본 Python, 추가 도구 불필요 |
| **SMB** | ✓ macOS | `smbclient` 대신 `smbutil view`(기본 내장) 사용 |
| **NFS** | ✓ macOS | `showmount` 기본 내장; 헤더 파싱 적응됨 |
| **Connection Manager** | ⚠ 축소됨 | 편집/삭제는 `nmcli`(Linux 전용) 필요; 목록 보기는 작동 |

### 일반
- root/polkit 통합 없음 — 상승된 권한이 필요한 도구(일부 Nmap 모드, raw 소켓)는 `sudo`로 실행해야 함; macOS에서는 권한 상승에 `osascript` + `administrator privileges` 사용
- SSH 에이전트 포워딩은 활성 SSH 에이전트(`SSH_AUTH_SOCK`)가 필요함; macOS에서는 시스템이 자동으로 처리하므로 수동 설정이 필요 없음

---

## 크레딧 및 감사의 말

- **[Anthropic](https://www.anthropic.com)** — 이 프로젝트를 구축하는 데 사용된 AI 어시스턴트, Claude Code
- 비전, 테스트 및 방향성을 제공한 저자

---

## 프로젝트 지원

NMLinux가 유용하다면 개발 지원을 고려해 주세요:

- **PayPal** — [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`

---

## 라이선스

GPL-2.0 — [LICENSE](https://github.com/thongor77/nmlinux/blob/main/LICENSE) 참조.

이 프로젝트는 독립적인 재구현입니다. NETworkManager의 코드는 사용되거나 번역되지 않았습니다.
도구 다운로드
EPERM
script
모듈설명
대시보드로컬 머신 정보, 게이트웨이, 공용 IP, 지리적 위치, DNS 리졸버
연결 관리자nmcli를 통한 NetworkManager 프로필: 목록, 필터, 연결/연결 해제/편집/삭제
인터페이스인터페이스별 세부 정보가 있는 네트워크 인터페이스 테이블(ip + nmcli)
Wi-Fi사용 가능한 네트워크, 신호 막대, 보안, 연결된 네트워크 강조 표시
서브넷 계산기CIDR에서 네트워크/브로드캐스트/호스트 범위, 최대 4096개 항목의 호스트 테이블
DNS 조회A, AAAA, MX, TXT, NS, CNAME, PTR, SOA, ANY에 대한 dig 기반 조회
핑 모니터여러 호스트에 대한 연속 핑, RTT 통계, 패킷 손실 %
IP 스캐너CIDR/범위 핑 스캔, 50개 스레드, 호스트 이름(DNS/mDNS/NetBIOS), MAC 주소, 벤더(OUI), 인터페이스, CSV + TXT 내보내기
포트 스캐너TCP 연결 스캔, 200개 스레드, 서비스 사전 설정, CSV + TXT 내보내기
Nmap7가지 스캔 모드, XML 출력 파싱, 호스트/포트/프로토콜/상태/서비스 테이블, CSV + TXT 내보내기
Whois고정폭의 원시 whois 출력
SNMPsnmpwalk/snmpget, v1/v2c, 10개 OID 사전 설정, 결과 테이블
SNTP / NTP순수 Python RFC 4330 UDP 클라이언트, 오프셋/지연/계층/참조
SSH내장 PTY 터미널(pyte/VT100), 저장된 연결(JSON), 키 인증, 스크롤백
원격 데스크톱RDP 연결 프로필(그룹/하위 그룹); xfreerdp 실행; 암호는 절대 저장되지 않음
VNCVNC 연결 프로필(그룹/하위 그룹); vncviewer(TigerVNC) 실행; macOS ARD 호환; 암호는 절대 저장되지 않음
SSH 키 관리자~/.ssh/ 키 쌍 나열(유형, 비트, 지문); Ed25519/RSA 4096 생성; 공개 키 복사; ssh-copy-id를 통해 서버에 배포; 확인 후 쌍 삭제
TLS 검사기인증서 세부 정보: CN, SAN, 발급자, 유효 기간 + 만료 카운트다운, 일련 번호, 프로토콜, 암호, 체인; 백그라운드 만료 모니터 및 사이드바 색상 점이 있는 관심 목록
SMB / NFS모든 서버 또는 NAS에서 SMB 공유(smbclient) 및 NFS 내보내기(showmount) 목록; SMB용 선택적 자격 증명
호스트 파일/etc/hosts 보기/편집: 추가, 삭제, 항목 토글; 필터; pkexec로 저장
시각적 Traceroute세계 지도의 홉별 경로, 실시간 지리적 위치(ip-api.com), 확대/축소, CSV + TXT 내보내기
MTR내장 My Traceroute: 홉별 손실 %, RTT 최근/평균/최고/최저/지터, 색상 코드, CSV + TXT 내보내기
방화벽 뷰어읽기 전용 nftables + iptables/ip6tables 규칙 집합(루트 불필요); pkexec로 실시간; 테이블/체인/동작별 필터
속도 테스트Cloudflare를 통한 다운로드/업로드/핑; curl 외 외부 도구 불필요; 이력 그래프(최근 5회 실행)
대역폭인터페이스별 실시간 처리량: 60초 슬라이딩 그래프, 실시간 속도, 세션 합계, 최고치
Wake on LAN순수 Python 매직 패킷(UDP 브로드캐스트), 영구 호스트 목록, 외부 도구 불필요
토폴로지 맵nmap -sn을 통해 LAN 장치 자동 검색; 드래그 가능한 노드, 확대/축소, 세부 패널이 있는 대화형 그래프
설정언어 선택(FR / EN / ES / DE / IT / PT / JA / ZH), 영구 저장; 변경 후 재시작 필요
명령 팔레트Ctrl+P 오버레이: 이름 또는 키워드로 29개 모듈 전체 퍼지 검색
파일 전송주문형 TFTP 또는 HTTP 서버; 구성 가능한 포트 및 루트 디렉터리; 복사 버튼으로 표시되는 로컬 IP; 실시간 로그 테이블(파일 이름, 클라이언트 IP, 방향 ↑/↓, 크기); HTTP 디렉터리 목록 + GET/POST/PUT; TFTP GET + PUT; 포트 69는 pkexec 프롬프트 표시
내보내기파일 → 네트워크 보고서 내보내기(JSON/Markdown/텍스트/PDF); 인터페이스, DNS, 방화벽, SSH, 연결 페이지의 모듈별 내보내기
도구기능LinuxmacOS
xfreerdp / xfreerdp3원격 데스크톱 (RDP)Arch: freerdp · Ubuntu ≤24.04: freerdp2-x11 · Ubuntu 26.04+: freerdp3-x11선택 사항 — Microsoft Remote Desktop으로 대체 (open rdp://)
vncviewerVNCArch: tigervnc · Debian: tigervnc-viewer선택 사항 — macOS 화면 공유로 대체 (open vnc://, 내장)
nm-connection-editor연결 관리자에서 연결 편집Arch: nm-connection-editor— (대신 시스템 설정이 열림)
tracerouteTraceroute 대안 (기본적으로 tracepath 사용)Arch: traceroute내장
mount.cifs (cifs-utils)오른쪽 클릭 메뉴에서 SMB 공유 마운트Arch/Debian: cifs-utils내장 (mount_smbfs)
iperf3속도 테스트 — LAN 탭Arch: iperf3 · Debian/Ubuntu: iperf3brew install iperf3