Skip to main content

Adding DNS Servers

One of the most valuable contributions is adding new DNS servers, especially ones that work well in Iran.

DNS List Format

DNS servers are stored in two configuration files: Root dns-list.conf (used by the shell script):
NAME|PRIMARY_IP|SECONDARY_IP|LOCATION
internal/dnslist/dns-list.conf (embedded in the Go binary):
NAME|PRIMARY_IP|SECONDARY_IP|LOCATION|DOH_URL|DOT_HOST
FieldDescriptionExample
NAMEDisplay name for the DNSCloudflare
PRIMARY_IPPrimary DNS server IP1.1.1.1
SECONDARY_IPSecondary/fallback IP1.0.0.1
LOCATIONGeographic location or categoryGlobal
DOH_URLDNS-over-HTTPS endpoint (use - if none)https://cloudflare-dns.com/dns-query
DOT_HOSTDNS-over-TLS hostname (use - if none)one.one.one.one
When adding new DNS servers, make sure to update both configuration files to keep them in sync.

Example Entries

# International DNS
Cloudflare|1.1.1.1|1.0.0.1|Global
Google|8.8.8.8|8.8.4.4|Global

# Iranian DNS
Shecan|178.22.122.100|185.51.200.2|Iran
Electro|37.152.182.112|37.152.182.113|Iran

# Gaming DNS
RadarGame|10.202.10.10|10.202.10.11|Iran

Adding a New DNS Server

Step 1: Verify the DNS Works

Before adding, verify the DNS server is working:
# Test ping
ping -c 3 NEW_DNS_IP

# Test DNS resolution
dig @NEW_DNS_IP google.com

# Or with nslookup
nslookup google.com NEW_DNS_IP

Step 2: Edit dns-list.conf

Open the configuration file:
# If installed
nano ~/.dns-mns/dns-list.conf

# If working with repo
nano dns-list.conf

Step 3: Add Your Entry

Add your DNS server in the appropriate section:
# Added YYYY-MM-DD - Brief description
# Source: URL or how you found this DNS
MyNewDNS|1.2.3.4|5.6.7.8|Location

Step 4: Test with DNS-MNS

Run the tool and verify your DNS appears:
./dns-mns.sh
# Select "Test Gaming DNS"
# Look for your DNS in the list

Categories

Add your DNS to the appropriate category in the file:
CategorySection HeaderDescription
International# International Gaming DNSGlobal providers like Cloudflare, Google
Regional# Regional/Middle East DNSIran-specific DNS servers
Gaming# Gaming Optimized DNSLow-latency gaming DNS
Privacy# VPN/Privacy DNSPrivacy-focused providers
Additional# Additional Iranian DNSExtra Iranian DNS options

Guidelines for Adding DNS

Submitting Your Addition

Via Pull Request (Preferred)

  1. Fork the repository
  2. Edit dns-list.conf
  3. Commit with message: feat: add [DNS Name] to dns list
  4. Open a pull request
PR Description Template:
## New DNS Server

**Name:** MyNewDNS
**Primary IP:** 1.2.3.4
**Secondary IP:** 5.6.7.8
**Location:** Iran

## Verification

- [x] Ping test successful
- [x] DNS resolution works
- [x] Tested from Iran (if applicable)

## Source

Found on [website/forum/etc.]

Via Issue

If you’re not comfortable with pull requests:
  1. Open a new issue
  2. Title: “Add DNS: [DNS Name]”
  3. Include:
    • DNS name
    • Primary and secondary IPs
    • Location
    • How you verified it works
    • Where you found it

Bulk DNS Additions

If you have multiple DNS servers to add:
  1. Create a text file with all entries
  2. Open a pull request or issue
  3. We’ll review and merge valid entries

Removing Outdated DNS

If you find a DNS server that no longer works:
  1. Open an issue titled “DNS not working: [DNS Name]”
  2. Include:
    • Which DNS is not working
    • Error you’re seeing
    • When you tested it
Or submit a PR removing the entry with verification.

Privacy Considerations

When adding DNS servers:
  • Don’t add private/internal DNS without permission
  • Verify the DNS provider is legitimate
  • Note if the DNS has any content filtering
Thank you for helping expand the DNS-MNS database!