My DNS changes on its own but its changes can't be observed through /etc/resolv.conf
I made a script to print /etc/resolv.conf and ping result of www.reddit.com for every second. I used Cloudflare’s DNS (1.1.1.1) because reddit is blocked in my country but bypassable using DNS. It seems that after around 10 seconds of logging into my desktop, my DNS goes back to my default gateway (192.168.1.1). What can I do to keep my DNS at 1.1.1.1?
My script:
#! /bin/bash
while true
do
cat /etc/resolv.conf
ping -c 1 www.reddit.com | grep "ping statistics" | sed "s/--- /$(date) /" | sed "s/ ping statistics ---//"
sleep 1
done
Result of running it immediately after reboot and login:
# Generated by NetworkManager
nameserver 1.1.1.1
nameserver 1.0.0.1
Sat Aug 19 11:19:49 AM WIB 2023 reddit.map.fastly.net
# Generated by NetworkManager
nameserver 1.1.1.1
nameserver 1.0.0.1
Sat Aug 19 11:19:58 AM WIB 2023 reddit.map.fastly.net
# Generated by NetworkManager
nameserver 1.1.1.1
nameserver 1.0.0.1
Sat Aug 19 11:20:07 AM WIB 2023 reddit.map.fastly.net
# Generated by NetworkManager
nameserver 1.1.1.1
nameserver 1.0.0.1
Sat Aug 19 11:20:16 AM WIB 2023 trustpositif.kominfo.go.id
# Generated by NetworkManager
nameserver 1.1.1.1
nameserver 1.0.0.1
Sat Aug 19 11:20:17 AM WIB 2023 trustpositif.kominfo.go.id
# Generated by NetworkManager
nameserver 1.1.1.1
nameserver 1.0.0.1
Sat Aug 19 11:20:18 AM WIB 2023 trustpositif.kominfo.go.id
More info:
❯ nslookup www.reddit.com 1.1.1.1
Server: 1.1.1.1
Address: 1.1.1.1#53
Non-authoritative answer:
www.reddit.com canonical name = reddit.map.fastly.net.
Name: reddit.map.fastly.net
Address: 151.101.129.140
Name: reddit.map.fastly.net
Address: 151.101.1.140
Name: reddit.map.fastly.net
Address: 151.101.65.140
Name: reddit.map.fastly.net
Address: 151.101.193.140
❯ nslookup www.reddit.com 192.168.1.1
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
www.reddit.com canonical name = trustpositif.kominfo.go.id.
Name: trustpositif.kominfo.go.id
Address: 27.54.116.70
❯ grep hosts /etc/nsswitch.conf
hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns
❯ resolvectl
Global
Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: foreign
Current DNS Server: 1.0.0.1
DNS Servers: 1.1.1.1 1.0.0.1
Fallback DNS Servers: 1.1.1.1#cloudflare-dns.com 9.9.9.9#dns.quad9.net 8.8.8.8#dns.google 2606:4700:4700::1111#cloudflare-dns.com 2620:fe::9#dns.quad9.net
2001:4860:4860::8888#dns.google
Link 2 (enp5s0)
Current Scopes: none
Protocols: -DefaultRoute +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
Link 4 (wlan0)
Current Scopes: DNS LLMNR/IPv4 mDNS/IPv4
Protocols: +DefaultRoute +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 192.168.1.1
DNS Servers: 192.168.1.1
Your system is using systemd-resolved
as its primary DNS resolver (as the keyword resolve
is before dns
in nsswitch.conf
), so /etc/resolv.conf
only gets used if systemd-resolved
is not running.
Run resolvectl
to see your real DNS settings.
/etc/resolv.conf
is effectively obsolete on your system.