1.什麼是wpa_spplicant

 

wpa_supplicant本是開源項目源碼,被穀歌修改後加入android移動平臺,它主要是用來支持WEPWPA/WPA2WAPI無 線協議和加密認證的,而實際上的工作內容是通過socket(不管是wpa_supplicant與上層還是wpa_supplicant與驅動都採用 socket通訊)與驅動交互上報資料給使用者,而使用者可以通過socket發送命令給wpa_supplicant調動驅動來對WiFi晶片操作。 簡單的說,wpa_supplicant就是WiFi驅動和用戶的中轉站外加對協定和加密認證的支援。

 

 

 

2.wpa_supplicant無線網路配置

 

  目前可以使用wireless-tools wpa_supplicant工具來配置無線網路。請記住重要的一點是,對無線網路的配置是全域性的,而非針對具體的介面。

 

   wpa_supplicant是一個較好的選擇,但缺點是它不支援所有的驅動。請流覽wpa_supplicant網站獲得它所支持的驅動列表。另 外,wpa_supplicant目前只能連接到那些你已經配置好ESSID的無線網路。wireless-tools支援幾乎所有的無線網卡和驅動,但 它不能連接到那些只支持WPAAP

 

    經過編譯後的wpa_supplicant來源程式可以看到兩個主要的可執行工具:wpa_supplicantwpa_cli wpa_supplicant是核心程式,它和wpa_cli的關係就是服務和用戶端的關係:後臺運行wpa_supplicant,使用wpa_cli 來搜索、設置、和連接網路。

 

  運行wpa_supplicant程式;

 

執行:/system/bin/wpa_supplicant -d -Dwext -iwlan0 -c/etc/wpa_supplicant.conf

 

其中:
-d
:增加調試資訊
-Dwext
wext,驅動名稱
-iwlan0
wlan0,網路介面名稱

 

/system/bin/wpa_supplicant wpa_supplicant可執行程式path
/etc/wpa_supplicant.conf
主要設定檔
/usr/share/examples/etc/wpa_supplicant.conf
範例設定檔

wpa_supplicant.conf
必須加入以下兩行

 

ctrl_interface=/var/run/wpa_supplicant #supplicant可以建立行程pid
update_config=1 #wpa_cli程式可以更新控制wpa_supplicant

 



1.
先設定系統啟動時使用wpa_supplicant
# vim /etc/rc.conf
加入

 

wlans_ath0="wlan0" #建立網卡介面freebsd8.0定義的,產生wlan0網卡介面
ifconfig_wlan0="WPA DHCP" #設定wlan0網卡使用wpa_supplicant認證並DHCP取得IP

 



2.
建立wpa_supplicant.conf設定檔
把剛剛所建立的wpa_supplicant.conf複製到/etc目錄下

此時重開機系統就會自動啟動,然而也可手動啟動

3.
手動啟動/停止/重啟wpa_supplicant
# /etc/rc.d/wpa_supplicant start|stop|restart wlan0

然而空空的設定檔,對於任何的AP都沒有定義,所以等於是做白工,因為現在最重要的部份就是開始寫你的設定檔,那要寫什麼列?以下是一些範例

4.
設定wpa_supplicantAP的資訊和密碼,其實系統提供的範例就足夠參考了

 

# Shared WEP key connection
network={
    ssid="wlan0" #AP名稱
    key_mgmt=NONE #wpapsk是互斥的,沒指定就要使用psk)
    wep_key0="1234512345" #需要的密碼
}
# Shared WEP key connection using Shared Key
network={
    ssid="ap1411a"
    key_mgmt=NONE
    wep_key0="1234567890"
    auth_alg=SHARED
}
# Planintext connection沒有上鎖的AP
network={
    ssid="YZUWLAN"
    key_mgmt=NONE
}
# WPA-PSK connection
network={
    ssid="AP1411A"
    psk="iplababab1411" #wpa認證密碼
}

 



5.
啟動wpa_supplicant
到這裡有兩種重啟方式,第一種直接reboot機器,第二使用以下指令
# /etc/rc.d/wpa_supplicant restart wlan0

6.
使用wpa_cli控制和管理wpa_supplicant
# wpa_cli -i wlan0 status (
看看目前的狀態)
# wpa_cli -i wlan0 help (
查看參數與指令)
# wpa_cli -i wlan0 terminate (
關閉wpa_supplicant)
# wpa_cli -i wlan0 interface (
查看有那些無線網卡介面)
# wpa_cli -i wlan0 list_networks (
查看wpa_supplicant.conf檔裡的設定)
# wpa_cli -i wlan0 select_network (
選擇不同的APidAP代號0,1,2,3...)
# wpa_cli -i wlan0 enable_network
# wpa_cli -i wlan0 disable_network
# wpa_cli -i wlan0 remove_network (
刪除AP資訊)
# wpa_cli -i wlan0 reconfigure (
重新讀取wpa_supplicant.conf設定內容)
# wpa_cli -i wlan0 save_config (
儲存寫入到wpa_supplicant.conf中,否責變更無效)
# wpa_cli -i wlan0 disconnect (
斷線)
# wpa_cli -i wlan0 reconnect (
重新連線)
# wpa_cli -i wlan0 scan (
掃描附近的AP)
# wpa_cli -i wlan0 scan_results (
印出附近AP的相關資訊)

以上常常用到的差不多是disconnect, reconnect, scan, scan_results, select_network, list_networks, status, reconfigure

※ wpa_supplicat
是個非常好用的工具,讓我們不必自己去一行一行用指令去設定要連結的AP相關資訊,而可以透過 wpa_supplicant.conf設定檔,讓系統開機之後自動搜尋附近AP如果已建立資訊的,就會自動連結好,而如果你換了一個地方,要更換無線網 路設定,也只需要用wpa_cli select_network 就可以把網路切換過去。

 

wiki

https://wiki.archlinux.org/index.php/WPA_Supplicant_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29

man

http://linux.die.net/man/5/wpa_supplicant.conf

arrow
arrow
    全站熱搜

    立你斯 發表在 痞客邦 留言(0) 人氣()