dns-leak
DNS leak detection and analysis for Kodachi OS
Version: 9.8.4 (build 319) | Size: 5.4MB | Author: Warith Al Maawali
License: Proprietary | Website: https://digi77.com
File Information
| Property | Value |
|---|---|
| Binary Name | dns-leak |
| Version | 9.8.4 (build 319) |
| Build Date | REDACTED-BUILD-TIME |
| Rust Version | 1.96.0 |
| File Size | 5.4MB |
| Author | Warith Al Maawali |
| License | Proprietary |
| Category | Kodachi Binary |
| Description | DNS leak detection and analysis for Kodachi OS |
| Git Commit | d739424801d6fbe0319a49fd94054c435965937f |
| Metadata Generated | 2026-06-28T11:16:37Z |
| Binary Timestamp | Unknown |
| JSON Data | View Raw JSON |
SHA256 Checksum
33844c2ed748463d8b41bc4a01a82e34b0f01baf2cb2b31a624be438f089c912
Features
| # | Feature |
|---|---|
| 1 | Network interface discovery and validation |
| 2 | DNS leak detection via challenge-response testing |
| 3 | Geolocation-based leak analysis |
| 4 | Multi-interface simultaneous testing |
| 5 | Detailed test reporting with JSON export |
| 6 | System resolver configuration analysis |
Security Features
| Feature | Description |
|---|---|
| Authentication | Secure authentication for sensitive operations |
| Encryption | HTTPS for all external API communications |
| Input Validation | All interface names and IDs are sanitized and validated |
| Rate Limiting | 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) |
--json-pretty |
Pretty-print JSON output |
--verbose |
Enable verbose output |
--quiet |
Suppress non-essential output |
--no-color |
Disable colored output |
--timeout <SECS> |
Set timeout (default: 30) |
--retry <COUNT> |
Retry attempts (default: 3) |
--dns-timeout <SECS> |
DNS query timeout (default: 5) |
-i, --interface <IF> |
Specify network interface to test |
--show-public-ip |
Show unmasked public IP in output and saved files (default: masked) |
--keep-all |
Keep all result files (default: older files pruned for privacy) |
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_<TIMESTAMP>
dns-leak report --id dns_leak_results_<TIMESTAMP> --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
Step 2: List interfaces in JSON format for automation
sudo dns-leak discover --json
Step 3: Test all active interfaces for DNS leaks
sudo dns-leak test
Step 4: Test specific interface (eth0) for DNS leaks
sudo dns-leak test --interface eth0
Step 5: Test ethernet interface (ens33) for DNS leaks
sudo dns-leak test --interface ens33
Step 6: Test wireless interface for DNS leaks
sudo dns-leak test --interface wlan0
Step 7: Test USB wireless interface for DNS leaks
sudo dns-leak test --interface wlx18a6f71995d8
Step 8: Test VPN tunnel interface for DNS leaks
sudo dns-leak test --interface tun0
Step 9: Test Tailscale VPN interface for DNS leaks
sudo dns-leak test --interface tailscale0
Step 10: Test PCIe ethernet interface for DNS leaks
sudo dns-leak test --interface enp2s0
Step 11: Test secondary PCIe ethernet interface for DNS leaks
sudo dns-leak test --interface enp2s1
Step 12: Test onboard ethernet interface for DNS leaks
sudo dns-leak test --interface eno1
Step 13: Test bridge interface for DNS leaks
sudo dns-leak test --interface br0
Step 14: Run tests with JSON output for automation
sudo dns-leak test --json
Scenario 2: Advanced Usage
Complex operations
Step 1: Generate HTML report from test results
sudo dns-leak report --id dns_leak_results_<TIMESTAMP>
Note
Replace <TIMESTAMP> with an actual ID from a prior `dns-leak test` run. Use the filename prefix (without .json) as the ID. List available IDs with `ls /opt/kodachi/dashboard/hooks/results/dns_leak_results_*.json`.
Step 2: Generate report with JSON output
sudo dns-leak report --id dns_leak_results --json
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
Step 4: Show detailed program information
dns-leak --info
Step 5: Display results from a saved test file
sudo dns-leak results --file dns_leak_results_<TIMESTAMP>.json
Note
Replace <TIMESTAMP> with an actual filename from a prior `dns-leak test` run. Searches in current dir and results directory.
Step 6: Display results as JSON
sudo dns-leak results --file dns_leak_results.json --json
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 '.data.potential_leak_detected'
Step 2: Get list of interface names for scripting
sudo dns-leak discover --json | jq '.data.interfaces[].name'
Scenario 4: Program Information
Getting information about the tool
Step 1: Show version number
dns-leak --version
Step 2: Version in JSON format
dns-leak --version --json
Step 3: Show detailed program information
dns-leak --info
Step 4: Program info in JSON format
dns-leak --info --json
Step 5: Show help information
dns-leak --help
Step 6: Help in JSON format
dns-leak --help --json
Step 7: Show usage examples
dns-leak --examples
Step 8: Examples in JSON format
dns-leak --examples --json
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
Note
Timeout range: 1-300 seconds, Retry count: 1-20
Step 2: Use custom DNS query timeout
sudo dns-leak test --dns-timeout=10
Note
DNS timeout range: 1-60 seconds
Step 3: Enable verbose output for interface discovery
sudo dns-leak discover --verbose
Note
Use -VV for maximum verbosity
Step 4: Run DNS leak test with verbose output
sudo dns-leak test --interface=eth0 --verbose
Environment Variables
| Variable | Description | Default | Values |
|---|---|---|---|
RUST_LOG |
Set logging level | info | error|warn|info|debug|trace |
NO_COLOR |
Disable all colored output when set | unset | 1|true|yes (any value disables color) |
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 |