Connect to Wi-Fi From Terminal on Ubuntu 18.04/19.10 with WPA Supplicant

In this tutorial, we are going to learn how to connect to Wi-Fi network from command line on Ubuntu 18.04/19.10 server and desktop using wpa_supplicant. In a modern home wireless network, communications are protected with WPA-PSK (pre-shared key) as opposed to WPA-Enterprise, which is designed for enterprise networks. WPA-PSK is also known as WPA-Personal. wpa_supplicant is an implementation of the WPA supplicant component. A supplicant in wireless LAN is a client software installed on end-user’s computer that needs to be authenticated in order to join a network.

Step 1: Find The Name of Your Wireless Interface And Wireless Network

Run iwconfig command to find the name of your wireless interface.

iwconfig

wlan0 used to be a common name for wireless network interface on Linux systems without Systemd. Because Ubuntu uses Systemd, you are going to find that your wireless network interface is named something like wlp4s0. You can also see that it’s not associated with any access point right now.

ubuntu server connect to wifi terminal

If your wireless interface isn’t shown, perhaps you need to bring it up with the following command.

sudo ifconfig wlp4s0 up

Then find your wireless network name by scanning nearby networks with the command below. Replace wlp4s0 with your own wireless interface name. ESSID is the network name identifier.

sudo iwlist wlp4s0 scan | grep ESSID

ubuntu 19.04 connect to wifi command line wpa supplicant

Step 2: Connect to Wi-Fi Network With WPA_Supplicant

Now install wpa_supplicant on Ubuntu 18.04/19.10 from the default software repository.

sudo apt install wpasupplicant

We need to create a file named wpa_supplicant.conf using the wpa_passphrase utility. wpa_supplicant.conf is the configuration file describing all networks that the user wants the computer to connect to. Run the following command to create this file. Replace ESSID and Wi-Fi passphrase with your own.

wpa_passphrase your-ESSID your-wifi-passphrase | sudo tee /etc/wpa_supplicant.conf

wpa_passphrase

Note that in the above screenshot, I wrapped my ESSID with double-quotes, because my ESSID contains a whitespace.

The output of wpa_passphrase command will be piped to tee, and then written to the /etc/wpa_supplicant.conf file. Now use the following command to connect your wireless card to wireless access point.

sudo wpa_supplicant -c /etc/wpa_supplicant.conf -i wlp4s0

The following output indicates your wireless card is successfully connected to an access point.

Successfully initialized wpa_supplicant
wlp4s0: SME: Trying to authenticate with c5:4a:21:53:ac:eb (SSID='LinuxBabe.Com Network' freq=2437 MHz)
wlp4s0: Trying to associate with c5:4a:21:53:ac:eb (SSID='LinuxBabe.Com Network' freq=2437 MHz)
wlp4s0: Associated with c5:4a:21:53:ac:eb
wlp4s0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
wlp4s0: WPA: Key negotiation completed with c5:4a:21:53:ac:eb [PTK=CCMP GTK=CCMP]
wlp4s0: CTRL-EVENT-CONNECTED - Connection to c5:4a:21:53:ac:eb completed [id=0 id_str=]

Note that if you are using Ubuntu desktop edition, then you need to stop Network Manager with the following command, otherwise it will cause connection problem when using wpa_supplicant.

sudo systemctl stop NetworkManager

And disable NeworkManager auto-start at boot time by executing the following command.

sudo systemctl disable NetworkManager-wait-online NetworkManager-dispatcher NetworkManager

By default, wpa_supplicant runs in the foreground. If the connection is completed, then open up another terminal window and run

iwconfig

You can see that the wireless interface is now associated with an access point.

enable wifi on ubuntu using terminal command

You can press CTRL+C to stop the current wpa_supplicant process and run it in the background by adding the -B flag.

sudo wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlp4s0

Although we’re authenticated and connected to wireless network, but we don’t have an IP address yet. To obtain a private IP address from DHCP server, use the following command:

sudo dhclient wlp4s0

Now your wireless interface has a private IP address, which can be shown with:

ip addr show wlp4s0

ubuntu dhclient obtain private ip address

Now you can access the Internet. To release the private IP address, run

sudo dhclient wlp4s0 -r

Connecting to Hidden Wireless Network

If your wireless router doesn’t broadcast ESSID, then you need to add the following line in /etc/wpa_supplicant.conf file.

scan_ssid=1

Like below:

