Skip to main content

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 SystemVersionsDNS MethodStatus
Ubuntu18.04+systemd-resolved / NetworkManagerFully Supported
Debian10+systemd-resolved / NetworkManagerFully Supported
Fedora30+systemd-resolved / NetworkManagerFully Supported
Arch LinuxRollingsystemd-resolved / NetworkManagerFully Supported
CentOS/RHEL8+systemd-resolvedFully Supported
openSUSE15+NetworkManagerFully Supported
macOS10.14+networksetupFully Supported
Windows 10All buildsPowerShellFully Supported
Windows 11All buildsPowerShellFully 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 if systemd-resolved service is running Configuration:
  • Creates /etc/systemd/resolved.conf.d/dns-mns.conf
  • Restarts systemd-resolved service
Verify:
resolvectl status

NetworkManager

Common on desktop distributions with graphical environments. Detection: Checks if nmcli command is available Configuration:
  • Modifies active connection via nmcli
  • Sets ipv4.ignore-auto-dns yes
Verify:
nmcli connection show "Your Connection" | grep dns

resolv.conf Fallback

For minimal systems without systemd-resolved or NetworkManager. Configuration:
  • Backs up /etc/resolv.conf
  • Writes new nameserver entries
Changes to /etc/resolv.conf may be overwritten by DHCP. Consider using systemd-resolved or NetworkManager for persistent changes.

macOS

macOS support is straightforward using built-in system commands.

Requirements

  • macOS 10.14 (Mojave) or newer
  • No additional software required

How It Works

Uses networksetup to configure all active network services:
networksetup -setdnsservers "Wi-Fi" 1.1.1.1 1.0.0.1
Supported Interfaces:
  • Wi-Fi
  • Ethernet
  • Thunderbolt Ethernet
  • USB Ethernet
Verify:
networksetup -getdnsservers "Wi-Fi"
scutil --dns

Windows

The .exe binary runs natively on Windows. No Git Bash or WSL needed.
  1. Download dns-mns-windows-amd64.exe from the Releases page
  2. Right-click and select “Run as administrator” to enable DNS configuration
  3. That’s it — no installation needed

Shell Script (requires Bash environment)

Option A: Git Bash
  1. Download from git-scm.com/download/win
  2. Install with default options
  3. Open Git Bash
  4. Run installation command
Note: Right-click Git Bash and select “Run as Administrator” to change DNS settings. Option B: WSL (Windows Subsystem for Linux)
  1. Open PowerShell as Administrator
  2. Run: wsl --install
  3. Restart computer
  4. Open Ubuntu from Start Menu
  5. Follow Linux instructions

How It Works

Uses PowerShell commands:
Set-DnsClientServerAddress -InterfaceAlias "Wi-Fi" -ServerAddresses ("1.1.1.1","1.0.0.1")
Supported Interfaces:
  • Wi-Fi
  • Ethernet
  • All network adapters shown in Network Connections
Verify:
Get-DnsClientServerAddress

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 dig needed)
  • DNS configuration for all platforms

Shell Script

ToolPurposeLinuxmacOSWindows
bashScript execution4.0+Built-inGit Bash
pingICMP testingBuilt-inBuilt-inBuilt-in
Optional for shell script:
ToolPurposeInstallation
digDNS response testingapt install dnsutils / brew install bind
gawkFloating-point mathapt install gawk
curl/wgetInstallationUsually pre-installed

Checking Your System

Run these commands to verify compatibility:
# Check bash version
bash --version

# Check if ping works
ping -c 1 1.1.1.1

# Check for dig (optional)
which dig

# Check for systemd-resolved (Linux)
systemctl status systemd-resolved

# Check for NetworkManager (Linux)
which nmcli

Known Limitations

  • Some immutable distros (Fedora Silverblue) may have restrictions
  • Container environments may not support DNS changes
  • WSL1 has limited DNS modification support (WSL2 works)
  • VPN apps may override DNS settings
  • Some corporate MDM policies may prevent DNS changes
  • Requires Administrator privileges
  • Some antivirus software may block DNS changes
  • Corporate group policies may prevent modifications