A DNS performance testing IPv4, IPv6, DNS over HTTPS (DoH), DNS over TLS (DoT), and DNS over QUIC (DoQ).
Public Instance:
- Node.js 20 or higher
- npm or yarn package manager
- Clone or download the project files
- Install dependencies:
npm install- Start the server:
npm start- Open your browser and navigate to:
http://localhost:3000
- Select DNS Providers: Choose from the list of pre-configured DNS providers
- Configure Protocols: Select which DNS protocols to test (IPv4, IPv6, DoH, DoT, DoQ)
- Set Test Domains: Use preset domains or add custom ones
- Configure Test Parameters:
- Interval between requests (seconds)
- Number of tests per provider
- Start Benchmark: Click "Start Benchmark" to begin testing
Enter custom domains in the text area, one per line:
example.com
mysite.org
test.net
Filter providers by supported protocols:
- IPv4: Traditional DNS over UDP/TCP
- IPv6: IPv6 DNS resolution
- DoH: DNS over HTTPS (RFC 8484)
- DoT: DNS over TLS (RFC 7858)
- DoQ: DNS over QUIC (RFC 9250) - Note: Limited implementation
Filter by provider type:
- Public: General-purpose DNS servers
- Security: Security-focused with threat blocking
- Family: Family-safe with content filtering
- Privacy: Privacy-focused DNS services
The results table shows:
- Rank: Performance ranking
- Provider: DNS provider name and protocol
- Min/Median/Average/Max: Response time statistics
- Success Rate: Percentage of successful queries
- Tests: Number of successful/total tests
Export test results in two formats:
- JSON: Complete data including raw results and statistics
- CSV: Tabular format suitable for spreadsheet analysis
GET /- Main application interfacePOST /api/test- Perform single DNS testGET /api/providers- Get DNS providers listGET /api/health- Health check endpointGET /locales/:lang.json- Language files
/ws- Real-time test updates and progress
Edit public/data/dns-providers.json:
{
"name": "Provider Name",
"category": "Public|Security|Family|Privacy",
"description": "Provider description",
"servers": [
{"type": "IPv4", "address": "1.2.3.4", "port": 53},
{"type": "DoH", "address": "https://dns.example.com/dns-query", "port": 443}
]
}Run with auto-restart on file changes:
npm run dev- DoQ Support: Limited implementation due to QUIC protocol complexity
- IPv6 Testing: Requires IPv6 network connectivity