Resolves DNS names using a custom server before routing traffic through a proxy.
Project description
ProxyDNS
ProxyDNS is a CLI tool that creates a local proxy server with custom DNS resolution capabilities. It resolves domain names using your specified DNS servers before forwarding traffic through an upstream proxy, ensuring DNS queries are handled exactly where and how you want them.
This tool is particularly valuable when you need to:
- Perform DNS resolution in a specific geographic location
- Use custom DNS servers for security or privacy reasons
- Bypass DNS resolution issues that occur with certain proxies
- Maintain control over the DNS resolution process in your proxy chain
Built on mitmproxy for robust traffic handling and dnspython for reliable DNS operations.
Key Features
- Custom DNS Resolution: Use any DNS servers you specify (Google, Cloudflare, private servers, etc.)
- Multi-Protocol Proxy Support: Forward through HTTP, HTTPS, or SOCKS5 upstream proxies
- Intelligent Caching: TTL-based DNS response caching for improved performance
- Flexible Authentication: Support for both local proxy auth and upstream proxy credentials
- Configurable Timeouts: Adjust DNS query timeouts to match your network conditions
Quick Start
# Basic usage with Google DNS and upstream proxy
proxydns --listen-host localhost \
--listen-port 9000 \
--dns-servers 8.8.8.8,1.1.1.1 \
--proxy http://remote-proxy:8080 \
--verbose
# Test your setup
curl -x http://localhost:9000 http://ip-api.com/json
How It Works
- Local Proxy Setup: Creates a local proxy server listening on your specified host/port
- DNS Resolution: Intercepts domain name requests and resolves them using your custom DNS servers
- Traffic Forwarding: Routes the resolved connections through your specified upstream proxy
- Authentication Handling: Manages credentials for both local and remote proxy authentication as needed
This approach gives you complete control over both DNS resolution and proxy routing in a single, streamlined tool.
Installation
pipx install proxydns
Uninstall
pipx uninstall proxydns
pip uninstall proxydns
Build and ship
# 1. change version (pyproject.toml)
# 2. build
python -m build
# 3. ship
twine upload dist/*
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file proxydns-0.0.4.tar.gz.
File metadata
- Download URL: proxydns-0.0.4.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b5702c2f3317c01d1f9ac42cef8e14021bc8551939759825d5bf7a2d6f25470
|
|
| MD5 |
9c46b411e28fe486afba4f5d298e0aa6
|
|
| BLAKE2b-256 |
d04bdb6919b6cf6d6fbae059aeccce8d21edffd16c2da2349a8877245de93d61
|
File details
Details for the file proxydns-0.0.4-py3-none-any.whl.
File metadata
- Download URL: proxydns-0.0.4-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3645507f5c1a51cb1da57bc7860c153fc4217824b0822763220cb5dff3fd3648
|
|
| MD5 |
87a1eade4f051bf4a52ceb7aa5d6a0bb
|
|
| BLAKE2b-256 |
9a7f5044c296d5310dca062724c19c7209ae896986c07a4921f0b1d401f73ad9
|