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 的基本步骤:
- 打开网卡
- 扫描附近 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 用户下
更多推荐
已为社区贡献1条内容
所有评论(0)