Supported Systems
DNS-MNS runs on Windows, macOS, Linux, OpenWrt, and Android. This page details supported versions and how DNS is configured on each platform.Compatibility Matrix
| Operating System | Versions | DNS Method | Status |
|---|---|---|---|
| Ubuntu | 18.04+ | systemd-resolved / NetworkManager | Fully Supported |
| Debian | 10+ | systemd-resolved / NetworkManager | Fully Supported |
| Fedora | 30+ | systemd-resolved / NetworkManager | Fully Supported |
| Arch Linux | Rolling | systemd-resolved / NetworkManager | Fully Supported |
| CentOS/RHEL | 8+ | systemd-resolved | Fully Supported |
| openSUSE | 15+ | NetworkManager | Fully Supported |
| macOS | 10.14+ | networksetup | Fully Supported |
| Windows 10 | All builds | PowerShell | Fully Supported |
| Windows 11 | All builds | PowerShell | Fully Supported |
| OpenWrt | 19.07+ | UCI (dnsmasq integration) | Fully Supported |
| Android | 8.0+ (API 26) | VPN API | Beta |
Linux
DNS-MNS automatically detects your Linux distribution and uses the appropriate method.systemd-resolved
Used by most modern distributions including Ubuntu, Fedora, and Arch. Detection: Checks ifsystemd-resolved service is running
Configuration:
- Creates
/etc/systemd/resolved.conf.d/dns-mns.conf - Restarts
systemd-resolvedservice
NetworkManager
Common on desktop distributions with graphical environments. Detection: Checks ifnmcli command is available
Configuration:
- Modifies active connection via
nmcli - Sets
ipv4.ignore-auto-dns yes
resolv.conf Fallback
For minimal systems without systemd-resolved or NetworkManager. Configuration:- Backs up
/etc/resolv.conf - Writes new nameserver entries
macOS
macOS support is straightforward using built-in system commands.Requirements
- macOS 10.14 (Mojave) or newer
- No additional software required
How It Works
Usesnetworksetup to configure all active network services:
- Wi-Fi
- Ethernet
- Thunderbolt Ethernet
- USB Ethernet
Windows
Pre-Built Binary (Recommended)
The.exe binary runs natively on Windows. No Git Bash or WSL needed.
- Download
dns-mns-windows-amd64.exefrom the Releases page - Right-click and select “Run as administrator” to enable DNS configuration
- That’s it — no installation needed
Shell Script (requires Bash environment)
Option A: Git Bash- Download from git-scm.com/download/win
- Install with default options
- Open Git Bash
- Run installation command
- Open PowerShell as Administrator
- Run:
wsl --install - Restart computer
- Open Ubuntu from Start Menu
- Follow Linux instructions
How It Works
Uses PowerShell commands:- Wi-Fi
- Ethernet
- All network adapters shown in Network Connections
OpenWrt
DNS-MNS provides native support for OpenWrt routers with UCI integration.Supported Architectures
- x86_64 - x86 routers and virtual machines
- MIPS - Older routers (TP-Link WR841N, etc.)
- MIPSel - Some TP-Link and D-Link models
- ARM v7 - Raspberry Pi 2/3, modern routers
- ARM64 - Raspberry Pi 4, high-end routers
Installation
Two Operation Modes
Upstream Mode (Recommended)- Dnsmasq remains on port 53
- DNS-MNS runs on a different port (default: 5353)
- Dnsmasq forwards queries to DNS-MNS
- Dnsmasq DNS is disabled (port set to 0)
- DNS-MNS listens directly on port 53
- Dnsmasq continues to provide DHCP
Configuration
Android (Beta)
DNS-MNS is available as a standalone APK for Android devices.Requirements
- Android 8.0 (Oreo) or newer
- No root access required
How It Works
Uses Android’s VPN API to create a local VPN tunnel that intercepts and routes DNS queries:- arm64-v8a - Most modern phones (Pixel, Samsung Galaxy, etc.)
- armeabi-v7a - Older 32-bit ARM devices
- x86_64 - Android emulators, ChromeOS
- x86 - Older Intel-based tablets
Installation
- Download
dns-mns-android-0.0.4-beta.apkfrom the Releases page - Enable Install from unknown sources on your device
- Install the APK and open DNS-MNS
Dependencies
Pre-Built Binary
The Go binary has no external dependencies. Everything is built in, including:- ICMP ping testing
- DNS query testing (native Go, no
digneeded) - DNS configuration for all platforms
Shell Script
| Tool | Purpose | Linux | macOS | Windows |
|---|---|---|---|---|
| bash | Script execution | 4.0+ | Built-in | Git Bash |
| ping | ICMP testing | Built-in | Built-in | Built-in |
| Tool | Purpose | Installation |
|---|---|---|
| dig | DNS response testing | apt install dnsutils / brew install bind |
| gawk | Floating-point math | apt install gawk |
| curl/wget | Installation | Usually pre-installed |
Checking Your System
Run these commands to verify compatibility:Known Limitations
Linux
Linux
- Some immutable distros (Fedora Silverblue) may have restrictions
- Container environments may not support DNS changes
- WSL1 has limited DNS modification support (WSL2 works)
macOS
macOS
- VPN apps may override DNS settings
- Some corporate MDM policies may prevent DNS changes
Windows
Windows
- Requires Administrator privileges
- Some antivirus software may block DNS changes
- Corporate group policies may prevent modifications