network={
        ssid="LinuxBabe.Com Network"
        #psk="12345qwert"
        psk=68add4c5fee7dc3d0dac810f89b805d6d147c01e281f07f475a3e0195
        scan_ssid=1
}

Step 3: Auto Connect At Boot Time

To automatically connect to wireless network at boot time, we need to edit the wpa_supplicant.service file. It’s a good idea to copy the file from /lib/systemd/system/ directory to /etc/systemd/system/ directory, then edit the file content, because we don’t want newer version of wpa_supplicant to override our modifications.

sudo cp /lib/systemd/system/wpa_supplicant.service /etc/systemd/system/wpa_supplicant.service

Edit the file with a command line text editor, such as Nano.

sudo nano /etc/systemd/system/wpa_supplicant.service

Find the following line.

ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant

Change it to the following. Here we added the configuration file and the wireless interface name to the ExecStart command.

ExecStart=/sbin/wpa_supplicant -u -s -c /etc/wpa_supplicant.conf -i wlp4s0

If you can find the following line in this file, comment it out (Add the # character at the beginning of the line).

Alias=dbus-fi.w1.wpa_supplicant1.service

Save and close the file. (To save a file in Nano text editor, press Ctrl+O, then press Enter to confirm. To exit, press Ctrl+X.) Then enable wpa_supplicant service to start at boot time.

sudo systemctl enable wpa_supplicant.service

We also need to start dhclient at boot time to obtain a private IP address from DHCP server. This can be achieved by creating a systemd service unit for dhclient.

sudo nano /etc/systemd/system/dhclient.service

Put the following text into the file.

[Unit]
Description= DHCP Client
Before=network.target
After=wpa_supplicant.service

[Service]
Type=simple
ExecStart=/sbin/dhclient wlp4s0 -v
ExecStop=/sbin/dhclient wlp4s0 -r
 
[Install]
WantedBy=multi-user.target

Save and close the file. Then enable this service.

sudo systemctl enable dhclient.service

How to Obtain a Static IP Address

Edit the dhclient configuration file.

sudo nano /etc/dhcp/dhclient.conf

Add the following line in the file. Replace the IP address with your preferred IP address. This makes dhclient request a static IP address from router.

interface "wlp4s0" {
     send dhcp-requested-address 192.168.0.122;
}

Save and close the file. Then restart dhclient service.

sudo systemctl restart dhclient

I found that this only works for the first time, or when the Ubuntu system boots up. Perhaps it’s because of my router setup. If you run the /sbin/dhclient wlp4s0 command multiple times (via the dhclient service), the router might refuse dhclient’s request. Also note that iOS’s hotspot doesn’t support client requesting a particular IP address.

The better way to make sure your Ubuntu system have a static IP address is probably by logging into your router’s management interface and assigning a static IP to the MAC address of your wireless card, if your router supports this feature.

Using a Hostname to Access Services on Ubuntu

Actually, you don’t have to obtain a static IP address for your Ubuntu box. Ubuntu can use mDNS (Multicast DNS) to announce its hostname to the local network and clients can access services on your Ubuntu box with that hostname. This hostname can always be resolved to the IP address of your Ubuntu box, even if the IP address changes.

In order to use mDNS, you need to install avahi-daemon, which is an open-source implementation of mDNS/DNS-SD.

sudo apt install avahi-daemon

Start the service.

sudo systemctl start avahi-daemon

Enable auto-start at boot time.

sudo systemctl enable avahi-daemon

Avahi-daemon listens on UDP 5353, so you need to open this port in the firewall. If you use UFW, then run the following command.

sudo ufw allow 5353/udp

Then you should set a unique hostname for your Ubuntu box with the hostnamectl command. Replace ubuntubox with your preferred hostname, which should not be already taken by other devices in the local network.

sudo hostnamectl set-hostname ubuntubox

Now restart avahi-daemon.

sudo systemctl restart avahi-daemon

If you check the status with

systemctl status avahi-daemon

you can see the mDNS hostname, which ends with the .local domain.

avahi-daemon mdns hostname

On the client computer, you also need to install an mDNS/DNS-SD software.

  • Linux users should install avahi-daemon.
  • Windows users need to enable the Bonjour service by either installing the Bonjour print service or installing iTunes.
  • On macOS, Bonjour is pre-installed.

Now you can access services by using the ubuntubox.local hostname, eliminating the need to check and type IP address.

Wrapping Up

I hope this tutorial helped you connect Ubuntu 18.04/19.10 to Wi-Fi network from command line with WPA Supplicant. As always, if you found this post useful, then subscribe to our free newsletter to get more tips and tricks 🙂

Rate this tutorial
[Total: 17 Average: 4.8]

38 Responses to “Connect to Wi-Fi From Terminal on Ubuntu 18.04/19.10 with WPA Supplicant

  • UnoQueMadruga
    10 months ago

    Nice tutorial!!

    Are pass-phrases stored in clear on /etc/wpa_supplicant.conf?

    Cheers!

    • The /etc/wpa_supplicant.conf file contains an encoded passphrase and a clear text passphrase, which is commented out. You can remove the line that contains your clear text passphrase.

  • Michael
    10 months ago

    So that’s how it’s done! I was using nmtui, which works great from my desktop machine, but wouldn’t work on a smaller Linux device running Ubuntu 18.04 headless server.

  • Mysterion
    10 months ago

    Thanks. It worked like a charm 🙂

  • Didn’t work for me! All good till I try to enable the service at start with
    sudo systemctl enable wpa.supplicant.service
    where I get the response
    Failed to enable unit: File /etcsystemd/system/dbus-fi.wi.wpa_supplicant1.service already exists and is a smylink to /lib/systemd/system/wpa_supplicant.service

    • Comment out the following line in /etc/systemd/system/wpa_supplicant.service file.

      Alias=dbus-fi.w1.wpa_supplicant1.service

      Reload systemd.

      sudo systemctl daemon-reload

      Then enable wpa_supplicant.

      sudo systemctl enable wpa_supplicant.service
  • It works well for me, but in case I go to another place with Wi-Fi I have to do the same because, I try and I get the network of my house the name, what I want to know if I can connect to another Wi-Fi network that is not my home in this case the faculty and if that were the case I do the same or do I have to do something else?

    • Jonathan B. Horen
      5 months ago

      I used the setup method described on this page (great instructions!) yesterday morning, then last night I wondered about connecting away from home — seemed to me that it would be cumbersome. This morning I looked at the Comments section here, and came upon [y]our question! (great minds, eh?)

      OK, Googling “gui front end for wpa_supplicant”, I found this: wpa_gui — first, I read the write-up on the Arch Linux site (https://wiki.archlinux.org/index.php/WPA_supplicant), then I read the one on the Ubuntu site (http://manpages.ubuntu.com/manpages/bionic/man8/wpa_gui.8.html).

      wpa_gui works like a champ! — with two provisos:

      #1: Must be run as “root”
      #2: Selecting “Disconnect” then “Connect” does not reacquire a DHCP address; for that, I had to manually run (as “root”) dhclient. Perhaps installing/running dhcpcd would eliminate the issue.

  • Because Ubuntu uses Systemd, you are going to find that your wireless network interface is named something like wlp4s0

    You can maintain the old-style naming of interfaces in many ways. The best is probably editing ‘/etc/default/grub’ and make sure that you change

    GRUB_CMDLINE_LINUX=""

    to

    GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

    and then run ‘update-grub’ with root privileges and then reboot. More details here:

    https://askubuntu.com/questions/689070/network-interface-name-changes-after-update-to-15-10-udev-changes

  • Joshua Shell
    9 months ago

    It should be noted that the default service file in ubuntu 18 has wpa_supplicant set to start before dbus which is usually before the network card drivers are even loaded. If you have this problem and need your network card to start on boot, change the line that looks like:
    After=dbus.service
    to
    After=network.service

    and also remove (or add a # at the beginning of) the line that looks like:
    #Before=network.target

    That way the service will give your wifi network card a chance to start up before it tries to start wpa_supplicant.

  • Christer
    8 months ago

    Running Ubuntu Server 19.10, and followed this tutorial.

    DNS is not working :\ what is wrong?

    And I get this when I run the dhcp command:
    sudo dhclient wlan0
    d41d8cd98f00b204e9800998ecf8427e /run/systemd/resolved.conf.d/isc-dhcp-v4-wlan0.conf
    md5sum: /run/systemd/resolved.conf.d/isc-dhcp-v6-wlan0.conf: No such file or directory
    3e92a8240cf600e7f621dcf8d94d75b0 /run/systemd/resolved.conf.d/isc-dhcp-v4-wlan0.conf
    md5sum: /run/systemd/resolved.conf.d/isc-dhcp-v6-wlan0.conf: No such file or directory

    $ iwconfig
    wlan0 IEEE 802.11 ESSID:”MYWIFI”
    Mode:Managed Frequency:2.462 GHz Access Point: 78:24:AF:E6:2C:B8
    Bit Rate=65 Mb/s Tx-Power=31 dBm
    Retry short limit:7 RTS thr:off Fragment thr:off
    Power Management:on
    Link Quality=70/70 Signal level=-11 dBm
    Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
    Tx excessive retries:1 Invalid misc:0 Missed beacon:0

  • Good tutorial. But doesn’t Ubuntu 18.04 and newer use netplan? Should netplan be used instead of running wpa_supplicant from systemd?

  • Trond Erik Bones
    7 months ago

    Hi, after struggling with netplan with my Wifi I found this guide.

    Everything is working until i try to start dhclient at boot. Its not working. Any tips? (i am a newbee)

    If I log in and go: sudo dhclient wlp4s0 i connect and everything is fine.

    BR
    Trond E

    • Check the logs of dhclient.service.

      sudo journalctl -eu dhclient.service
      • Trond Erik Bones
        7 months ago

        After boot it looks like this. Still no internet though. I see the server on router but no IP assigned.

        des. 16 18:20:22 homeserver dhclient[763]: cmp: EOF on /tmp/tmp.N23Nn8nKL0 which is empty
        des. 16 18:20:18 homeserver systemd[1]: Started DHCP Client.
        des. 16 18:20:21 homeserver dhclient[763]: DHCPREQUEST of 192.168.86.32 on wlp5s0 to 255.255.255.255 port 67 (xid=0x15a9aee8)
        des. 16 18:20:21 homeserver dhclient[763]: DHCPACK of 192.168.86.32 from 192.168.86.1
        des. 16 18:20:27 homeserver dhclient[763]: bound to 192.168.86.32 -- renewal in 32977 seconds.

        When I manually start the DHCP Client everything is ok.

        • Trond Erik Bones
          7 months ago

          Just wondering. Can it be some kind of conflict with cloud-init and Network-Manager? Examening my start-up log the wlp5s0 looks to get an IP after wpa_supplicant is executed.

          Cant figure this out. I still have to run dhclient manually after boot.

          Can it also be some driver issues?

        • Cloud-init is intended to be used in cloud environments, which doesn’t have Wi-fi and NetworkManager. Why are you using the two at the same time? I did say that you need to stop and disable NetworkManager in this article.

          I don’t know if cloud-init would conflict with WPA Supplicant.

          From the journalctl log, your homeserver has successfully obtained an IP address.

      • FWIW, after purging clound-init and still having the auto-run of dhclient problem I took chance and added wlan0 device to the /etc/netplan/50-cloud-init.yaml file.
        I only added
        wlan0:
        dhcp4: true

        upon reboot the wifi interface had it’s IP address.

        Makes me wonder if all that’s needed is the wpa_supplicant parts and adding to the netplan cloud-init yaml file.???

    • Bryan
      5 months ago

      I had the same issue. The issue appears to be that the service stops (it seems to be connected to login in as a user) “ExecStop=/sbin/dhclient wlp4s0 -r” causes the IP to be released on the system. I don’t know if its good practice or not, but commenting out that line seems to have resolved the issue.

      • Rahul Verma
        3 months ago

        Thank you !!
        You saved me, I was wondering what went wrong.

        But I still want to understand though, if it causes an issue, why are we using ExecStop here ?

        • Garikai Dzoma
          1 month ago

          Bryan you are are life save man. I was also having the same issue.

      • Thank you Bryan.

  • It worked great, thank you!
    Do you happen to know how to set a static IP for the WiFi connection?

    • Same here…

    • How to Obtain a Static IP Address

      Edit the dhclient configuration file.

      sudo nano /etc/dhcp/dhclient.conf

      Add the following line in the file. Replace the IP address with your preferred IP address. This makes dhclient request a static IP address from router.

      send dhcp-requested-address 192.168.0.122;

      Save and close the file. Then restart dhclient service.

      sudo systemctl restart dhclient

      I found that this only works for the first time, or when the Ubuntu system boots up. Perhaps it’s because of my router setup. If you run the /sbin/dhclient wlp4s0 command multiple times (via the dhclient service), the router might refuse dhclient’s request. Also note that iOS’s hotspot doesn’t support client requesting a particular IP address.

      The better way to make sure your Ubuntu system have a static IP address is probably by logging into your router’s management interface and assigning a static IP to the MAC address of your wireless card, if your router supports this feature.

  • Chris
    5 months ago

    Thanks for this great tutorial. I have followed the steps above and am able to connect to the wifi network. I am however running into issues getting the wifi adaptor to connect of boot.

    The interface shows as up when an

     ifconfig 

    is run but no IP address and it is not connected to the essid.
    When I run

    iwconfig

    the ESSID is set to off/any and the Access Point is set to Not-associated.

    Upon reboot I must run the following commands to get it to connect to the proper essid and get an IP address.

    $ sudo ifconfig wlo1 down
    $ sudo ifconfig wlo1 up 
    $ sudo dhclient wlo1 
    

    After this, all is up and running with no issues.

    On reboot if I run

     $sudo systemctl status wpa_supplicant.service

    It shows as active (running) but shows the following failed messages in the log.

    wpa_supplicant[1001]: dbus: wpa_dbus_get_object_properties: failed to get object properties: (none) none 
    wpa_supplicant[1001]: dbus: Failed to construct signal
    

    Additionally, on reboot, the dhclient.service status shows as loaded (dead) .

    Thoughts?

  • loulblemo
    4 months ago

    Thanks so much mate super useful!

  • I am having issues with the DHCP Client service. Here is my log file:

    -- Reboot --
    Mar 02 04:57:03 ubu-serv systemd[1]: Started DHCP Client.
    Mar 02 04:57:03 ubu-serv dhclient[806]: Internet Systems Consortium DHCP Client 4.4.1
    Mar 02 04:57:03 ubu-serv dhclient[802]: Internet Systems Consortium DHCP Client 4.4.1
    Mar 02 04:57:03 ubu-serv dhclient[802]: Copyright 2004-2018 Internet Systems Consortium.
    Mar 02 04:57:03 ubu-serv dhclient[802]: All rights reserved.
    Mar 02 04:57:03 ubu-serv dhclient[802]: For info, please visit https://www.isc.org/software/dhcp/
    Mar 02 04:57:03 ubu-serv dhclient[806]: Copyright 2004-2018 Internet Systems Consortium.
    Mar 02 04:57:03 ubu-serv dhclient[806]: All rights reserved.
    Mar 02 04:57:03 ubu-serv dhclient[806]: For info, please visit https://www.isc.org/software/dhcp/
    Mar 02 04:57:03 ubu-serv dhclient[806]:
    Mar 02 04:57:03 ubu-serv dhclient[806]: Listening on LPF/wlp3s0/f4:5c:89:b0:4d:7b
    Mar 02 04:57:03 ubu-serv dhclient[802]: Listening on LPF/wlp3s0/f4:5c:89:b0:4d:7b
    Mar 02 04:57:03 ubu-serv dhclient[802]: Sending on   LPF/wlp3s0/f4:5c:89:b0:4d:7b
    Mar 02 04:57:03 ubu-serv dhclient[802]: Sending on   Socket/fallback
    Mar 02 04:57:03 ubu-serv dhclient[802]: DHCPREQUEST for 192.168.1.5 on wlp3s0 to 255.255.255.255 port 67 (xid=0x58943a1f)
    Mar 02 04:57:03 ubu-serv dhclient[806]: Sending on   LPF/wlp3s0/f4:5c:89:b0:4d:7b
    Mar 02 04:57:03 ubu-serv dhclient[806]: Sending on   Socket/fallback
    Mar 02 04:57:03 ubu-serv dhclient[806]: DHCPREQUEST for 192.168.1.5 on wlp3s0 to 255.255.255.255 port 67 (xid=0x58943a1f)
    Mar 02 04:57:06 ubu-serv dhclient[806]: DHCPREQUEST for 192.168.1.5 on wlp3s0 to 255.255.255.255 port 67 (xid=0x58943a1f)
    Mar 02 04:57:06 ubu-serv dhclient[802]: DHCPREQUEST for 192.168.1.5 on wlp3s0 to 255.255.255.255 port 67 (xid=0x58943a1f)
    Mar 02 04:57:06 ubu-serv dhclient[806]: DHCPACK of 192.168.1.5 from 192.168.1.1 (xid=0x1f3a9458)
    Mar 02 04:57:06 ubu-serv dhclient[802]: DHCPACK of 192.168.1.5 from 192.168.1.1 (xid=0x1f3a9458)
    Mar 02 04:57:06 ubu-serv dhclient[802]: cmp: EOF on /tmp/tmp.5Go3SNkqUg which is empty
    Mar 02 04:57:06 ubu-serv dhclient[806]: bound to 192.168.1.5 -- renewal in 40109 seconds.
    Mar 02 04:57:06 ubu-serv dhclient[802]: bound to 192.168.1.5 -- renewal in 40109 seconds.
    Mar 02 04:57:06 ubu-serv dhclient[1022]: Killed old client process
    Mar 02 04:57:06 ubu-serv dhclient[1022]: Killed old client process
    Mar 02 04:57:07 ubu-serv dhclient[1022]: DHCPRELEASE of 192.168.1.5 on wlp3s0 to 192.168.1.1 port 67 (xid=0x4484af0b)
    Mar 02 04:57:08 ubu-serv systemd[1]: dhclient.service: Succeeded.
    

    Here is the error I get:

    ieee80211 phy0: brcmf_inetaddr_changed: fail to get arp ip table err:-52
    cmp: E0F on /tmp/tmp.Itr1VGx0mk which is empty
    

    I get the same error after I login and start the service manually, then I get an IP address.

  • prince
    4 months ago

    It didnt worked for me, stuck in this error

    sudo wpa_supplicant -c /etc/wpa_supplicant.conf -i wlo1
    Successfully initialized wpa_supplicant
    Failed to open config file ‘/etc/wpa_supplicant.conf’, error: No such file or directory
    Failed to read or parse configuration ‘/etc/wpa_supplicant.conf’

    • Make sure you have generated the /etc/wpa_supplicant.conf file with this command:

      wpa_passphrase your-ESSID your-wifi-passphrase | sudo tee /etc/wpa_supplicant.conf
  • Daniel
    3 months ago

    Hi,
    It worked great in my Ubuntu Server 18.04.
    Thank you.

  • elilurie
    3 months ago

    Hi
    Excellent tutorial
    I have configured my RPI-3 ubuntu-18-04.LTS
    and it worked like a charm, but only after one change that I should make in
    dhclient.service file
    I had to change …
    [Service]
    Type=simple
    ….
    I had to write
    [Service]
    Type=oneshot
    RemainAfterExit=true
    …..
    Because without my change apparently the ExecStop was executed immediately after ExecStart

  • anonymous
    3 months ago

    I also tried it and failed too. After googling I found: https://superuser.com/a/393956/481832

    “dhclient is a one-shot client – it reaches out to a server once and only once to request or validate a client’s IP address. (and exits immediately)”

    so the ExecStop is automatically triggered after dhclient gets the IP.

    Solution: Install dhcpcd instead of using dhclient.

  • Chirick2051
    3 months ago

    About running dhcp on boot

    dhclient.service should be with “type=forking”, not “simple”.
    If “simple” – it starts and after successfully working immediately stops.
    If “forking” – This service type is used when the service forks a child process, exiting the parent process almost immediately. This tells systemd that the process is still running even though the parent exited.

    https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files

    Look for “The [Service] Section”

  • Ken Crouse
    3 months ago

    I’m trying to connect a 19.10 program to my wifi without success. In going through these steps I receive error messages that include ifconfig (and rfkill) commands not found.

  • Anonymous
    3 months ago

    Thanks! Making this change fixed it for me as well. I’m have a Raspberry Pi 4 with Ubuntu 19.10. Before making this change, when checking “sudo systemctl status dhclient.service” it showed the release happening immediately after the address was assigned.

    After making your change, and reloading the service with ” sudo systemctl daemon-reload” it now works fine.

  • Chris Brown
    2 months ago

    Just gone through this for Ubuntu Desktop LTS 18.04 with a Belkin USB adapter, and I am quite impressed (given my basic linux experience) that I got DHCP to connect to my BT hub with only one typo in my edits 😀

    So all good with the ethernet cable disconnected, the system remains internet connected.

    However after reboot I still need to manually reconnect DHCP.

    The log file shows that my device is not recognized earlier in the sequence, but it is fine when the system comes up – connected to the router but no IP address until I prod it.

    I am happy enough with that, although my daughter may object to opening a terminal and typing “sudo dhclient ….” before she can run Runescape !

    Any suggestions on the possible sequencing change needed most welcome – I have already changed type=simple to type=forked and After=dbus.service to After=network.service.

    I have two of these Belkin adapters so I also hope to get this running on my rpi3 running ubuntu MATE later.

    Thanks for a great tutorial.

  • Chris Brown
    2 months ago

    Update – this morning, without any further changes, the wi-fi connection has fully established from boot. So the only actual change was a power cycle – something I did not do yesterday after completing the edits. So, one happy daughter later on today 😀