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.5.tar.gz (6.4 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.5-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: proxydns-0.0.5.tar.gz
  • Upload date:
  • Size: 6.4 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.5.tar.gz
Algorithm Hash digest
SHA256 89ebdb0b2c21b66214c70415d0e8bc5c2b89058b9b1d43dbf8eaa981e9f27551
MD5 b00753d3dd2d2f68eda84be3fc2b618a
BLAKE2b-256 65117a9ce8c1262209dd85fb8664124cb9d8d2828daadb372ab1caef11c9d713

See more details on using hashes here.

File details

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

File metadata

  • Download URL: proxydns-0.0.5-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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 181a0be17a37d546c92cafb075f3711587465147c447c963a0dcd990e7c538cf
MD5 71f7bdbf34ac399f9f34c6201425542e
BLAKE2b-256 4a67e75e77e6bc2296410550942b40f7ac5449838107160f823653a96b5188e2

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