Linux 使用 iw, wpa_supplicant, dhcpcd 连接 WiFi

连接 WiFi 的基本步骤:

  • 打开网卡
  • 扫描附近 WiFi
  • 连接 WiFi
    • 生成帐号密码文件
    • 连接
  • 分配网址(当然这里是自动分配)

如何打开网卡?

ip link set wlan0 up

在这里插入图片描述
如图所示:如果要打开网卡 wlan0,则使用上面的命令,其它类似。

如何扫描附近 WiFi?

iw dev wlan0 scan |grep SSID

在这里插入图片描述
如图所示:根据上面的命令,找到对应的你想要连接的 WiFi 的SSID。

如何连接 WiFi?

  • 生成帐号密码文件。(如果你有强迫症,可以放在一个特定的文件夹,根据自己的需要
wpa_passphrase wlan0 123456 > /root/wlan0.conf

其中的wlan0是你使用的网卡,123456则是密码,后面的是把文件放在哪里。

  • 连接
wpa_supplicant -c /root/wlan0.conf -i wlan0

*相信上面的命令容易理解

自动分配网址

dhcpcd wlan0

最终效果如下:

在这里插入图片描述

代码如下:

#!/usr/bin/bash

# By archicu
# Version 3.0
# connect wifi by wpa_supplicant

wlst=`ip link |grep 'wlan0' |awk '{print $3}' |awk -F"," '{print $3}'`
# set wlan0 up
if [[ ! $wlst = "UP" ]]; then
	ip link set wlan0 up
	if [ $? -eq 0 ]; then
		echo -e "\e[1;36mwlan0 up...\e[0m"
	else
		exit 0;
	fi
fi

echo -e "\e[1;36mThe wifi you connected: \e[0m"
sum=0
for ifile in `ls /root/*.conf`
do
	ifile=$(basename $ifile |awk -F"." '{print $1}')
	wifi_connect[$sum]=$ifile
	echo -e "\e[1;36m$sum : $ifile\e[0m"
	let sum++
done
echo

echo -e "\e[1;36mDo you want a\e[0m \e[1;32mNEW\e[0m\e[1;36m wifi?\e[0m"
read -p "[yes/no]: " choose

if [ $choose == "no" ]; then
	read -p "Choose wifi: " wilan
	wpa_supplicant -c /root/${wifi_connect[$wilan]}.conf -iwlan0 &
else
	echo -e "\e[1;36mScanning wifi devices...\e[0m"
	wait
	iw dev wlan0 scan |grep SSID
	read -p "Device: " widev
	read -p "Passwd: " wipas
	wpa_passphrase $widev $wipas > /root/$widev.conf
	wpa_supplicant -c /root/$widev.conf -iwlan0 &
fi
sleep 3s

dhcpcd wlan0 &
sleep 9s

注意:这些命令都是 root 用户下

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值