I am trying to connect to my WEP network just using the command-line (Linux).

I run:

sudo iwconfig wlan0 mode Managed essid 'my_network' key 'xx:xx:... hex key, 26 digits'

Then I try to obtain an IP with

sudo dhclient -v wlan0


sudo dhclient wlan0

without success (tried to ping google.com).

I know that the keyword is right, and I also tried with the ASCII key using 's:key', and again, the same result.

I get the message below when running dhclient:

Listening on LPF/wlan0/44:...
Sending on   LPF/wlan0/44:...
Sending on   Socket/fallback
DHCPDISCOVER on wlan0 to port 67 interval 3 

I have no problem connecting with WICD or the standard Ubuntu tool.

  • 3
    Side note - don't use WEP, use WPA2 Commented Sep 29, 2013 at 2:12
  • Can you please post the results of iwconfig without any parameters too. What version of Linux are you using? Commented Sep 29, 2013 at 4:20
  • 3
    The OP might use WEP for his own reason. It is considered shallow in perspective of security, but some people just still prefer it. Commented Sep 29, 2013 at 4:41
  • 1
    @DanijelJ There is no practical difference anymore between WEP and no encryption. In 2010, it was already possible to crack WEP in 3 seconds on a 1.7GHz Pentium M processor. If security is important, use WPA2. If it's not, don't encrypt. But WEP? That's just silly. Commented Jun 26, 2015 at 15:13
  • The merits of using WEP and WPA, WPA2, RAID, etc. are beside the point. Although from memory it was significantly easier to connect clients to a WEP network. If you want to be thorough or definitive, include instructions for as many as possible.
    – voices
    Commented Sep 25, 2016 at 9:32

9 Answers 9


Option 1

Just edit /etc/network/interfaces and write:

auto wlan0
iface wlan0 inet dhcp 
                wpa-ssid {ssid}
                wpa-psk  {password}

After that write and close file and use command:

sudo dhclient wlan0

Replace {ssid} and {password} with your respective WiFi SSID and password.

Option 2

Provided you replace your Wireless network card, Wi-Fi Network name, and Wi-FI Password this should also work.

I am using: - Wireless network card is wlan0 - Wireless network is "Wifi2Home" - Wireless network key is ASCII code ABCDE12345

First, get your WiFi card up and running:

sudo ifconfig wlan0 up

Now scan for a list of WiFi networks in range:

sudo iwlist wlan0 scan

This will show you a list of wireless networks, pick yours from the list:

sudo iwconfig wlan0 essid Wifi2Home key s:ABCDE12345

To obtain the IP address, now request it with the Dynamic Host Client:

sudo dhclient wlan0

You should then be connected to the WiFi network. The first option is better, because it will be able to run as a cron job to start up the wifi whenever you need it going. If you need to turn off your WiFi for whatever reason, just type:

sudo ifconfig wlan0 down


I have also seen people using alternative commands. I use Debian, Solaris and OSX, so I'm not 100% sure if they are the same on Ubuntu. But here they are:

sudo ifup wlan0 is the same as sudo ifconfig wlan0 up
sudo ifdown wlan0 is the same as sudo ifconfig wlan down

  • 2
    The last two commands aren't the same. «ifconfig … up» just activates an interface, wheres «ifup …» besides activating also setups IP addresses and some other options.
    – Hi-Angel
    Commented Oct 19, 2014 at 8:09
  • 14
    I like version 2 very much! Only I get: Error for wireless request "Set Encode" (8B2A) : SET failed on device wlan0 ; Invalid argument. And this is the command I used (just like you suggested): sudo iwconfig wlan0 essid mywifiname key s:THEPASSWORD. Can you help?
    – nourdine
    Commented Nov 28, 2014 at 23:35
  • 1
    @Danijel: Thanks! Do both methods work for both WPA2 with shared passphrase. Do they not work for WPA2 with username and password?
    – Tim
    Commented May 4, 2015 at 22:54
  • 1
    @nourdine this worked for me: superuser.com/a/295972/253766
    – smac89
    Commented Jul 23, 2018 at 3:22

If you have nmcli installed, I think this is the simplest solution.

For a new connection:

nmcli dev wifi connect <mySSID> password <myPassword>

Or if a connection was already set up:

nmcli con up <mySSID>

(or if that does not work, try nmcli con up id <mySSID>)

  • this does not work, the wifi option does not even have a "connect" command
    – redbeam_
    Commented Jan 13, 2017 at 22:21
  • @redbeam_ Seems like the wifi connect option was added in version 0.9.6. See this answer.
    – DLight
    Commented Jan 14, 2017 at 11:03
  • On Ubuntu 14.04, this command should be: nmcli con up id <mySSID>.
    – Leo
    Commented May 17, 2017 at 2:19
  • got some issue with antergos installer on xiaomi book air and this allowed me to connect using wifi. Thanks !
    – Francesco
    Commented Jan 14, 2018 at 10:43
  • 1
    THANK YOU! A solution that works!! Commented May 7, 2020 at 5:10

There is Danijel J's two options are good, but there is also a 3rd option if you have this working via the 'standard Ubuntu tool' using nmcli, which should already be installed at /usr/bin/nmcli.

First, run

nmcli c

This will list your connections, with the first column being the SSID, and the second column being the UUID of the connection.

Copy the UUID of the SSID you want to connect to so you can paste it into the next command.

