2025-08-11 00:49:53 +02:00
2025-08-09 18:09:37 +02:00
2025-08-11 00:49:53 +02:00
2025-08-11 00:11:18 +02:00
2025-08-09 18:09:37 +02:00
2025-08-11 00:49:23 +02:00
2025-08-11 00:49:23 +02:00
2025-08-09 18:09:37 +02:00
2025-08-09 18:09:37 +02:00

NetTest - Network Connectivity Testing Tool

A comprehensive command-line tool written in Rust for testing network connectivity and DNS resolution across various dimensions.

Features

Network Testing

  • IPv4 and IPv6 support - Test connectivity using both IP versions
  • Multiple protocols - Support for TCP, UDP, and ICMP
  • Port testing - Test common ports and custom port ranges
  • Timeout configuration - Configurable timeouts for all tests

MTU Discovery

  • Binary search MTU discovery - Efficiently find the maximum MTU size
  • Common MTU testing - Test standard MTU sizes (68, 576, 1280, 1500, 4464, 9000)
  • Custom range testing - Test specific MTU ranges
  • IPv4 and IPv6 support - MTU discovery for both IP versions

DNS Testing

  • Comprehensive record types - A, AAAA, MX, NS, TXT, CNAME, SOA, PTR, and more
  • Multiple DNS servers - Test against Google, Cloudflare, Quad9, OpenDNS, and others
  • TCP and UDP queries - Support for both DNS transport protocols
  • Large query testing - Test handling of large DNS responses
  • International domains - Support for IDN (Internationalized Domain Names)

Domain Category Testing

  • Normal websites - Test legitimate, commonly used sites
  • Ad networks - Test advertising and tracking domains
  • Spam domains - Test temporary email and spam-associated domains
  • Adult content - Test adult content sites (often filtered)
  • Malicious domains - Test known malicious/phishing domains
  • Social media - Test major social media platforms
  • Streaming services - Test video and music streaming sites
  • Gaming platforms - Test gaming services and platforms
  • News websites - Test major news and media sites

DNS Filtering Analysis

  • Filter effectiveness - Analyze how well DNS filtering is working
  • Category-based analysis - See which categories are being blocked
  • Detailed reporting - Get statistics on resolution success rates

Installation

# Clone the repository
git clone <repository-url>
cd nettest

# Build the project
cargo build --release

# Install globally (optional)
cargo install --path .

Usage

Basic Commands

# Run comprehensive tests on a target
nettest full google.com

# Test TCP connectivity
nettest network tcp google.com --port 80

# Test UDP connectivity  
nettest network udp 8.8.8.8 --port 53

# Ping test
nettest network ping google.com --count 4

# Test common ports
nettest network ports google.com --protocol tcp

# DNS query
nettest dns query google.com --record-type a

# Test DNS servers
nettest dns servers google.com

# Test domain categories
nettest dns categories --category normal

# MTU discovery
nettest mtu discover google.com

# Test common MTU sizes
nettest mtu common google.com

Advanced Options

# Specify IP version
nettest network tcp google.com --ip-version v4
nettest network tcp google.com --ip-version v6
nettest network tcp google.com --ip-version both

# Custom timeout
nettest --timeout 10 network tcp google.com

# JSON output
nettest --json dns query google.com

# Verbose logging
nettest --verbose full google.com

# DNS query with specific server
nettest dns query google.com --server 8.8.8.8:53 --tcp

# Custom MTU range
nettest mtu range google.com --min 1000 --max 1500

Domain Category Testing

Test different categories of domains to analyze DNS filtering:

# Test normal websites
nettest dns categories --category normal

# Test ad networks
nettest dns categories --category ads

# Test all categories
nettest dns categories --category all

# DNS filtering effectiveness
nettest dns filtering

Comprehensive Testing

The full command runs a comprehensive suite of tests:

# Full test suite for a domain
nettest full example.com

# Full test with specific IP version
nettest full example.com --ip-version v4

This includes:

  • TCP and UDP connectivity tests
  • ICMP ping tests
  • MTU discovery
  • DNS resolution tests
  • DNS server tests

Output Formats

Human-readable (default)

Colored, formatted output suitable for terminal viewing.

JSON

Machine-readable JSON output for integration with other tools:

nettest --json dns query google.com

Requirements

  • Rust 1.70 or later
  • Root/administrator privileges may be required for:
    • ICMP ping tests
    • Raw socket operations
    • MTU discovery

Testing

Run the test suite:

# Unit tests
cargo test

# Integration tests
cargo test --test integration_tests

# All tests with verbose output
cargo test -- --nocapture

Architecture

The tool is organized into several modules:

  • cli - Command-line argument parsing and interface
  • network - TCP, UDP, and ICMP connectivity testing
  • dns - DNS resolution and query testing
  • mtu - MTU discovery and testing
  • utils - Common utilities and error handling

Security Considerations

This tool is designed for defensive security testing and network diagnostics. It:

  • Tests legitimate connectivity to verify network functionality
  • Analyzes DNS filtering effectiveness
  • Discovers network path characteristics
  • Does not attempt to exploit or attack systems
  • Respects rate limits and timeouts

License

[Add your license here]

Contributing

[Add contribution guidelines here]

S
Description
A comprehensive network connectivity and DNS testing CLI tool written in Rust. NetTest provides extensive testing capabilities for network diagnostics, DNS resolution (including DNS-over-HTTPS), MTU discovery, and connectivity analysis.
Readme 98 KiB
Languages
Rust 96.2%
Shell 3.8%