Skip to content

dns-leak

DNS leak detection and analysis for Kodachi OS

Version: 9.0.1 | Size: 3.3MB | Author: Warith Al Maawali

License: Proprietary | Website: https://digi77.com


File Information

Property Value
Binary Name dns-leak
Version 9.0.1
Build Date 2026-03-22T17:40:38.892858865Z
Rust Version 1.93.1
File Size 3.3MB
JSON Data View Raw JSON

SHA256 Checksum

60fddcc7e28ed8b720d0f5c395ab6871748f553c28733b93839aaab5904647bd

Features

Feature Description
Feature Network interface discovery and validation
Feature DNS leak detection via challenge-response testing
Feature Geolocation-based leak analysis
Feature Multi-interface simultaneous testing
Feature Detailed test reporting with JSON export
Feature System resolver configuration analysis

Security Features

Feature Description
Authentication Secure authentication for sensitive operations
Encryption HTTPS for all external API communications
Inputvalidation All interface names and IDs are sanitized and validated
Ratelimiting Built-in retry limits and timeouts for DNS queries

System Requirements

Requirement Value
OS Linux (Debian-based, specifically Kodachi OS)
Privileges root/sudo for network interface access
Dependencies Network interfaces, DNS resolver access, Internet connectivity for leak testing

Global Options

