A Go network platform and proxy core supporting protocols such as VLESS, VMess, Trojan, Shadowsocks, WireGuard, and REALITY.
masterking32/MasterDnsVPN
A DNS tunneling VPN that carries TCP traffic inside DNS queries and responses to get around censorship and unstable networks.
- Stars
- 7,314
- Forks
- 754
- Open issues
- 20
- Last commit
- 5 days ago
What is it?
MasterDnsVPN carries TCP traffic through DNS queries and responses, so traffic looks like ordinary name resolution to networks that filter other protocols. It is positioned as an alternative to DNSTT and SlipStream, using a custom transport with ARQ retransmission and a lighter header overhead than those tools.
The client exposes a local SOCKS5 proxy (or a fixed TCP forward mode), while the server runs on a delegated subdomain. The client manages a pool of recursive resolvers: it tests MTU, balances queries across resolvers using one of several strategies, optionally duplicates packets for reliability, and disables or rechecks resolvers based on health. Payloads can be encrypted with XOR, ChaCha20, or AES-GCM, and an optional local DNS service with caching is available.
Setup requires a domain with an A record and an NS record delegating a subdomain to the server, plus UDP/TCP port 53 open. Prebuilt binaries are provided for Windows, macOS, Linux (including ARM, MIPS and RISC-V), and Termux, and Docker images are published for several architectures.
Key features
- 01Carries TCP traffic through DNS queries using a custom transport with ARQ retransmission.
- 02Balances requests across a pool of resolvers with several selection strategies.
- 03Tests MTU of working resolver pairs and adapts packet sizes to them.
- 04Optionally duplicates packets across resolvers to improve delivery on lossy links.
- 05Offers XOR, ChaCha20 and AES-GCM payload encryption.
- 06Provides a local SOCKS5 proxy and an optional local DNS service with caching.
Use cases
- Reaching the open internet from a network that blocks VPN protocols but allows DNS.
- Testing DNS tunneling behavior and resolver resilience in a research setting.
- Running a self-hosted tunnel server on a small VPS or router-class device.
- Routing a browser or app through a local SOCKS5 proxy over an unreliable connection.
Quick start
- 1
Create an A record and an NS record for a delegated subdomain pointing to your server
- 2
Run the official Linux server install script from the README
- 3
Allow UDP port 53 through the server firewall
sudo ufw allow 53/udp
Things to know
- You need your own domain and must configure DNS delegation before the server can work.
- The README documents Linux server setup only, and DNS record propagation can take hours or up to 48 hours.
- The README states it is provided for educational and research use only, and using it to bypass local laws may have legal consequences.
Topics
FAQ
- What is MasterDnsVPN?
- A DNS tunneling VPN that carries TCP traffic inside DNS queries and responses to get around censorship and unstable networks. MasterDnsVPN carries TCP traffic through DNS queries and responses, so traffic looks like ordinary name resolution to networks that filter other protocols. It is positioned as an alternative to DNSTT and SlipStream, using a custom transport with ARQ retransmission and a lighter header overhead than those tools.
- Is MasterDnsVPN free to use? What license does it have?
- MasterDnsVPN is open source under the MIT license. Check the license terms before using it in commercial products.
- Is MasterDnsVPN still maintained?
- Actively maintained. The last commit to MasterDnsVPN was on Nov 2, 2026.
- What can I use MasterDnsVPN for?
- Reaching the open internet from a network that blocks VPN protocols but allows DNS. Testing DNS tunneling behavior and resolver resilience in a research setting. Running a self-hosted tunnel server on a small VPS or router-class device. Routing a browser or app through a local SOCKS5 proxy over an unreliable connection.
- How do I install MasterDnsVPN?
- Create an A record and an NS record for a delegated subdomain pointing to your server Run the official Linux server install script from the README Allow UDP port 53 through the server firewall: sudo ufw allow 53/udp
- Where can I get MasterDnsVPN?
- The source code and installation instructions are on GitHub: https://github.com/masterking32/MasterDnsVPN
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Go-based proxy built on a customized QUIC protocol, designed to work over lossy networks and disguise traffic as HTTP/3.
Free censorship circumvention VPN app for Android, iOS, Windows, macOS and Linux, aimed at speed, privacy and bypassing internet blocks.
A command-line DNS client written in Go, a modern take on dig with concise output and support for DoH, DoT, DoQ and DNSCrypt.
An Android app that combines many VPN and proxy engines, including Xray, WARP, Psiphon, Tor, and WireGuard, with per-app routing and a serverless messenger.
An experimental Linux transparent-proxy engine in Rust that follows dae's eBPF design and dae config syntax, with sing-box-style outbound groups.