首页 > 系统相关 >OS-Ubuntu-Server-Connect to Wi-Fi From Terminal on Debian 11/10 with WPA Supplicant

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

时间:2023-12-28 21:56:17浏览次数:32  
标签:11 10 network supplicant sudo wpa wireless file WPA

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

Last Updated: November 8th, 2022 Xiao Guoan (Admin) 31 Comments Debian
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.

iwconfig
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.

sudo rfkill unblock wifi
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

iwconfig
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:

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

ip addr show wlp4s0
debian dhclient obtain private ip address

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

sudo dhclient wlp4s0 -r
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.

scan_ssid=1
Like below:

network={
ssid="LinuxBabe.Com Network"
#psk="12345qwert"
psk=68add4c5fee7dc3d0dac810f89b805d6d147c01e281f07f475a3e0195
scan_ssid=1
}
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
Find the following line.

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.

Restart=always
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
Add the following lines.

[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.

Recommended Reading:

How to Use Systemd on Linux – Manage Services, Run Levels and Logs
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

标签:11,10,network,supplicant,sudo,wpa,wireless,file,WPA
From: https://www.cnblogs.com/abaelhe/p/17933663.html

相关文章

  • 乡村青年小永的AIGC变现之旅:从第002天开始,挑战100天极限
    2023年12月28日:乡村青年小永的AIGC变现之旅:从第002天开始,挑战100天极限!AIGC学习+挑战+变现真实记录第一天,持续更新大家好,我是小永,一个来自贵州毕节小镇的中专生。这个地方可能很多人并不熟悉,但对我来说,这是我成长的地方,是我磨练自我的地方。中专毕业后,我尝试过各种工作,无论是......
  • 痞子衡嵌入式:简析i.MXRT1170 MECC64功能特点及其保护片内OCRAM1,2之道
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是i.MXRT1170MECC64功能特点及其保护片内OCRAM1,2之道。ECC是“ErrorCorrectingCode”的简写,ECC能够实现错误检查和纠正,含有ECC功能的内存一般称为ECC内存,使用了ECC内存的系统在稳定性和可靠性......
  • 代码随想录算法训练营第十六天 |104.二叉树的最大深度,559.n叉树的最大深度,111.二叉树
    一、104.二叉树的最大深度题目链接:LeetCode104.二叉树的最大深度学习:思路:分别求左子树和右子树的高度,返回给根结点,加1之后是根结点的深度,这是后序遍历的思路二、559.n叉树的最大深度题目链接:LeetCode559.N叉树的最大深度学习前:思路:后序遍历。分别所有孩子结点的深......
  • 企业主必看! 10个数据透视软件定制开发,助力企业数字化转型
    软件是科技行业的基石。数字化转型背景下,各行各业从智能手机到复杂的企业系统,软件都是背后的驱动力。然而软件开发行业面临严重的人才短缺。全球咨询公司KornFerry预测,到2030年这一短缺有可能造成美国每年损失1620亿美元的收入,全球总额将达到8.5万亿美元。还有数据表明,每五个职位......
  • 100V降压芯片H6603 外围简洁无过冲 12V 24V 36V 48V 60V 转5V 3.3V
    H6603是一款优秀的降压恒压电源芯片,具有外围元器件少、电路简单、效率高、发热量低等特点。H6603是一款内置功率MOSFET降压开关转换器。在宽输入范围内,其峰值输出电流可达到0.8A,具有极好的负载和线性调整率。电流控制模式提供了快速瞬态响应,并使环路更易稳定。故障保护包括逐周......
  • 114. 二叉树展开为链表
    给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例1:输入:root=[1,2,5,3,4,null,6]输出:[1,null,2,null,3,......
  • 海康华为大华宇视等摄像头以及各种直播流地址(RTSP/RTMP/FLV/HLS等)通过LiveNVR转成标准
    @目录1、背景说明2、通道配置2.1、直播流地址配置2.2、配置RTSP接入2.3、配置Onvif接入2.4、配置SDK接入2.4.1、海康SDK接入2.4.2、大华SDK接入2.4.3、天地伟业SDK接入2.5、配置拉转视频文件2.6、海康ISUP接入2.6.1、海康ISUP接入配置2.6.2、海康设备接入2.6.2.1、海康EHOME接......
  • virt-manager 的 AT-SPI 服务警告org.a11y.Bus
    1、idea执行调试运行程序出现错误如下:(java:91797):dbind-WARNING**:16:39:56.530:AT-SPI:Errorretrievingaccessibilitybusaddress:org.freedesktop.DBus.Error.ServiceUnknown:Thenameorg.a11y.Buswasnotprovidedbyany.servicefiles修复问题:终端命令:sudo......
  • codeforces刷题(1100):1901B_div2
    B、ChipandRibbon跳转原题点击此:该题地址1、题目大意  存在一条由n个单元格组成的带子。chip可以做两个操作:1、由\(i\)走到\(i+1\),但是不能走到\(i-1\);2、可以传送到任意位置,包括传送到原地。每到一个单元格,该单元格的数值+1(初始为0)。最开始chip在从第一格开始走起(题......
  • Docker安装Oracle11g
    1、拉取Oracle镜像,并查看dockerpullregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11gdockerimages2、创建临时容器dockerrun-d-p1521:1521--nameoracle11gregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g3、进入容器#先查看所有容器,找到Oracle容......