随笔-118  评论-133  文章-4  trackbacks-0

Ubuntu的那个NetworkManager其实挺好的,只是前段时间常驻办公室,在那边只能用有线上网,还要修改MAC,手工指定IP,本来 在/etc/network/interfaces里面加上规则是很轻松的事情,可是NetworkManager让这件事情比在windows下还要麻 烦,于是一怒之下我就把他干掉了,而且还加了可爱的参数purge。

但是无线我就不会配了,回宿舍上网的两个解决方案是进windows和用有线。回家之后路由器扔在客厅,没法用有线了,咬咬牙,折腾了小半个下午,解决了无线的配置问题。

我的Wi-Fi信号是这样,802.11g,SSID广播,WPA2 Personal加密模式,WPA加密算法用TKIP,30位数字特殊符号大小写的密钥,客户端由DHCP分配IP。笔记本无线网卡是Inter 5100 AGN,操作系统是Ubuntu 9.10。

原理大概是这样,/etc/network/interfaces里面无线网卡配置的写法跟有线差不多,只是多需要了一个叫wpa_supplicant的程序,它的作用是对数据流进行加密,因此要在网卡up的时候启动它,在网卡down的时候关掉他。

具体的做法如下,首先iwconifg看一下无线网卡叫啥,我这块卡是能被系统认出来并驱动的,名字叫wlan0。

然后给wpa_supplicant写个配置文件,放在/etc/wpa_supplicant下面好了,管他叫wpa_supplicant.conf好了,如下。

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=root
network={
ssid=”……” #ssid的名字,如果ssid不是广播的话,在下面加一条scan_ssid=1。
key_mgmt=WPA-PSK
psk=”……” #引号里面明文写密钥
proto=RSN #据说WPA1是写WPA的,WPA2是写这个的。
pairwise=TKIP
}

明文写密钥比较变态,用wpa_passphrase ssid ‘psk’来生成一个加密的psk,效果如下。

# wpa_passphrase tplink ‘qwer!@#123′
network={
ssid=”tplink”
#psk=”qwer!@#123″
psk=8f7ccd4d208572d85eefadf6d80b66f27515a9de8f79743148cefb2c6785e0f5
}

根据输出重新替换回去就好。

接着在/etc/network/interfaces里面写

auto wlan0
iface wlan0 inet dhcp
wireless-ssid “……”
pre-up wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf
post-down killall -q wpa_supplicant

pre-up就是在网卡up之执行一下wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf,在后台启动一个wpa_supplicant的进程,这样 post-down的意思也就明了了。

然后就是/etc/init.d/networking restart了,如果启动不成功的话,在确认没有低级错误的情况下,基本就是网卡的驱动问题了,man wpa_supplicant了解更多,然后就是wpa_supplicant.conf里面的参数了,找找还有别的调整调整,调到满意为止。

主力参考了这篇 http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch13_:_Linux_Wireless_Networking,其他也google了一些,没有太多参考价值,参悟了wpa_supplicant的作用就明白了。


注:

    本人觉得ubuntu的network manager那一套统一管理有线和无线设备的机制对用户来说更友好,有兴趣的话可以看看/etc/network/目录下的脚本文件,里面就是使用wireless-tools和wpa_supplicant工具管理无线网络的。

posted on 2010-05-20 20:45 lfc 阅读(6042) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。