Skip to main content

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

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:

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:

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:
Supported Interfaces:
  • Wi-Fi
  • Ethernet
  • Thunderbolt Ethernet
  • USB Ethernet
Verify:

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:
Supported Interfaces:
  • Wi-Fi
  • Ethernet
  • All network adapters shown in Network Connections
Verify:

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
Direct Mode
  • Dnsmasq DNS is disabled (port set to 0)
  • DNS-MNS listens directly on port 53
  • Dnsmasq continues to provide DHCP

Configuration

See the OpenWrt Guide for detailed instructions.

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

  1. Download dns-mns-android-0.0.4-beta.apk from the Releases page
  2. Enable Install from unknown sources on your device
  3. Install the APK and open DNS-MNS
Android support is in beta (v0.0.4-beta). Some features may be incomplete or unstable. Please report issues on the GitLab repository.

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

Optional for shell script:

Checking Your System

Run these commands to verify compatibility:

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