Connecting to Wifi using Terminal
In this article we are gonna see how to turn on wifi and connect to a network wireless using terminal or by command line interface (CLI).
Step 1: First we have to find out the interface name of your wifi hardware. In GNU/Linux each and every networking hardware have an unique name (Tips: Interface name which begins with ’e’ are ethernet hardware and which begins with ‘w’ are wireless hardware why because we may have one or more network hardware). To list the network hardwares openup terminal and type the following.
ip addr
You will get the output as following
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 40:16:7e:43:84:9f brd ff:ff:ff:ff:ff:ff
3: wlp2s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 54:35:30:3a:8b:db brd ff:ff:ff:ff:ff:ff
So here I have two network hardware connected to my computer but it listed three. The first one is the system loopback and other two are the physical network hardware in which the third one is the wireless hardware. Here the name of my wifi hardware is wlp2s0f0. (Note: wlp2s0f0 - this may vary depends on the GNU/Linux distro that you are using)
Step 2: In this step we are actually going to turn on the wifi hardware. Lets do it.
sudo ip link set wlp2s0f0 up
So the wifi hardware is turned on. Now whats next?. Lets list the wifi network signals available. For hidden wireless networks skip this part and move on to next.
iwlist wlp2s0f0 scanning | grep ESSID
Output:
ESSID:"hello1"
ESSID:"hello2"
Step 3: Now we have to create a configuration file, in order to connect to the wireless network. Lets assume that we are going to connect to the wireless network ‘hello1’ whose password is ‘hellopelican’
wpa_passphrase hello1 hellopelican > hello1.conf
The file will be written with the following
network={
ssid="hello1"
#psk="hellopelican"
psk=73bababe080c72a74af8129a9cf7d5719e46ecac9e5026e2324a5f40ff425c9d
}
We are done with the configuration. Next we have to connect to the network.
sudo wpa_supplicant -i wlp2s0f0 -c hello1.conf -B
This will show you the following.
Successfully initialized wpa_supplicant
Still it is not that you are connected. For verifying it do the following.
ip addr
If it shows the following output then you are connected if not you went wrong.
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 40:16:7e:43:84:9f brd ff:ff:ff:ff:ff:ff
3: wlp2s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 54:35:30:3a:8b:db brd ff:ff:ff:ff:ff:ff
inet 192.168.43.225/24 brd 192.168.43.255 scope global wlp2s0f0
valid_lft forever preferred_lft forever
inet6 fe80::e844:a9b8:2c01:692c/64 scope link
valid_lft forever preferred_lft forever
Helps and Tips If you find any one of the command not found do the following.
# Debian and Ubuntu based distro
sudo apt-get install iw wpa_supplicant
#Fedora
sudo dnf install iw wpa_supplicant
#Arch based distro
sudo pacman -Sy iw wpa_supplicant
If any help needed regarding this article please be free to contact me at ragul274@gmail.com