Debian and wi fi

Connect to Wi-Fi From Terminal on Debian 11/10 with WPA Supplicant

This tutorial is going to show you how to connect to Wi-Fi network from the command line on Debian 11/10 server and desktop using wpa_supplicant, which is an implementation of the supplicant component for the WPA protocol. A supplicant in wireless LAN is client software installed on end-user’s computer that needs to be authenticated in order to join a network.

Please note that you will need to install the wpa_supplicant software before connecting to Wi-Fi, so you need to connect to Wired Ethernet first, which is done for just one time. If you don’t like this method, please don’t be mad at me. Maybe someday Debian will ship wpa_supplicant out of the box.

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

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

wlan0 is a common name for a wireless network interface on Linux systems. On systemd-based Linux distros, you might have a wireless interface named wlp4s0 .

debian server connect to wifi terminal

As you can see, the wireless interface isn’t associated with any access point right now. Then run the following command to bring up the wireless interface.

sudo ip link set dev wlp4s0 up

If you encounter the following error,

RTNETLINK answers: Operation not possible due to RF-kill

you need to unblock Wi-Fi with the following command.

Next, 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

debian connect to wifi command line wpa supplicant

Step 2: Connect to Wi-Fi Network With WPA_Supplicant

Now install wpa_supplicant on Debian 11/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 (network name) and Wi-Fi passphrase with your own.

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

debian wpa_passphrase

If your ESSID contains whitespace such as ( linuxbabe WiFi ), you need to wrap the ESSID with double-quotes ( «linuxbabe WiFi» ) in the above command.

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

