Skip to content

v0.78.3-batch-doh: Custom Batch DoH Query Support

Choose a tag to compare

@ZhiShengYuan ZhiShengYuan released this 15 Jan 07:37
· 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