Next, run

nmcli c up uuid <paste uuid here>

and this will, using the same stuff as the 'standard Ubuntu tool' connect to your wifi!


Use nmtui if you are just looking to connect.

screenshot of nmtui

You'll be prompted to activate a connection, with the list of SSIDs and you can just enter your password.

  • 6
    Wonderful. This is the best solution i ever see. Commented Sep 5, 2018 at 18:21
  • I had to use sudo i.e. sudo nmtui
    – MrTJ
    Commented Jul 31, 2020 at 7:54
  • How to install nmtui on Debian? Commented Oct 24, 2020 at 6:35
  • apt install network-manager ?
    – MrE
    Commented Oct 24, 2020 at 15:43
  • thanks what a time saving solution
    – Someone
    Commented Dec 31, 2021 at 18:05

Install wpa_supplicant and you have a nice software for all of your Wireless needs. You can then use wpa_cli command to access and set your network interactively. there is also a number of 3rd party software available acting as a GTK+ or QT GUI for wpa_supplicant if you want to go gui at anytime.

Also you could set the connection configuration in /etc/wpa_supplicant.conf or /etc/wpa_supplicant/wpa_supplicant.conf depend on you linux OS. for more information on interactive command type h inside wpa_cli.

  • 2
    Why should one go with wpa_supplicant instead of @Danijel Option 1 (which seems much easier)?
    – KcFnMi
    Commented Aug 3, 2021 at 15:03

Besides from above answers, you can also use wifi-menu on Arch Linux. It will show a CLI-Based GUI and you can choose a WiFi from WiFi list that is shown. wifi-menu depends on dialog though. You must have it installed first.


Fixed issue.

Laptop with no WiFi switch. No bios always on or disable switch etc.

Keyboard had FN + F2 which wouldn't recognize

I attempted to bring up the interface got the

Not permitted due to RF-KILL blah blah

Installed rfkill

Sudo apt-get install rfkill

Did rfkill list , like othersmentioned and I saw in otherforums

The saw a soft block on the wriless cards Did Rfkill unblock (index #) of device
once that was done my WiFi led turned on.

Then did the "ip Link set dev xx up" or the "ifconfig xxx up" and the ifup or w.e to get the interface to be up not just the hardware for ip address and boom. Wifi May want to edit etc/xxx/xxx/interface file to dhcp or statis it and onboot yes or auto . El/deb devices do the config of the interfaces differently.

  • This answer helped me to reactivate my Asus eee 901 with malfunctioning keyboard controller as simple server. I managed to activate wi-fi and connect my netbook to WPA network. Thanks a lot.
    – Marecky
    Commented Jun 29, 2017 at 21:39
  • No problem. Glad I could help.
    – ssvegeta96
    Commented Jun 30, 2017 at 16:36

WiFi in 6 steps via wpa_supplicant

iwconfig didnt work for me and uninstalling my network manager incidentally removed nmtui and nmcli; what worked for me was wpa_supplicant:

  1. Reload wifi kernel modules just in case: sudo modprobe -r iwlmvm mac80211 iwlwifi cfg80211 then sudo modprobe iwlmvm mac80211 iwlwifi cfg80211 (second is without -r)
  2. Run ifconfig -a | grep ^w to get wifi device, e.x. wlo1 or wlan0
  3. Run sudo ifconfig <wlo1 or wlan0> up to get the device up
  4. Run wpa_passphrase '<name of WiFi>' '<WiFi password>' > ~/wpa.conf and make sure everything is inside those single quotes, which will esape everything and prevent special interpretation. If you have an apostrophe in your password, replace it with '\'', otherwise dont escape anything yourself, not even a backslash. Leave the backslash as-is inside the single quotes. If you have a corperate/school networkwork with username/password, bring up a temporary hotspot on your phone or walk around and ask people for one temporarily so you can get the needed software all setup.
  5. Run sudo wpa_supplicant -Dnl80211 -iwlan0 -c ~/wpa.conf to actually get the WiFi up. Leave this terminal open with wpa_supplicant running or you will loose wifi
  6. Open another terminal and run sudo dhclient -v to get a lease from your router and, if this errors, try downloading and copying my config file below to your /etc/dhcp/dhclient.conf

IF you still dont have internet, try ping and, if that works, fix your DNS:

  1. Run printf '\n\n[Resolve]\nDNS= 2620:0:ccc::2\n' | sudo tee -a /etc/systemd/resolved.conf
  2. Run printf 'nameserver\noptions edns0 trust-ad\nsearch .\n' | sudo tee /etc/resolv.conf
  3. Run sudo systemctl enable systemd-resolved.service
  4. Run sudo systemctl restart systemd-resolved.service

Tada! You should now have internet no matter how badly borked up your computer is!

Free static x86_64 binaries

Incase you dont have wpa_supplicant, I used staticx to make freindly internet stranger static binaries from my system you can copy on USB. Make sure to chmod +x ip-static before ./ip-static addr


I know that this was asked 3 years ago. I am answering just in case someone else runs into this situation as I've just did.

The thing is that everything is correct until the dhclient part, where it gets stuck at "DHCPDISCOVER on wlan0..." forever.

Solution: Go to your network manager (Wicd, Network Manager, whatever) and unmark the "Enable Networking" option. It seems that it interferes with the dhclient's normal functioning.

And dhclient worked like a charm.

You must log in to answer this question.

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