Flag Description
-h, --help Print help information
-v, --version Print version information
-n, --info Display detailed information
-e, --examples Show usage examples
--json Output in JSON format
-o, --output-format <FORMAT> Force output format (text
--json-pretty Pretty-print JSON output
--json-filter <FIELD1,FIELD2> Filter JSON output fields
--verbose Enable verbose output
--quiet Suppress non-essential output
--no-color Disable colored output
--config <FILE> Use custom configuration file
--timeout <SECS> Set timeout (default: 30)
--retry <COUNT> Retry attempts (default: 3)
--fields <LIST> Select specific fields to include
--limit <NUM> Limit number of results returned
--offset <NUM> Skip first N results (pagination)
--dns-timeout <SECS> DNS query timeout (default: 5)
-i, --interface <IF> Specify network interface to test

Commands

Network Discovery

discover

Discover network interfaces available for testing

Usage:

dns-leak discover [OPTIONS]

Options: - -V, --verbose: Enable verbose output

Examples:

dns-leak discover
dns-leak discover --json
dns-leak discover --verbose

DNS Leak Testing

test

Run DNS leak test on specified interface or all interfaces

Usage:

dns-leak test [OPTIONS]

Options: - -i, --interface <INTERFACE>: Specify a network interface to test

Examples:

dns-leak test
dns-leak test --interface eth0
dns-leak test --json

Reporting

report

Generate a detailed report of a previous test

Usage:

dns-leak report -r <ID>

Options: - -r, --id <ID>: Test ID to generate report for

Examples:

dns-leak report --id dns_leak_results_20250924
dns-leak report --id dns_leak_results --json

results

Display results from a previous DNS leak test

Usage:

dns-leak results --file <FILE>

Options: - -f, --file <FILE>: Path to the results JSON file

Examples:

dns-leak results --file test_results.json
dns-leak results --file test_results.json --json

Operational Scenarios

Scenario-oriented workflows generated from the binary's built-in -e --json examples.

Scenario 1: Basic Usage

Common operations

Step 1: List all network interfaces available for DNS leak testing

sudo dns-leak discover
Expected Output: List of all network interfaces

Step 2: List interfaces in JSON format for automation

sudo dns-leak discover --json
Expected Output: JSON response with interface details

Step 3: Test all active interfaces for DNS leaks

sudo dns-leak test
Expected Output: Shows DNS leak status for each interface

Step 4: Test specific interface (eth0) for DNS leaks

sudo dns-leak test --interface eth0
Expected Output: DNS leak test results for eth0

Step 5: Test ethernet interface (ens33) for DNS leaks

sudo dns-leak test --interface ens33
Expected Output: DNS leak test results for ens33

Step 6: Test wireless interface for DNS leaks

sudo dns-leak test --interface wlan0
Expected Output: DNS leak test results for wlan0

Step 7: Test USB wireless interface for DNS leaks

sudo dns-leak test --interface wlx18a6f71995d8
Expected Output: DNS leak test results for USB wireless adapter

Step 8: Test VPN tunnel interface for DNS leaks

sudo dns-leak test --interface tun0
Expected Output: DNS leak test results for VPN tunnel

Step 9: Test Tailscale VPN interface for DNS leaks

sudo dns-leak test --interface tailscale0
Expected Output: DNS leak test results for Tailscale

Step 10: Test PCIe ethernet interface for DNS leaks

sudo dns-leak test --interface enp2s0
Expected Output: DNS leak test results for PCIe ethernet

Step 11: Test secondary PCIe ethernet interface for DNS leaks

sudo dns-leak test --interface enp2s1
Expected Output: DNS leak test results for secondary PCIe ethernet

Step 12: Test onboard ethernet interface for DNS leaks

sudo dns-leak test --interface eno1
Expected Output: DNS leak test results for onboard ethernet

Step 13: Test bridge interface for DNS leaks

sudo dns-leak test --interface br0
Expected Output: DNS leak test results for bridge interface

Step 14: Run tests with JSON output for automation

sudo dns-leak test --json
Expected Output: JSON response with structured data

Scenario 2: Advanced Usage

Complex operations

Step 1: Generate HTML report from test results

sudo dns-leak report --id dns_leak_results_20250924_024527
Expected Output: HTML report saved to results directory

Note

Use the filename prefix (without .json) as the ID

Step 2: Generate report with JSON output

sudo dns-leak report --id dns_leak_results --json
Expected Output: JSON status of report generation

Note

Will search for files containing the ID in results directory

Step 3: Use custom timeout and retry settings

sudo dns-leak test --timeout 30 --retry 3
Expected Output: Test with custom timeout and retries

Step 4: Show detailed program information

dns-leak --info
Expected Output: Program details and features

Step 5: Display results from a saved test file

sudo dns-leak results --file dns_leak_results_20250924_024527.json
Expected Output: Formatted test results display

Note

Searches in current dir and results directory

Step 6: Display results as JSON

sudo dns-leak results --file dns_leak_results.json --json
Expected Output: JSON formatted results

Note

Can use just filename if file is in results directory

Scenario 3: Automation Examples

Examples for automation and scripting

Step 1: Extract leak detection status using jq

sudo dns-leak test --json | jq '.results[].leak_detected'
Expected Output: Boolean values indicating leak status per interface

Step 2: Get list of interface names for scripting

sudo dns-leak discover --json | jq '.interfaces[].name'
Expected Output: List of interface names suitable for loops

Scenario 4: Program Information

Getting information about the tool

Step 1: Show version number

dns-leak --version
Expected Output: Version information

Step 2: Version in JSON format

dns-leak --version --json
Expected Output: Structured version data

Step 3: Show detailed program information

dns-leak --info
Expected Output: Program features and requirements

Step 4: Program info in JSON format

dns-leak --info --json
Expected Output: Structured program information

Step 5: Show help information

dns-leak --help
Expected Output: Usage instructions

Step 6: Help in JSON format

dns-leak --help --json
Expected Output: Structured help data

Step 7: Show usage examples

dns-leak --examples
Expected Output: Detailed examples

Step 8: Examples in JSON format

dns-leak --examples --json
Expected Output: Structured example data

Scenario 5: Configuration Options

Advanced configuration and timeout settings

Step 1: Use custom timeout and retry settings

sudo dns-leak test --timeout=30 --retry=3
Expected Output: Test with custom timeout (30s) and retry count (3)

Note

Timeout range: 1-300 seconds, Retry count: 1-20

Step 2: Use custom DNS query timeout

sudo dns-leak test --dns-timeout=10
Expected Output: Test with custom DNS timeout (10s)

Note

DNS timeout range: 1-60 seconds

Step 3: Enable verbose output for interface discovery

sudo dns-leak discover --verbose
Expected Output: Detailed interface information with additional metadata

Note

Use -VV for maximum verbosity

Step 4: Run DNS leak test with verbose output

sudo dns-leak test --interface=eth0 --verbose
Expected Output: Detailed test output with debug information

Environment Variables

Variable Description Default Values
RUST_LOG Set logging level info error
NO_COLOR Disable all colored output when set unset 1
DNS_LEAK_CONFIG Path to configuration file ~/.config/dns-leak/config.json /path/to/config.json

Exit Codes

Code Description
0 Success
1 General error
2 Invalid arguments
3 Permission denied
4 Network error
5 File not found
6 Authentication required
7 DNS leak detected