sudo wpa_supplicant -c /etc/wpa_supplicant/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='CMCC-11802' freq=2437 MHz) wlp4s0: Trying to associate with c5:4a:21:53:ac:eb (SSID='CMCC-11802' 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 Debian desktop edition, then you need to stop Network Manager with the following command, otherwise it will cause a connection problem when using wpa_supplicant.

sudo systemctl stop NetworkManager

And disable NetworkManager 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

Читайте также:  Вай фай дома через ноутбук

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

enable wifi on debian 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 a wireless network, we don’t have an IP address yet. To obtain a private IP address from DHCP server, use the following command:

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

debian dhclient obtain private ip address

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

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/wpa_supplicant.conf file.

Step 3: Auto-Connect At System 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 a 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
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/wpa_supplicant.conf -i wlp4s0

It’s recommended to always try to restart wpa_supplicant when failure is detected. Add the following right below the ExecStart line.

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 reload systemd.

sudo systemctl daemon-reload

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=forking ExecStart=/sbin/dhclient wlp4s0 -v ExecStop=/sbin/dhclient wlp4s0 -r Restart=always [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

If you want to obtain a static IP address, then you need to disable dhclient.service .

sudo systemctl disable dhclient.service

Create a network config file.

sudo nano /etc/systemd/network/static.network
[Match] Name=wlp4s0 [Network] Address=192.168.1.8/24 Gateway=192.168.1.1 

Save and close the file. Then create a .link file for the wireless interface.

sudo nano /etc/systemd/network/10-wifi.link

Add the following lines in this file. You need to use your own MAC address and wireless interface name. This is to prevent the system from changing the wireless interface name.

[Match] MACAddress=a8:4b:05:2b:e8:54 [Link] NamePolicy= Name=wlp4s0 

Save and close the file. Then disable the networking.service and enable systemd-networkd.service , which will take care of networking.

sudo systemctl disable networking sudo systemctl enable systemd-networkd

You can now restart systemd-networkd to see if your configuration works.

sudo systemctl restart systemd-networkd

Another way to obtain a static IP address is 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.

Читайте также:  Драйвер вай фай ноутбук emachines

Recommended Reading:

Multiple Wi-Fi Networks

The /etc/wpa_supplicant.conf configuration file can include multiple Wi-Fi networks. wpa_supplicant automatically selects the best network based on the order of network blocks in the configuration file, network security level, and signal strength.

To add a second Wi-Fi network, run:

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

Note that you need to use the -a option with the tee command, which will append, instead of deleting the original content, the new Wifi-network to the file.

Wi-Fi Security

Do not use WPA2 TKIP or WPA2 TKIP+AES as the encryption method in your Wi-Fi router. TKIP is not considered secure anymore. You can use WPA2-AES as the encryption method.

Wrapping Up

I hope this tutorial helped you connect Debian 11/10 to Wi-Fi network from the 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 🙂

Источник

How to Enable WiFi in Debian 11 Bullseye, Fix Missing wlan0

How to Enable WiFi in Debian 11 Bullseye, Fix Missing wlan0

Are you looking for a way to fix no Wi-Fi problem on Debian? If yes, then you have landed on the right page. In this tutorial, I will share a straightforward method that you can apply to fix the missing Wi-Fi adapter issue on Debian.

If you just did a fresh Debian install on a PC, then you will most likely run into an issue where you can’t access Wi-Fi. Debian will not even show you wlan0 device if you run ip addr show the command.

This happens because the Debian ISO doesn’t include the Wi-Fi firmware by default. Thus, you have to manually install the firmware from a non-free repo in order to use the Wi-Fi facility.

Depending on the network card manufacturer of your computer, you have to install the correct firmware. If you are using a laptop of popular brands such as Lenovo, Acer, Samsung or Asus, which usually use Atheros network card, it could be a little daunting to find the right version of the firmware to install.

I ran into this issue a little while ago and couldn’t find a quick solution so I thought maybe share the fix, so others do not have to face what I went through. Let’s cut to the chase and see the steps involved:

  1. First, identify the manufacturer of your Wi-Fi network card.
  2. Install the firmware matching your network card manufacturer.
Читайте также:  Антенны wi fi системы

See how to complete these two steps below.

Step 1: Identifying Wi-Fi Network Card Manufacturer on Debian

There is a CLI utility called lshw which can help you identify all the hardware installed on your computer, including the network card. A very good chance is that it will be pre-installed. If not, then you will have to install it by connecting your PC to an Ethernet connection. You can use your Android phone as an Ethernet device via USB tethering.

Install lshw like this:

sudo apt install lshw

It is now time to use lshw to find out the network card vendor. Run the command below and wait for it to generate the HTML report.

lshw -html > lsh.html

lshw generate hardware report in html

Open the generated HTML report(lsh.html) in the browser and search for network or network controller. You will find the result something like this:

lshw showing network controller

From this screenshot, it is now evident that the vendor of my network card is Atheros! But it can also be Intel. It all depends on the PC/laptop manufacturer. Never mind, it doesn’t matter because, firmware for both these cards available for Debian. See in next section, how to install it.

Step 2: Installing firmware matching your network card manufacturer on Debian.

In the last step, you will know what network card is installed on your system. So, based on what card it is, you need to install the correct firmware.

For Atheros Card:

On my Lenovo Ideapad 300-15ISK, it was Atheros card, as evident from the snapshots above.

So, to install the firmware for Atheros, you issue the following command.

sudo apt install firmware-atheros

Install firmware-atheros on Debian

After the firmware installs, you can try restarting your computer. You will now see that it will detect the available Wi-Fi networks nearby.

Wi-Fi start showing

Alternatively, you can download the DEB file for the same firmware on some other device, transfer to the Debian PC, and manually install it.

After getting the DEB file, you open the terminal in the Downloads directory and issue this command.

sudo dpkg -i firmware-atheros*

After it completes, successfully, you will have both; wla0 will start showing along with the Wi-Fi network.

For Intel Card:

To install the firmware for Intel network controller, you issue the following command.

sudo apt install firmware-iwlwifi

After it installs successfully, restart your computer. You will now see that it will detect nearby Wi-Fi networks.

Alternatively, you also download the DEB file for the same firmware on some other device, transfer to the Debian PC, and install it manually.

Find and get Intel Wireless firmware here: firmware-iwlwifi (20210315-3) [non-free]

After getting the DEB file, you open the terminal in the Downloads directory and issue this command.

sudo dpkg -i firmware-iwlwifi*

install iwlwifi on Debian

After it completes, successfully, you will have both; wlan0 will start showing along with the Wi-Fi network.

These are the only two steps you have to perform. If you follow them correctly, I am sure you will get Wi-Fi access on Debian in easy way. Although, I hope that they make this process a bit smoother by restoring these back to the installation ISO.

Источник

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