Yadnsb
A DNS performance testing IPv4, IPv6, DNS over HTTPS (DoH), DNS over TLS (DoT), and DNS over QUIC (DoQ).
Install / Use
/learn @butialabs/YadnsbREADME
YaDNSb - Yet Another DNS Benchmark
A DNS performance testing IPv4, IPv6, DNS over HTTPS (DoH), DNS over TLS (DoT), and DNS over QUIC (DoQ).
Public Instance:
- https://yadnsb.butialabs.com (Thanks Shiper.app for free upgrade!)
Installation
1. Docker
docker run -d \
--name yadnsb \
-p 3000:3000 \
--restart unless-stopped \
ghcr.io/butialabs/yadnsb:latest
services:
yadnsb:
image: ghcr.io/butialabs/yadnsb:latest
container_name: yadnsb
restart: always
mem_limit: 256m
security_opt:
- no-new-privileges:true
healthcheck:
test: wget --no-verbose --tries=1 --spider http://localhost:3000/ || exit 1
interval: 15s
timeout: 5s
retries: 3
start_period: 15s
ports:
- 3000:3000
2: Local
Prerequisites
- Node.js 22 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
Usage
Basic Testing
- 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
Advanced Configuration
Custom Domains
Enter custom domains in the text area, one per line:
example.com
mysite.org
test.net
Protocol Filtering
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
Provider Categories
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
Results Analysis
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
Data Export
Export test results in two formats:
- JSON: Complete data including raw results and statistics
- CSV: Tabular format suitable for spreadsheet analysis
API Endpoints
REST API
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
WebSocket API
/ws- Real-time test updates and progress
Development
Adding New DNS Providers
Edit public/data/dns-providers.json:
{
"name": "Provider Name",
"servers": [
{"type": "IPv4", "address": "1.2.3.4", "port": 53},
{"type": "DoH", "address": "https://dns.example.com/dns-query", "port": 443}
]
}
Development Mode
Run with auto-restart on file changes:
npm run dev
Limitations
- DoQ Support: Limited implementation due to QUIC protocol complexity
- IPv6 Testing: Requires IPv6 network connectivity
Star History
Made with ❤️! If you have questions or suggestions, open an issue and we'll help! 😉
Related Skills
node-connect
336.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
336.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.9kCommit, push, and open a PR
