33

After the upgrade I noticed that I don't have internet access. The wired network and the wifi settings looked good, but it didn't work. After the login the system always switched itself into airplane mode. I tethered the network via USB and Bluetooth by my mobile but they also didn't work.

  • 1
  • I agree the decision. And I understand the rule. You have to see that if you have a notebook with an upgraded ubuntu without internet, it is very hard to find the answer by your phone. answers.launchpad.net isn't as well indexed as askubuntu.com – Zoltán Süle Apr 4 '18 at 12:50
  • 1
    @sudodus Please reopen. 18.04 is out and I ran into the exact same issue! – user5950 Apr 28 '18 at 15:32
  • @user5950, I cannot do it alone, but I will cast my reopen vote :-) But it may not work. -- In any case I suggest that you ask a new question (with similar title and text, but not exactly the same). – sudodus Apr 28 '18 at 19:29
  • @user5950: follow the accepted answer that I copied from launchpad.net (andrew-woodhead666). It worked for me. If this is your problem, it will fix it. – Zoltán Süle Apr 29 '18 at 20:53
35

I reported the bug on launchpad. You can subscribe if you are involved: https://bugs.launchpad.net/ubuntu/+bug/1816530

the ORIGIN of the solution

if the /etc/resolv.conf is empty but you can ping 8.8.8.8

$ echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null

if the /etc/resolvconf/resolv.conf.d/head is empty then you have to repeat the command above after every restart except you do this:

$ echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolvconf/resolv.conf.d/head > /dev/null

then you have to restart the resolvconf and the networking

$ sudo systemctl enable resolvconf
$ sudo systemctl start resolvconf
$ sudo /etc/init.d/networking restart
  • 1
    is the nameserver set in the /etc/resolv.conf file? If not add nameserver 8.8.8.8 to this file – Zoltán Süle Apr 4 '18 at 12:48
  • 4
    adding the nameserver in the /etc/resolv.conf and restarting by sudo /etc/init.d/networking restart did the magic! Thanks a lot!! – Eftychia Thomaidou Apr 4 '18 at 13:11
  • 1
    @EftychiaThomaidou, Congratulations and thanks for sharing your solution/confirming that this method works :-) – sudodus Apr 4 '18 at 13:26
  • 2
    @sudodus @EftychiaThomaidou: you have to add it to /etc/resolvconf/resolv.conf.d/head too. Otherwise you have to repeat the editing of the /etc/resolv.conf file after every reboot. – Zoltán Süle Apr 4 '18 at 13:58
  • 1
    This is a workaround, but not a good solution, and will probably break your system in unpredictable ways in the future. You should use the network configuration GUI or netplan to configure your network properly. – JanC May 2 '18 at 19:18
6

Accepted answer did solve my problem. However, as everyone else stated, that is only until you reboot which I do daily with my machine. Typing 5 to 6 lines in the terminal every time I start the system up isn't something I would find amusing.

After digging on the internet I found a solution to permanently solve the problem. I rebooted 3 times afterward just to be sure, internet connection is there and I don't have to do anything.

Solution:

Start the terminal and type:

$ ifconfig

Now you gotta figure out which is your Ethernet interface. Mine is listed as eth1. Next type:

$sudo gedit /etc/network/interfaces

My file only had:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

Now what you need to do is to add the following lines afterwards:

auto eth1
iface eth1 inet dhcp

Lastly, $ sudo ifup eth1, reboot and you're done. Don't forget to change eth1 with the name of your Ethernet interface.

Original answer

  • This is the answer that did it for me. My computer abruptly disconnected from the router immediately after the update. That means I couldn't even visit the router's landing page at 192.168.0.1. I wrote a script called estalker.sh, which watches the ability to curl google.com like a hawk. The instant I typed in sudo ifup eno1, estalker reported internet access and the landing page refreshed in chromium to show a working admin console. – Braden Best Jan 15 at 22:42
4

I agree with some other folks here that the selected answer is probably not the best way to fix the issue:

When a file has a comment at its beginning that says

"DO NOT EDIT THIS FILE"

then there is probably a very good reason to, well, ... not edit that file! ;-)

And here is why, as well as a suggestion for a better (IMHO) solution:

a. the file /etc/resolv.conf, that you modified, will be overwritten at boot time, so your modification won't 'stick'.

b. the ip address (127.0.0.53) that was originally in there (before you modified it) is actually the address of a DNS stub resolver. It's there! You can ping it! it's running locally on your machine. What is a stub resolver? It takes your DNS queries and looks in its cache for a resolution! If it can't find any, it will reach out to a real DNS server (and then cache the result). So, if you overwrite the address of the stub resolver, you're going to miss out on this important caching function of the stub resolver!

