How to connect to WiFi from the command line?

557,541

Solution 1

I think you want to keep using managed interface (by NetworkManager). nmcli is a command‐line tool for controlling NetworkManager.

  • To see list of saved connections, use (<SavedWiFiConn>)

    nmcli c
    
  • To see list of available WiFi hotspots (<WiFiSSID>)

    nmcli d wifi list
    

    or:

    sudo iwlist <WifiInterface> scanning
    
  • To see list of interfaces (<WifiInterface>)

    ifconfig -a
    

Just change <WifiInterface>, <WiFiSSID>, <WiFiPassword> in the following commands to reflect your setup. If WiFi info already saved, easier way using <SavedWiFiConn> name of connection as it was saved in NetworkManager.

Ubuntu 16.04

##disconnect
nmcli d disconnect <WifiInterface>

##connect
nmcli d connect <WifiInterface>

Another way:

##disconnect
nmcli c down <SavedWiFiConn>

##connect
nmcli c up <SavedWiFiConn>

Ubuntu 15.10 & previous

##disconnect
nmcli d disconnect iface <WifiInterface>

##connect
nmcli d wifi connect <WiFiSSID> password <WiFiPassword> iface <WifiInterface>

Another way:

##disconnect:
nmcli c down id <SavedWiFiConn>

##connect:
nmcli c up id <SavedWiFiConn>

If your password isn't automatically recognized type this:

nmcli -a c up <SavedWiFiConn>

Reference: man nmcli

Solution 2

nmtui ncurses solution

Great interactive ncurses network manager option:

nmtui

If for some reason it is not installed, the Debian package is:

sudo apt install network-manager

Comes in the same package as nm-applet (the default top bar icon thing) and nm-cli, and is therefore widely available.

Screenshot:

enter image description here

Tested in Ubuntu 17.10.

Solution 3

If your wi-fi access point is saved, it will auto-connect. Turn wireless on or off with a simpler command:

nmcli nm wifi on
nmcli nm wifi off

on newer version:

nmcli radio wifi on
nmcli radio wifi off

For reference, see man nmcli.

Solution 4

If you want to connect to a network called PrettyFlyForAWiFi-5G

nmcli -a d wifi connect PrettyFlyForAWiFi-5G

-a (or --ask) means it will ask you for the password. The connection will be saved and should connect automatically if you restart your computer.

You could append password <your password> to the end (the literal word password followed by the actual password)

nmcli d wifi connect PrettyFlyForAWiFi-5G password 12345678

but maybe run unset HISTFILE beforehand, so that your WiFi password isn't saved to your ~/.bash_history file.


To see all the WiFi networks around you (--rescan yes is optional, the list of networks might be up to 30 seconds old without it)

nmcli d wifi list --rescan yes

which will output something like

IN-USE  SSID                         MODE   CHAN  RATE        SIGNAL  BARS  SECURITY
        PrettyFlyForAWiFi-5G         Infra  44    405 Mbit/s  59      ▂▄▆_  WPA2
        PrettyFlyForAWiFi            Infra  6     195 Mbit/s  41      ▂▄__  WPA1 WPA2

To forget a connection (that was saved after you ran nmcli -a d wifi connect <name>)

nmcli c delete PrettyFlyForAWiFi-5G

To see a list of all saved connections

nmcli c

You can use nmcli connection instead of nmcli c <whatever> and nmcli device instead of nmcli d

