【ARM-Linux开发】Wi-Fi 应用工具wpa_supplicant
生活随笔
收集整理的這篇文章主要介紹了
【ARM-Linux开发】Wi-Fi 应用工具wpa_supplicant
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
wpa_supplicant是一個跨平臺的無線安全管理軟件,這里需要用它來對無線網絡進行配置,wpa_supplicant相關工具已經移植好,包含在我們提供的文件系統中。
配置無線網絡
wpa_supplicant軟件包分為服務端wpa_supplicant和客戶端wpa_cli兩部分組成。wpa_supplicant為主服務程序,wpa_cli即client的意思,相當于wpa_supplicant的UI。 配置無線網絡有兩種方式,可以使用wpa_cli客戶端手動方式,還可以使用conf配置文件進行自動方式。 wpa_supplicant配置路徑:/etc/wpa_supplicant.conf 手動設置
⑴ 啟動wpa_supplicant后臺服務:
⑵ 運行客戶端程序,進入wpa_cli控制臺:
這時將進入wpa_cli的命令行界面,輸入如下命令,掃描并顯示無線熱點: > scan
> scan_r 掃描結果將類似如下打印: bssid / frequency / signal level/ flags / ssid 0a:11:b5:25:d8:cb? ?? ? 2412? ?-61? ? [WPA-EAP-CCMP+TKIP][WPA2-EAP-CCMP+TKIP][ESS] CMCC-AUTO 0c:82:68:c7:60:28? ?? ? 2447? ?-58? ???[WPA2-PSK-CCMP+TKIP][ESS]MYIR-LINK bc:d1:77:21:11:72? ?? ? 2437? ?-60? ???[WEP][ESS] TP-LINK 00:11:b5:19:d2:86? ?? ? 2412? ?-61? ???[ESS] CMCC
00:23:89:03:f8:20? ?? ? 2462? ?-68? ???[ESS] ChinaNet 這里顯示了附近的無線網絡,每個無線網絡都有5項參數,分別為MAC地址、頻率、信號強度、加密類型、SSID。 頻率:單位為Hz,同時也知道了其所在頻道。例如2412即2.412GHz,就是頻道1,2437即2.437GHz,則是頻道6。 信號強度:單位為dbm,一般為負值,數值越大,信號越強,例如-60dbm的CMCC比-61dbm的CMCC-AUTO信號要強。 加密類型:[ESS]表示無加密的無線網絡,[WEP]表示WEP加密方式,[WPA2-PSK-CCMP+TKIP]表示WPA2加密方式。 ⑶ 增加網絡
在連接無線網絡之前,需要新建一個網絡配置,使用add_network命令增加一個網絡,可以使用list_network查看增加的網絡信息。在wpa_cli的命令行中輸入:
如果之前沒有配置過網絡,使用“add_n”將返回0號配置,用“add_n <num>”可以建立更多配置。 ⑷設定連接
①?無加密無線網絡
在wpa_cli的命令行中輸入:
②?WEP加密的無線網絡 假設key為“12345”在wpa_cli的命令行中輸入:
③?WPA-PSK/WPA2-PSK加密的無線網絡 假設key為“Make Your Idea Real”,在wpa_cli的命令行中輸入:
⑸ 使能網絡連接 使用enable_network命令使能網絡連接:
看到“CTRL-EVENT-CONNECTED”信息,表示連接完成。 自動設置 將當前的網絡配置保存到conf文件,方便以后調用,在wpa_cli的命令行中輸入:
最后輸入“quit”或“CTRL+C”?退出wpa_cli命令行界面。 通過DHCP獲取IP地址:
通過ping命令檢查網絡是否聯通,例如:
密文保存
前面為了方便介紹,配置文件采用的是明文方式保存,這里介紹如何使用密文方式加密conf文件中的key參數。在開發板中使用wpa_passphrase工具轉換連接密碼,將明文key轉換為密文,如果key中包含空格需使用斜杠轉譯字符,例如:
然后終端上會打印出配置文件的密文參數形式,如下圖所示: network={ ssid="MYIR-LINK" #psk="Make Your Idea Real" psk=31bb00abde903c543e774637489c20938652aa13f804b54fbf3f124336ef16ba
}
附錄?wpa_cli?命令
配置無線網絡
wpa_supplicant軟件包分為服務端wpa_supplicant和客戶端wpa_cli兩部分組成。wpa_supplicant為主服務程序,wpa_cli即client的意思,相當于wpa_supplicant的UI。 配置無線網絡有兩種方式,可以使用wpa_cli客戶端手動方式,還可以使用conf配置文件進行自動方式。 wpa_supplicant配置路徑:/etc/wpa_supplicant.conf 手動設置
⑴ 啟動wpa_supplicant后臺服務:
| 1 | # wpa_supplicant -iwlan0 -Dwext -B -c/etc/wpa_supplicant.conf |
| 1 | # wpa_cli -iwlan0 |
> scan_r 掃描結果將類似如下打印: bssid / frequency / signal level/ flags / ssid 0a:11:b5:25:d8:cb? ?? ? 2412? ?-61? ? [WPA-EAP-CCMP+TKIP][WPA2-EAP-CCMP+TKIP][ESS] CMCC-AUTO 0c:82:68:c7:60:28? ?? ? 2447? ?-58? ???[WPA2-PSK-CCMP+TKIP][ESS]MYIR-LINK bc:d1:77:21:11:72? ?? ? 2437? ?-60? ???[WEP][ESS] TP-LINK 00:11:b5:19:d2:86? ?? ? 2412? ?-61? ???[ESS] CMCC
00:23:89:03:f8:20? ?? ? 2462? ?-68? ???[ESS] ChinaNet 這里顯示了附近的無線網絡,每個無線網絡都有5項參數,分別為MAC地址、頻率、信號強度、加密類型、SSID。 頻率:單位為Hz,同時也知道了其所在頻道。例如2412即2.412GHz,就是頻道1,2437即2.437GHz,則是頻道6。 信號強度:單位為dbm,一般為負值,數值越大,信號越強,例如-60dbm的CMCC比-61dbm的CMCC-AUTO信號要強。 加密類型:[ESS]表示無加密的無線網絡,[WEP]表示WEP加密方式,[WPA2-PSK-CCMP+TKIP]表示WPA2加密方式。 ⑶ 增加網絡
在連接無線網絡之前,需要新建一個網絡配置,使用add_network命令增加一個網絡,可以使用list_network查看增加的網絡信息。在wpa_cli的命令行中輸入:
| 1 2 3 4 5 6 | > list_n[/align]network id / ssid / bssid / flags > add_n 0 > list_n network id / ssid / bssid / flags 0?????????????? any???? [DISABLED] |
如果之前沒有配置過網絡,使用“add_n”將返回0號配置,用“add_n <num>”可以建立更多配置。 ⑷設定連接
①?無加密無線網絡
在wpa_cli的命令行中輸入:
| 1 | > set_n 0 ssid "MYIR-LINK"[/align]> set_n 0 key_mgmt NONE |
②?WEP加密的無線網絡 假設key為“12345”在wpa_cli的命令行中輸入:
| 1 2 3 | > set_n 0 ssid "MYIR-LINK-WEP" > set_n 0 key_mgmt NONE > set_n 0 wep_key0 "12345" |
③?WPA-PSK/WPA2-PSK加密的無線網絡 假設key為“Make Your Idea Real”,在wpa_cli的命令行中輸入:
| 1 | > set_n 0 ssid "MYIR-LINK-WPA2"[/align]> set_n 0 psk "Make Your Idea Real" |
⑸ 使能網絡連接 使用enable_network命令使能網絡連接:
| 1 | > enable_n 0 |
| 1 | > save_c |
最后輸入“quit”或“CTRL+C”?退出wpa_cli命令行界面。 通過DHCP獲取IP地址:
| 1 | # udhcpc -n -i wlan0 |
| 1 | # ping 192.168.1.1 |
密文保存
前面為了方便介紹,配置文件采用的是明文方式保存,這里介紹如何使用密文方式加密conf文件中的key參數。在開發板中使用wpa_passphrase工具轉換連接密碼,將明文key轉換為密文,如果key中包含空格需使用斜杠轉譯字符,例如:
| 1 | # wpa_passphrase MYIR-LINK Make\ Your\ Idea\ Real |
}
附錄?wpa_cli?命令
| ?? Full command ?? | ?? Short command ?? | ?? Description ?? |
| ?? status ?? | ?? stat ?? | ?? displays the current connection status ?? |
| ?? disconnect ?? | ?? disc ?? | ?? prevents wpa_supplicant from connecting to any??access point ?? |
| ?? quit ?? | ?? q ?? | ?? exits wpa_cli ?? |
| ?? terminate ?? | ?? term ?? | ?? kills wpa_supplicant ?? |
| ?? reconfigure ?? | ?? recon ?? | ?? reloads wpa_supplicant with the configuration??file supplied ?? (-c parameter) ?? |
| ?? scan ?? | ?? scan ?? | ?? scans for available access points ?? (only scans it, doesn't display anything) ?? |
| ?? scan_result ?? | ?? scan_r ?? | ?? displays the results of the last scan ?? |
| ?? list_networks ?? | ?? list_n ?? | ?? displays a list of configured networks and their??status ?? (active or not, enabled or disabled) ?? |
| ?? select_network ?? | ?? select_n ?? | ?? select a network among those defined to initiate??a connection ?? (ie select_network 0) ?? |
| ?? enable_network ?? | ?? enable_n ?? | ?? makes a configured network available for??selection ?? (ie enable_network 0) ?? |
| ?? disable_network ?? | ?? disable_n ?? | ?? makes a configured network unavailable for??selection ?? (ie disable_network 0) ?? |
| ?? remove_network ?? | ?? remove_n ?? | ?? removes a network and its configuration from the??list ?? (ie remove_network 0) ?? |
| ?? add_network ?? | ?? add_n ?? | ?? adds a new network to the list. Its id will be??created automatically ?? |
| ?? set_network ?? | ?? set_n ?? | ?? shows a very short list of available options to??configure a network when supplied with no parameters. ?? See next section for a list of extremely useful??parameters to be used with set_network and get_network. ?? |
| ?? get_network ?? | ?? get_n ?? | ?? displays the required parameter for the specified??network. See next section for a list of parameters ?? |
| ?? save_config ?? | ?? save_c ?? | ?? saves the configuration ?? |
轉載于:https://www.cnblogs.com/huty/p/8517437.html
總結
以上是生活随笔為你收集整理的【ARM-Linux开发】Wi-Fi 应用工具wpa_supplicant的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于视图的一些认识
- 下一篇: ajax方式表单拦截