The problem with this new resolver method in Ubuntu 18.04 is that the 'real' DNS server address was never set. So, if the stub resolver doesn't find your requested domain in its cache, it doesn't know what DNS server to query. (Hence your domain name based internet accesses no longer working). So all you have to do is configure the 'real' DNS server that this stub resolver must use. And you do this by editing (sudo!) /etc/systemd/resolved.conf

Simply add something like

DNS=8.8.8.8

to that file.

Then restart the network, or rather, reboot, so you can verify that you now have a solution that is persistent across reboots.

(What I haven't figured out yet, is why DHCP doesn't properly set the correct DNS server!)

  • Didn't work for me... – Ng Sek Long Sep 21 '18 at 3:30
  • I added "DNS=8.8.8.8 8.8.4.4 4.2.2.2" and then ran "systemctl restart systemd-resolved' and it worked. – Larry R. Irwin Jun 20 at 18:57
3

tl;dr

First, edit this file

sudo vim /etc/resolvconf/resolv.conf.d/base

Second, Add the following

nameserver 8.8.8.8
nameserver 8.8.4.4

After that, restart Ubuntu, should have internet now.


Explain

Some of the solution listed worked, but will failed once restart Ubuntu (in my case, VM),

The above solution is a tl;dr form this solution (https://unix.stackexchange.com/a/128223/243480) and it worked perfectly

  • why does this file have '/base'? The file seems located as /etc/resolvconf/resolv.conf.d – Andrés Parada Nov 6 '18 at 17:29
  • 2
    For my ubuntu, it does have /base, and resolv.conf.d is a directory – Ng Sek Long Nov 7 '18 at 1:17
  • 2
    It works for me! – Natan shalva Jan 2 at 8:02
  • Yes, just as you said: /etc/resolv.conf will be wiped after reboot. Yours is the solution I used, except I used nano ;-) – Bastion Jun 13 at 3:41
  • nano will be fine for this job :) – Ng Sek Long Jun 13 at 4:15
1

I was having the same issue on ubuntu 18.04 and the above answer didn't work for me as I didn't have a folder named /etc/resolvconf/resolv.conf.d/. So I did the following

sudo mkdir -p /etc/resolvconf/resolv.conf.d
sudo touch /etc/resolvconf/resolv.conf.d/head

Then I added nameserver 8.8.8.8 to the file /etc/resolvconf/resolv.conf.d/head

Then a simple network restart solved the issue.

sudo /etc/init.d/networking restart
0

Changing /etc/resolv.conf is not the best answer to this problem. According to Ubuntu 16.04 documentation resolv.conf file can be overwritten by system at any time.
If you are using static IP configuration you should add one line to you /etc/network/interfaces file in you ethernet card configuration. It should look something like:

iface eth0 inet static 
    address 192.168.3.3 
    emsp;netmask 255.255.255.0 
    gateway 192.168.3.1 
    dns-nameservers 8.8.8.8

And then to restart your network run:

/etc/init.d/networking restart

If you want to avoid any possible problems in the future, you can do one more thing. Upgrading from 16.04 to 18.04 does not change network configuration method from /etc/network to new /etc/netplan used in 18.04. If you want to change it manually look at How to enable netplan on ubuntu server upgraded from 16.04 to 18.04

  • if other people confirm this is the right answer, I will accept it! Consider that my answer comes from the official ubuntu page (launchpad) and the main problem is the missing name server IP setting. Fixing the internet is important if you want to install anything like netplan.io. – Zoltán Süle Aug 20 '18 at 9:27
0

Hello All Almost total noob here but I ran into this problem when I started dual booting between Windows 10 and loaded Ubuntu 18.04 on a separate hard drive. My internet wouldn't connect and my router wouldn't allow me to open up the configuration interface. I finally figured out that it was because I had DCHP set to assign a static IP to Windows 10. After checking all the information I could find and nothing working I loaded Windows 10 and removed the routers static IP from the DHCP settings. That got internet working but I wanted a static IP for Windows and Ubuntu. Best I can figure is that Ubuntu doesn't take the hand off from the routers DHCP server properly despite being set to automatic. Once I manually configured the static IP address and Gateway in Ubuntu could I go back to having aforesaid static IP. Hope this helps someone. Drew

0

On the non-working updated PC the symlink was :

/etc/resolv.conf -> /run/resolveconf/resolv.conf

On a working PC with 18.04 the symlink was :

/etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf

then I replace the old linked file with a new one :

rm  /etc/resolv.conf
sudo ln -s  /run/systemd/resolve/stub-resolv.conf  /etc/resolv.conf

(work after procedures described below)

-1

I solved a connection failure after an upgrade by using a wireless connection using a USB-attached network adapter, then changing to the preferred wired connection directly to the router.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.