0

For about 2 hours I've been banging my head against a wall trying to get /etc/resolv.conf to use 127.0.0.1 instead of 127.0.0.53

I've just finished grep -r on my entire partition and cannot find where this damn file is coming from. Whenever I restart the service it defaults back to 127.0.0.53

This is actually just to get a dnsmasq (running in docker) to be a pass-through DNS.

6
  • Read man resiolvconf
    – waltinator
    Oct 2, 2018 at 15:58
  • If you're asking what I think you're asking then it appears to be compiled in to the systemd-resolved binary (specifically, the value of INADDR_DNS_STUB in the resolved-dns-stub.h file) Oct 2, 2018 at 17:27
  • Is there any way to avoid INADDR_DNS_STUB?
    – MrMesees
    Oct 2, 2018 at 19:28
  • Also @waltinator, I did. I could not find actionable information. If you know where there is for bionic 18.04, I'd love to hear about it.
    – MrMesees
    Oct 2, 2018 at 19:29
  • @steeldriver Please see my answer.
    – heynnema
    Oct 2, 2018 at 21:08

2 Answers 2

0

Looks like Ubuntu since 17.10 (possibly) now uses netplan by default to provide it's DNS source.

My Default Ubuntu (bionic) looks like this

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

This is why I later found NetworkManager through it's X/GTK frontend to be a suitable place to set the DNS (although I also did not know about nmcli). Apparently renderers supported so far are NetworkManager and networkd, although it's noted 1 that only NetworkManager supports WiFi.

I've yet to find a place to set this up so that it can work for all interfaces like the old method of editing /etc/resolv.conf, which doesn't work in vanilla 18.04 (maybe could, but it's a lot of work, I'm end-goal oriented).

3
  • networkd does support wireless interfaces, but it's much easier using NetworkManager. You should never manually edit /etc/resolv.conf. Use the GUI to set DNS servers.
    – heynnema
    Oct 18, 2018 at 13:58
  • I'm not manually editing /etc/resolv.conf because it doesn't bloody well work in 18.04 vanilla. I've specifically stated I do exactly what you've advised me to do. Our difference of opinion is that I'm unhappy about needing to use a GUI to do that
    – MrMesees
    Oct 18, 2018 at 16:07
  • 1
    See this post and look at tudor's answer for how to do it via cli.
    – heynnema
    Oct 18, 2018 at 16:19
0

pre-note: never manually edit /etc/resolv.conf

127.0.0.1 in /etc/resolv.conf comes from dnsmasq.

127.0.0.53 in /etc/resolv.conf comes from systemd-resolved.

dnsmasq and systemd-resolved should normally not run at the same time... as they tend to step on each others toes.

If you want dnsmasq to run, you have to tell systemd-resolved to back off, like so...

sudo pico /etc/systemd/resolved.conf

Change:

#DNSStubListener=yes

to:

DNSStubListener=no

Then reboot.

4
  • Hi, this is something I ran, however it did not resolve the issue, and in-fact crashed DNS. This is a vanilla bionic. Can you confirm this works on your machine? On mine it required two settings in order to free up port 53 DNSStubListener=no and DNSStubHandler=no It's got all updates installed on the system.
    – MrMesees
    Oct 2, 2018 at 21:51
  • @MrMesees After changing DNSStubListener, did you reboot the system? I don't know about DNSStubHandler... where do you see that? Edit/update your question with ls -al /etc/resolv.conf. Report back to @heynnema
    – heynnema
    Oct 2, 2018 at 22:10
  • I did. I also attempted restarting the service. Also I tried disabling the service before stop, then enabling and starting.
    – MrMesees
    Oct 2, 2018 at 22:33
  • Please answer my ls question. Use @heynnema in comments to me, or I may miss them. Thanks.
    – heynnema
    Oct 2, 2018 at 23:42

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .