Linux 命令行下配置连接 wlan 无线网卡具体步骤参考。
工作的大体思路如下:
-
用iwconfig开启无线网卡的电源,并查找区域内的无线网络
-
连接到相应的无线网络
-
通过ifconfig启用无线网卡,并获取IP(如果使用DHCP的话) 注意:
假设无线被识别为 wlan0,如果您的网卡没有被识别为 wlan0,可以在操作时做相应的修改。
具体步骤
1. 打开无线网卡电源
iwconfig wlan0 txpower on
2. 列出区域内的无线网络
iwlist wlan0 scan
3. 假设要连接到网络MyHome(即essid为MyHome的网络),那么输入命令
iwconfig wlan0 essid “MyHome”
如果网络是加密的,密码是0123456789,那么就输入命令
iwconfig wlan0 essid “MyHome” key 0123-4567-89
4. 如果正常的话,输入
iwconfig wlan0
就可以看到连接正常的各项参数了。
5. 启用无线网卡
ifconfig wlan0 up
6. 如果是用 DHCP 获取 IP 的,那么用 dhclient 或 dhcpcd 获取 ip
dhclient wlan0
或
dhcpcd wlan0
7. 现在无线网卡应该可以正常使用了
注意:一定要把 NetworkManager 服务停掉
===================================================================
由于设备上同时存在wifi和3G,想节省流量,得在有WIFI和3G时,使用WIFI.此时如果WIFI断开,则使用3G.但由于
route优先级时,以最后一个连接做为default.所以做了一个shell,每隔两秒来检测网络状态。
shell内容如下:
#!/bin/sh
wifi_exist=0
pppd_exist=0
while true
do
wifi_exist=$(ifconfig |grep -w "wlan0" -c)
pppd_exist=$(ifconfig |grep -w "ppp0" -c)
#echo $wifi_exist
#echo $pppd_exist
if [ $wifi_exist -ge 1 ];then
wifi_state=$(ifconfig wlan0|grep -w "RUNNING" -c)
#echo $wifi_state
fi
if [ $pppd_exist -ge 1 ];then
pppd_state=$(ifconfig ppp0|grep -w "RUNNING" -c)
#echo $pppd_state
fi
route_state=$(route|sed -n "1,3p"|grep -w "default"| grep -w "wlan0" -c)
#echo $route_state
if [ $route_state -lt 1 ]; then
if [ $wifi_state -eq 1 ];then
udhcpc -i wlan0
fi
else
if [ $wifi_state -eq 0 ];then
route del default
if [ $pppd_state -eq 1 ];then
route add default dev ppp0
fi
fi
fi
sleep 2
done