nmcli is the command line interface for NetworkManager (which is part of GNOME, Ubuntu's default desktop environment) and is already installed on Ubuntu.

Don't forget to set up your country code for using the perfect regulations:

sudo iw reg set <2 letter country code>

sudo nano /etc/default/crda 
Share:
557,541

Related videos on Youtube

cmo
Author by

cmo

Updated on September 18, 2022

Comments

  • cmo
    cmo over 1 year

    Other posts seems to be addressing more complicated network connection issues from the command line.

    The Unity panel Network indicator/button doesn't respond too well sometimes - it keeps trying to connect to a network even when i click on "disconnect", stuff like that.

    So I want to go command line for the control. I don't like GUIs anyway.

    Is there not some simple command line tool which can do something like the following?

    wifi connect MyNetworkNameA
    wifi disconnect
    wifi connect MyNetworkNameB
    
  • cmo
    cmo almost 10 years
    Works like a charm! And, as suspected, the command line responds immediately, while the GUI can be sluggish, uncooperative, and unresponsive sometimes.
  • Janaka Bandara
    Janaka Bandara over 9 years
    Saved my day when I lost my Unity dash and taskbar, and the Network Settings dialog kept on crashing upon any kind of network connection establishment.
  • Cerin
    Cerin almost 9 years
    How do you make NM enable wifi automatically during boot? Every time I reboot, Network Manager starts with wifi disabled.
  • kirill_igum
    kirill_igum over 8 years
    is there a way to automate it so it connects whenever the wifi is available ?
  • user.dz
    user.dz over 8 years
    @Cerin, you may try adding this command to startup applications, see askubuntu.com/questions/243139/…
  • user.dz
    user.dz over 8 years
    @kirill_igum , sorry to be late quiet busy, You may use cron for scheduling wifi scan using iwlist wlan0 scanning or nmcli d wifi list then nmcli to connect to the corresponding wifi network depending on your needs.
  • Luís de Sousa
    Luís de Sousa about 8 years
    On Ubuntu 14.04 this connect command returns Error: Device 'wlan0' is not an Wi-Fi device. I believe this answer is incomplete.
  • Cerin
    Cerin about 8 years
    This is invalid syntax. Unknown parameter: iface Unknown parameter: wlan0
  • monitor35
    monitor35 about 8 years
    And how do in Ubuntu > 14.04.
  • Bhikkhu Subhuti
    Bhikkhu Subhuti almost 8 years
    I have no idea how this works for me. I am using blue tooth tether. bnep0 but I do not know what to type or how to get the ssid. I googled it and almost all of the commands did not do anything or were invalid or returned an empty line.
  • user.dz
    user.dz almost 8 years
    @BhikkhuSubhuti, Try using sudo iwlist wlan0 scanning or nmcli d wifi list to get the available networks ssid's.
  • Bhikkhu Subhuti
    Bhikkhu Subhuti almost 8 years
    "iwlist wlan0" says invalid command but iwlist alone is a command that works but just give a list of params to use. nmcli d wifi list gives and empty header. I am using blue tooth tether.
  • Apologician
    Apologician almost 8 years
    Can someone give me an example of what follows the parameter "ID", as in the command nmcli c up id <WiFiConn>. What is a "<WiFiConn>"?
  • user.dz
    user.dz almost 8 years
    @L.D.James, the name used to save the connection settings, 1st column in this output nmcli c which list all saved connection setups
  • Apologician
    Apologician almost 8 years
    @sneetsher Ok. I see. I believe you have to replace the word id with the information in first column, otherwise you get an error. It wasn't initially clear in the answer.
  • Apologician
    Apologician almost 8 years
    The command that I was issuing was giving an error. I was issuing this command: nmcli c up id "Apollo III Connect" It gave an error. When I leave out the word id and typed this it connects without error: nmcli c "Apollo III Connect". I understand how to connect it now. You're saying id as the parameter and saying replace the word id with the name of the connection, which you are naming <WiFiConn>. Thanks!
  • Apologician
    Apologician almost 8 years
    mcli tool, version 1.2.0
  • Cirelli94
    Cirelli94 about 7 years
    How to save a connection setup? If it's the first time I connect to a wifi!
  • Cirelli94
    Cirelli94 about 7 years
    To save a connection setup: sudo nmcli dev wifi con "SSID_NAME" password PASSWORD "CONFIG_NAME" To find auto your saved connection setups: nmcli c
  • user.dz
    user.dz about 7 years
    @Cirelli94 Good you seem already found it, just connecting to new wifi makes nm save it on new entry, no extra.
  • asgs
    asgs over 6 years
    Thanks! For some reason, my Ubuntu refused to connect to Wifi, so I plugged in the Ethernet cable and clicked Activate on Wired Connection and BAM!
  • Ciro Santilli OurBigBook.com
    Ciro Santilli OurBigBook.com over 6 years
    @Downvoters please explain, I never retaliate ;-)
  • Jan Sila
    Jan Sila over 6 years
    works on Ubuntu 16.01 as well, cool solution!
  • Jules
    Jules about 6 years
    nmcli doesnt seem to be installed by default on server installs. How do we install it (particularly if we have no working network connection)? Alternatively, how do we perform these steps with iw, which is installed by default, but seems a lot harder to use?
  • jamzsabb
    jamzsabb almost 6 years
    This is a much more intuitive solution than what is above IMO. Unless you're trying to learn how Linux/Unix connects to WiFi, this seems like the ideal select and press enter solution. Works well on Ubuntu 18
  • borizzzzz
    borizzzzz over 4 years
    When using nmcli, there is a pop up to reask the password if it was miss-typed. Would you know whether there is a possibility of disabling this feature? Quite annoying when trying to use nmcli in a non-interactive script...
  • Ryre
    Ryre over 4 years
    This "just worked " on Ubuntu 18.04
  • Berry Tsakala
    Berry Tsakala over 4 years
    when password is wrong, nmcli pops up a GUI input box (for retyping the correct password). this can't be scripted - is there a way to disable GUI ?
  • ignacio
    ignacio almost 4 years
    @BerryTsakala you may check beforehand if the SSID has the Security field with a value different than none.
  • P.Windridge
    P.Windridge over 3 years
    and Jetson Nano ... and usefully it kept eth0 up too (I'm running headless and didn't lose the ssh session)