您的位置:首页 > 运维架构 > Linux

Linux下Wi-Fi配置工具2

2013-07-22 00:07 375 查看
上回说到,linux下面的Wi-Fi配置工具,说是江湖多事,风起云涌。。。嗯,这回是真的要动手配置了。各种麻烦啊,想死的心都有了有木有啊。

尝试用iwconfig

话说上回说用iwconfig配置Wi-FI,这次一上手就从这里开始了。各种尝试啊。

1)首先,要把网卡down掉

ifdown wlan0


1)获得各个能用的AP的参数

iwlist wlan0 scan


2)告诉网卡,ssid是多少,直接复制上面要用到的ssid

iwconfig wlan0 essid ssid_of_my_ap


3)告诉你的网卡,密码是多少,输入你的密码就好了

iwconfig wlan0 key your_passwd

#if the key is ascii
iwconfig wlan0 key s:your_passd

eg:
iwconfig wlan0 key 1234_567


4)然后,俺还尝试了

iwconfig wlan0 ap xx:xx:xx:xx:xx
#xx:xx:xx:xx:xx is the MAC of my ap


5)这时候可以把网卡开起来了

ifup wlan0


6)什么?发现不工作?这就对了,iwconfig原生只支持WEP加密,该加密已经死翘很久了,现在多是wpa。。。那怎么办。那需要wpa_supplicant的帮助。而且,你能做到这一步的可能也不大,因为如果是wpa的密码的话,在第三步会一直报错的(wpa的密码比WEP的要长,一直在提示key unlegal之类的错误)

好吧,放狗找了下,需要用wpa_supplicant来支援WPA的网络。

尝试用wpa_supplicant

因为我的系统上面已经有wpa_supplicant,所以,这里不考虑安装的问题。

这里主要是修改它的配置文件/etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="TP-LINK_8D0B8A"
key_mgmt=WPA-PSK
psk="12345678"
}


那,我以为是设置这里,然后ifdown,ifup就可以了。。。但是事实上它还是不工作。

然后看到,说是要设置这里/etc/network/interfaces

auto wlan0
iface wlan0 inet dhcp
wpa-ssid "secret-wiki-net"
wpa-psk "verysecret-wpa-psk"


然后,ifup,ifdown...貌似就可以了(这个方法是对的)

但是,事实上还是不行,俺dhcp老是不成功啊。。。然后手动再设ip,连ap都ping不到。

这时候想试试直接打开wpa_supplicant,用了下下面的指令打开wpa_supplicant:

sudo wpa_supplicant -d -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dwext &


额,然后ifconfig查看,居然分配到IP了,ping了下8.8.8.8,bingo!通了!
唔,这个是又迈出了一小步,待进一步了解。

后记:
正确的方法应该是在interfaces里面设置,是我更改interfaces的方式不对,上面提到的四句应该是放到一起的,放一起就好了。直接restart networking,Wi-Fi就能连上。
不过,用wpa_supplicant的话, 打印出好多信息,这个应该是调试硬件的时候用处蛮大的。
猜测下,他们应该是networking会去调用wpa_supplicant,然后wpa_supplicant会去调用iwconfig。。。反正最后用iwconfig查看的时候,显示网卡是和ssid是associated。

有人讲,正确的wpa_supplicant应该是下面这个样子,这样的话甚至不用去该interfaces了是不是?

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="__SSID__"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
psk="__PASSWORD__"
}


待验证。

另外还有个问题,插拔usb-WiFi的时候系统会重启。。。应该是hot-plug的问题,这个留待后面解决吧,暂且先到这里。------》插拔大功率USB设备时重启,是因为硬件bug,so,将就着用吧。

再后记:
原来networking的restart里面是这样写的:

force-reload|restart)
if init_is_upstart; then
exit 1
fi
process_options

log_warning_msg "Running $0 $1 is deprecated because it may not re-enable some interfaces"
log_action_begin_msg "Reconfiguring network interfaces"
ifdown -a --exclude=lo $verbose || true
set -f
exclusions=$(process_exclusions)
if ifup -a --exclude=lo $exclusions $verbose && ifup_hotplug $exclusionss
$verbose
then
log_action_end_msg $?
else
log_action_end_msg $?
fi


先全部ifdown,然后再全部ifup。。。so

所以,还是需要先研究下networking的启动的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: