Supported Systems
DNS-MNS runs on Windows, macOS, and Linux. 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 |
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
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