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.3.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.3-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file proxydns-0.0.3.tar.gz.

File metadata

  • Download URL: proxydns-0.0.3.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.3.tar.gz
Algorithm Hash digest
SHA256 d4747c2e5e04022419b5549facc6f487b08511d431bc0d542e56549d9383e476
MD5 9a2a53d17e96e034f85a0329e15bcf9c
BLAKE2b-256 171f622a1a7b06303d7c3d7d805dbf8994147a28e9bbdfe17142e3ff90ea0bcb

See more details on using hashes here.

File details

Details for the file proxydns-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: proxydns-0.0.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5535308412fc864ac54269956619695074eb74944cb69aafc2b21363d72350bf
MD5 458ba94f5dc4e2f010a05bc8b4695a8e
BLAKE2b-256 dde70e6ca1de3bf5e62f5cfbdcd9823b56cca407b528c3090d1e21de3e9d10b3

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