Skip to content

Repository files navigation

netshooter

Network troubleshooting CLI -- diagnose reachability, DNS, routing, firewall, and L2 issues from a single command. Given a target (IP or hostname), netshooter runs a sequence of diagnostic probes and reports a structured verdict.

Quick Start

pip install netshooter
netshooter example.com

Or build a standalone binary:

bash scripts/build.sh
./dist/netshooter example.com

Features

  • 11 diagnostic probes: interface, DNS, route, ping, traceroute, ARP, WHOIS/ASN, MTU, TCP port scan, TLS certificate check, HTTP reachability
  • Parallel mode (--fast): run independent probes concurrently for faster results
  • Deep analysis (--deep): enables additional probes (ARP, MTU, WHOIS, extended route info)
  • Baseline comparison: save a report and compare against it later to detect regressions
  • Multiple output formats: rich terminal output, JSON, single-line verdict
  • mtr integration: optional runtime download of mtr for enhanced traceroute (GPL-2.0, never bundled)

Usage

netshooter TARGET [OPTIONS]
Flag Description
--deep Deep analysis: ARP, MTU, WHOIS, extended routing
--fast Run independent probes in parallel
-p, --ports PORTS Comma-separated ports (default: 22,53,80,443,8080,8443)
-t, --timeout SECS Timeout per probe in seconds (overrides per-probe defaults)
-i, --interface IFACE Override network interface (e.g., en0, eth0)
-s, --skip PROBE Skip a specific probe (repeatable)
-v, --verbose Show detailed output for all probes
-q, --quiet Single-line verdict output only
--json Output as JSON
--save PATH Save report to JSON file
--compare PATH Compare against a saved baseline
--reset-mtr-prompt Re-prompt for mtr installation
--no-mtr-prompt Suppress mtr install prompt (for CI/scripts)
--version Show version

Examples

# Basic diagnostics
netshooter 8.8.8.8

# Deep analysis with parallel execution
netshooter example.com --deep --fast

# JSON output, custom ports
netshooter 10.0.0.1 --json -p 22,80,443

# Save baseline and compare later
netshooter example.com --save baseline.json
netshooter example.com --compare baseline.json

# Quiet mode for scripting (exit code: 0=ok, 1=failure, 2=warning)
netshooter example.com -q

Requirements

  • Python 3.11+
  • macOS or Linux

License

netshooter is dual-licensed:

  • Open source: AGPL-3.0 -- free for use under AGPL-3.0 copyleft terms.
  • Commercial: Commercial License -- for organizations that cannot comply with AGPL-3.0 terms. Includes a 30-day evaluation period at no cost.

For commercial licensing inquiries: inquiry@nnjasec.com

About

Network troubleshooting CLI — diagnose reachability, DNS, routing, firewall, and L2 issues

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages