前面写了一篇《俺在德国上网的十八般武艺》描述俺的上网艰难历程和各种上网方式,最后说到用中继放大器连接马尔堡大学的网络作为终极解决方式,下面就说说查找的一些资料和解决的办法。
一、查找的资料:
二、具备的条件:
很早前就查到上面的第1篇,知道马尔堡大学可以WLan上网,然后过一阵子仔细查找Wifi热点分布找到附近有接入点,背电脑过去几百米可以用大学的用户名、密码接入使用;
查到第2篇文章,这是最接近我这里使用环境的介绍,只是这里面用的Lan上网,我这里用的WLan上网,这里面的设备需要改安装OpenWRT,我这里本身就是OpenWRT(并且已经安装插件attitude_adjustment和gargoyle),并且无需卸载wpad-mini和安装wpa-cli/wpa-supplicant/hostapd,这些都是现成安装好的软件;
BusyBox v1.19.4 (2013-07-15 20:24:29 CST) built-in shell (ash) Enter 'help' for a list of built-in commands. ------------------------------------------------------------------ | _____ _ | | | __ \ | | | | | | \/ __ _ _ __ __ _ ___ _ _| | ___ | | | | __ / _` | '__/ _` |/ _ \| | | | |/ _ \ | | | |_\ \ (_| | | | (_| | (_) | |_| | | __/ | | \____/\__,_|_| \__, |\___/ \__, |_|\___| | | __/ | __/ | | | |___/ |___/ | | | |----------------------------------------------------------------| | Gargoyle version 1.5.X | OpenWrt Attitude Adjustment branch | | Gargoyle revision e9259ee | OpenWrt revision r36669 | | Built 星期一7 15, 2013 | Target ar71xx/routerstation | ------------------------------------------------------------------
三、解决的过程:
先进入shell后查看各种目录和文件,例如/root/、/www/、/etc/、/etc/config/、/etc/init.d/、/var/run/等,了解关键机制涉及的文件以及可能需要修改的地方;
开始试着自己编写一个staff.conf文件,使用wpa-eap认证方式:
ctrl_interface=/var/run/wpa_supplicant ap_scan=1 network={ scan_ssid=1 ssid="UMRnet_staff" key_mgmt=WPA-EAP eap=PEAP identity="yourname@staff.uni-marburg.de" password="yourpassword" phase1="peaplabel=0" phase2="auth=MSCHAPV2" }
然后运行这个命令来尝试802.1x认证:
wpad wpa_supplicant -b br-wan -i wlan0-1 -D nl80211 -c /etc/staff.conf
尝试认证过程中遇到过的一些问题和解决办法:
运行上面命令后无线网络断掉,内部、外部无线网络都断掉,解决办法:用网线连接路由器的Lan来调试;
找不到lan接口、wlan接口的问题,以及wlan中找不到ssid的问题,文章2中介绍的是lan,需要改conf文件为wlan,scan_ssid从0改为1等,运行的命令也与文章中不同;
认证不通过的问题,一般是.conf文件各种参数设置有问题,参考文章4来修改设置;
显示认证通过,但接下来又显示认证被断开,reason=2和reason=3,查了好些资料,说是先通过了认证到后面又断开了,百思不得其解,我又改了用户名/密码,直接就显示认证错误,说明曾经通过了认证,但估计是后面其它地方的设置不符合还需要修改;
再复制staff.conf到/var/run/wpa_supplicant-wlan0-1.conf,还是不能解决,又参照文章2查看和修改/etc/config/wireless 终于是可以通过认证,ping通外面的网络了!
再接下来就是设法用无线中继、添加WiFi密码、自动通电设置:
找了半天终于找到需要修改的核心是/etc/config/wireless这个文件,估计/www/中的web管理界面中相关的部分就是读取和写入这个文件,默认是不支持802.1x认证,现在人工来修改这个文件实现:
config wifi-device 'radio0' option noscan '1' option type 'mac80211' option hwmode '11ng' option macaddr '00:15:6d:ae:a3:d3' option htmode 'HT40-' list ht_capab 'SHORT-GI-20' list ht_capab 'SHORT-GI-40' list ht_capab 'RX-STBC1' list ht_capab 'DSSS_CCK-40' option channel '5' config wifi-iface 'ap_g' option device 'radio0' option mode 'ap' option network 'lan' option ssid 'WiFi' option encryption 'psk2' option key 'innerpassword' config wifi-iface 'stacfg' option device 'radio0' option mode 'sta' option network 'wan' option ssid 'UMRnet_staff' option encryption 'wpa2' option identity 'yourname@staff.uni-marburg.de' option password 'yourpassword' option eap_type 'peap' option auth 'MSCHAPV2'
这样就算大功告成了,运行网络重启命令就可以实现需要的网络功能:
/etc/init.d/network restart
这个命令运行后,/var/run/wpa_supplicant-wlan0-1.conf的内容也随之改变了,不再需要我另外设置的staff.conf或者自己修改wpa_supplicant-wlan0-1.conf,这说明wpa_supplicant-wlan0-1.conf的内容是自动从/etc/config/wireless读取生成的,而这个wireless的设置我也是摸索了一阵子,从文章5才得到正确的设置参数资料。
四、结论和总结:
只需要人工修改/etc/config/wireless就可以了,然后重新加电启动也都可以正常运转;
OpenWRT真好,只要有一定的Linux知识,多查资料、多花时间尝试,问题总是可以解决的!