Wpa cli connect to wifi

Configuring wifi in Linux with wpa_supplicant

Tutorial on configuring wifi in Linux using wpa_supplicant. Examples of scanning for networks, configuring a network, connecting to a network and saving configuration.

Terminal showing wpa_supplicant man page

  • September 12, 2016
  • Updated May 24, 2023

How do I configure wifi using wpa_supplicant? ¶

The wpa_supplicant command supports the configuration and administration of wireless networks on Linux. First the wireless network interface needs to be discovered using the ip command. Then the wpa_supplicant daemon can be started. Finally a client like wpa_cli can be used to connect to the daemon and configure the interface.

How to discover the network interface ¶

In order to configure wireless connectivity on Linux the network interface is needed .To discover the network interface use the ip command. Running ip a will show all of the network interfaces on the machine.

ip a 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1  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: wlp3s0b1: mtu 1500 qdisc mq state DOWN group default qlen 1000  link/ether 20:c9:d0:86:5b:99 brd ff:ff:ff:ff:ff:ff 

The wireless interface on this machine is wlp3s0b1 . Generally the wireless interface will start with ‘w’. If the wireless interface is not present and the machine has a wireless card it is possible that the driver for the wireless card is not installed.

Читайте также:  Wifi dongle with android

How to use wpa_supplicant ¶

The wpa_supplicant tool can configure network interfaces and connect to wireless networks. It is intended to run as a daemon and other command to connect it. A basic configuration is as follows.

ctrl_interface=DIR=/run/wpa_supplicant GROUP=wheel update_config=1 

On the first line GROUP=wheel allows any user in the wheel group to connect to an manage wireless connections. To limit wireless connectivity to the root account remove this. This file should be created as root and saved in the /etc/wpa_supplicant directory. The file may be called anything but for this example it is called example.conf . Once this file is created wpa_supplicant may be started by running the following command as root.

wpa_supplicant -B -i wlp3s0b1 -c /etc/wpa_supplicant/example.conf Successfully initialized wpa_supplicant 

The -B option runs the daemon in the background. The -i option specifies the network interface to use. This is the interface name discovered using the ip command. The -c options specifies the configuration file to be used.

How to interact with wpa_supplicant using wpa_cli ¶

The wpa_cli command can be used to interact with wpa_supplicant . It can be used to query current status, change configuration, trigger events, and request interactive user input. If the GROUP=wheel option is set in the wpa_supplicant configuration the command may be run by users in the wheel group. If not it must be run as root.

wpa_cli wpa_cli v2.5 Copyright (c) 2004-2015, Jouni Malinen and contributors  This software may be distributed under the terms of the BSD license. See README for more details.  Selected interface 'wlp3s0b1'  Interactive mode  > 

Once launched the tool will be in interactive mode.

Читайте также:  Передача wifi через bluetooth

How to scan for networks using wpa_cli ¶

To scan for networks using wpa_cli at the interactive prompt first run scan .

> scan OK CTRL-EVENT-SCAN-STARTED CTRL-EVENT-SCAN-RESULTS WPS-AP-AVAILABLE CTRL-EVENT-NETWORK-NOT-FOUND 

Once the CTRL-EVENT-SCAN-RESULTS event has been received run scan_results .

> scan_results bssid / frequency / signal level / flags / ssid 7c:4c:a5:68:25:69 2412 7 [WPA2-PSK-CCMP][WPS][ESS] SKY1DA97 92:d3:f7:4d:47:00 2437 7 [WPA-EAP-CCMP+TKIP][WPA2-EAP-CCMP+TKIP][ESS] BTWifi-X a8:d3:f7:4d:47:06 2437 7 [WPA2-PSK-CCMP][WPS][ESS] BTHub5-H9MS f4:f2:6d:85:6d:bf 2412 7 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] SKY43B9E 00:50:7f:eb:1c:40 2462 7 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS] MYNETWORK 

The results list five columns and allow the available networks to be seen. The flags column is particularly useful showing the security model for the network.

How to connect to a network using wpa_cli ¶

To connect to a network using wpa_cli first add a new network and then set the SSID and passphrase .

> add_network 0 > set_network 0 ssid "MYNETWORK" > set_network 0 psk "secret" 

The ssid value related to the ssid value discovered during the scan. The psk value is the pre-shared key for the wireless network. Once these parameters are set the network is ready to use.

> enable_network 0 0K CTRL-EVENT-SCAN-STARTED CTRL-EVENT-SCAN-RESULTS WPS-AP-AVAILABLE SME: Trying to authenticate with 00:50:7f:eb:1c:40 (SSID='MYNETWORK' freq=2462 MHz) Trying to associate with 00:50:7f:eb:1c:40 (SSID='MYNETWORK' freq=2462 MHz) Associated with 00:50:7f:eb:1c:40 WPA: Key negotiation completed with 00:50:7f:eb:1c:40 [PTK=CCMP GTK=TKIP] CTRL-EVENT-CONNECTED - Connection to 00:50:7f:eb:1c:40 completed [id=0 id_str=] 

The network interface is now up as can be seen using ip a .

ip a 2: wlp3s0b1: mtu 1500 qdisc mq state UP group default qlen 1000  link/ether 20:c9:d0:86:5b:99 brd ff:ff:ff:ff:ff:ff  inet 192.168.1.13/24 brd 192.168.1.255 scope global wlp3s0b1  valid_lft forever preferred_lft forever  inet6 fe80::fb6f:882f:5323:c3d1/64 scope link  valid_lft forever preferred_lft forever 

The connection can be verified by pinging a server on the internet.

ping google.com PING google.com (216.58.198.110) 56(84) bytes of data. 64 bytes from lhr25s07-in-f110.1e100.net (216.58.198.110): icmp_seq=1 ttl=51 time=11.6 ms 64 bytes from lhr25s07-in-f110.1e100.net (216.58.198.110): icmp_seq=4 ttl=51 time=11.2 ms 

If there is a response the wifi network is active.

Читайте также:  No wifi icon on android

How to save wpa_supplicant configuration ¶

To save wpa_configuration using wpa_cli use save_config at the interactive prompt.

Examining the configuration file shows that the network configuration has been written to the file.

cat /etc/wpa_supplicant/example.conf ctrl_interface=DIR=/run/wpa_supplicant GROUP=wheel update_config=1  network=  ssid="MYNETWORK"  psk="secret" > 

Now if the machine is rebooted wpa_supplicant can be started as before and it will connect to the MYNETWORK wireless network.

wpa_supplicant -B -i wlp3s0b1 -c /etc/wpa_supplicant/example.conf 

Further reading ¶

Tags

Can you help make this article better? You can edit it here and send me a pull request.

See Also

  • Linux and Unix mkdir command tutorial with examples
    Sep 9, 2016
    Tutorial on using mkdir, a UNIX and Linux command for creating directories. Examples of creating a directory, creating multiple directories, creating parent directories and setting permissions.
  • Linux and Unix file command tutorial with examples
    Sep 7, 2016
    Tutorial on using file, a UNIX and Linux command for determining file types. Examples of a single file, multiple files, viewing mime types and compressed files.
  • Linux and Unix ps command tutorial with examples
    Sep 5, 2016
    Tutorial on using ps, a UNIX and Linux command for reporting information on running processes. Examples of searching by user, group, executable name and killing processes.

Источник

Оцените статью
Adblock
detector