無線網路設定 wpa_supplicant and wpa_cli

不論在linux系統或是BSD系統上,設定無線網卡一直都是個很麻煩的問題,尤其是一開始安裝基系統,沒有圖形介面,這樣需要上網抓東西怎麼抓是個很大的問題,然而wpa_supplicant這個軟體幫我們管理和存取點認證相關的問題,之後直接建立連線,是個很方便的作法,我在這裡提供一下目前我機器上的設定和配置方式。

系統:FreeBSD 8.0 stable
/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_supplicant中AP的資訊和密碼,其實系統提供的範例就足夠參考了
# Shared WEP key connection
network={
ssid="wlan0" #AP名稱
key_mgmt=NONE #和wpa的psk是互斥的,沒指定就要使用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 (選擇不同的AP,id為AP代號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 就可以把網路切換過去。

0 意見: