Skip to main content

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

  1. Local Proxy Setup: Creates a local proxy server listening on your specified host/port
  2. DNS Resolution: Intercepts domain name requests and resolves them using your custom DNS servers
  3. Traffic Forwarding: Routes the resolved connections through your specified upstream proxy
  4. 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

proxydns-0.0.4.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

proxydns-0.0.4-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

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

Hashes for proxydns-0.0.4.tar.gz
Algorithm Hash digest
SHA256 9b5702c2f3317c01d1f9ac42cef8e14021bc8551939759825d5bf7a2d6f25470
MD5 9c46b411e28fe486afba4f5d298e0aa6
BLAKE2b-256 d04bdb6919b6cf6d6fbae059aeccce8d21edffd16c2da2349a8877245de93d61

See more details on using hashes here.

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

Hashes for proxydns-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3645507f5c1a51cb1da57bc7860c153fc4217824b0822763220cb5dff3fd3648
MD5 87a1eade4f051bf4a52ceb7aa5d6a0bb
BLAKE2b-256 9a7f5044c296d5310dca062724c19c7209ae896986c07a4921f0b1d401f73ad9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page