Repository navigation
v0.78.3-batch-doh: Custom Batch DoH Query Support
·
4 commits
to master
since this release
Custom Batch DoH Query Support
This release adds comprehensive batch DNS-over-HTTP query functionality based on v0.78.2.
🎉 Key Features
- Non-SSL HTTP DoH Server: Run DoH on plain HTTP for local/testing environments
- Configurable Paths: Set custom paths for standard and batch DoH queries
- Batch Query Support: Query multiple domains and record types in a single request
- JWT Authentication: Secure batch queries with HS256 (HMAC-SHA256) tokens
- JSON Response Format: Detailed responses with DNS fields and timing information
🔧 New Command-Line Options
--http-port=8080 # HTTP (non-SSL) listener
--http-path=/dns-query # Custom path for standard DoH queries
--http-batch-path=/dns-batch # Batch query endpoint path
--http-batch-jwt-secret=secret # JWT signing secret📦 Quick Start
# Download and extract
wget https://github.com/KexiChanProjectProxy/dnsproxy/releases/download/v0.78.3-batch-doh/dnsproxy-linux-amd64
chmod +x dnsproxy-linux-amd64
# Run with batch support
./dnsproxy-linux-amd64 \
--http-port=8080 \
--http-batch-path=/dns-batch \
--http-batch-jwt-secret=mySecret123 \
--upstream=8.8.8.8🔍 Batch Query Example
Request:
{
"token": "JWT_TOKEN_HERE",
"timestamp": "2026-01-15T10:00:00Z",
"id": "uuid-here",
"query": [
{
"type": ["A", "AAAA"],
"domain": ["google.com", "cloudflare.com"]
}
]
}Response:
[
{
"domain": "google.com",
"type": "A",
"status": "success",
"answers": ["142.250.185.46"],
"ttl": 300,
"rcode": "NOERROR",
"query_time_ms": 23.456,
"timestamp": "2026-01-15T10:00:00.123Z"
}
]📋 Supported Record Types
A, AAAA, CNAME, MX, TXT, NS, PTR, SOA, SRV
📚 Documentation
Comprehensive documentation included in the release:
- BATCH_DOH_EXAMPLE.md: Detailed usage guide with examples
- IMPLEMENTATION_SUMMARY.md: Technical implementation details
- QUICK_START.md: Quick reference guide
- test_batch_doh.sh: Automated test script
🔐 Security Notes
- HTTP mode is intended for local/testing use only
- For production, use HTTPS with TLS certificates (
--https-port) - Use strong, random secrets for JWT signing
- JWT validation uses HS256 (HMAC-SHA256)
📥 Download
Choose the appropriate binary for your architecture:
- Linux AMD64:
dnsproxy-linux-amd64 - Linux ARM64:
dnsproxy-linux-arm64
Verify downloads using SHA256SUMS.txt
✅ Compatibility
- Fully backward compatible with v0.78.2
- All existing functionality preserved
- No breaking changes
🐛 Issues & Feedback
Report issues at: https://github.com/KexiChanProjectProxy/dnsproxy/issues
Based on AdguardTeam/dnsproxy v0.78.2