Skip to content

A new DNSTT (DNS Tunneling, Server/Client) written in Python. It supports multiple domains and resolvers simultaneously, balancing packet chunks across different resolvers. You can choose between QUIC or KCP depending on your requirements. (Under Development)

Notifications You must be signed in to change notification settings

masterking32/MasterDnsVPN

Repository files navigation

🚀 MasterDnsVPN

MasterDnsVPN is a powerful, cross-platform DNS tunneling VPN written in Python. It enables secure and covert data transmission by encapsulating VPN traffic within DNS queries and responses, allowing users to bypass network restrictions and firewalls by leveraging DNS as a transport channel.

MasterDnsVPN provides both server and client components, featuring robust encryption, flexible domain management, resolver balancing, and automatic MTU optimization. It is designed for bypassing censorship, enabling secure communication in restricted networks, and supporting research or educational purposes. For alternative DNS tunneling solutions, consider Dnstt, SlipStream, Iodine, or DNSCat2.

🚧 UNDER DEVELOPMENT

⚠️ This project is currently under development and is not yet fully functional. It is not ready for use at this time. Please follow the repository for updates and check back next week!


🛠️ How It Works

┌────────────┐      DNS Queries     ┌────────────┐      ┌────────────┐
│  Client    │  <---------------->  │   Server   │ <--> │  Internet  │
│ (Python)   │    (Encapsulated)    │  (Python)  │      │   (DNS)    │
└────────────┘                      └────────────┘      └────────────┘
  1. 🗝️ Client encodes and encrypts VPN data into DNS queries.
  2. 🔓 Server decodes, decrypts, and forwards data to the internet.
  3. 🔁 Replies are sent back via DNS responses.

✨ Features

  • 🛡️ DNS tunneling for VPN traffic (bypass firewalls and censorship)
  • 🐍 Simple, readable Python codebase
  • ⚙️ Configurable server and client with easy Python config files
  • 🔒 Multiple encryption methods: XOR, ChaCha20, AES-CTR (128/192/256) + SSL
  • 🌐 Support for multiple tunnel domains and DNS resolvers
  • 📏 MTU testing and optimization for upload/download
  • 🎲 Resolver balancing strategies: random, round robin, least packet loss
  • 🚫 Automatic exclusion of slow or lossy resolvers
  • 📋 Logging with selectable verbosity
  • 💻 Cross-platform (Windows, Linux, macOS; Python 3.6+)

📦 Requirements

  • 🐍 Python 3.6 or higher

⚡ Installation

  1. Clone the repository:
    git clone https://github.com/masterking32/MasterDnsVPN.git
    cd MasterDnsVPN
  2. Install dependencies:
    pip install -r requirements.txt

🚀 Quick Start

1. 🖥️ Server Setup

  1. Copy and edit the config:
    cp server_config.py.simple server_config.py
    # Edit server_config.py as needed
  2. Run the server:
    python server.py

2. 💻 Client Setup

  1. Copy and edit the config:
    cp client_config.py.simple client_config.py
    # Edit client_config.py as needed
  2. Run the client:
    python client.py

📝 Configuration Tips

  • 🌍 Domains: Use your own domain(s) pointed to the server's IP for tunneling.
  • 🔑 Encryption: Set the same encryption method and key on both client and server. The key is generated by the server on first run (see logs).
  • Resolvers: Use fast, reliable DNS resolvers for best performance.
  • 📏 MTU: The client will test and recommend optimal MTU values for upload/download.
  • 🚫 Packet Loss: Remove or comment out slow/losing resolvers in the client config.

🤝 Contributing

Contributions are welcome! Please fork the repository and create a pull request with your changes.


📄 License

This project is licensed under the MIT License. See the LICENSE file for details.


👨‍💻 Developer

Developed by MasterkinG32

About

A new DNSTT (DNS Tunneling, Server/Client) written in Python. It supports multiple domains and resolvers simultaneously, balancing packet chunks across different resolvers. You can choose between QUIC or KCP depending on your requirements. (Under Development)

Topics

Resources

Stars

Watchers

Forks

Languages