• 【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后台服务:
    1
    # wpa_supplicant -iwlan0 -Dwext -B -c/etc/wpa_supplicant.conf
    ⑵ 运行客户端程序,进入wpa_cli控制台:
    1
    # wpa_cli -iwlan0
    这时将进入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的命令行中输入:
    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加密的无线网络
    假设key12345wpa_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
    看到“CTRL-EVENT-CONNECTED”信息,表示连接完成。
    自动设置
    将当前的网络配置保存到conf文件,方便以后调用,在wpa_cli的命令行中输入:
    1
    > save_c

    最后输入“quit”“CTRL+C” 退出wpa_cli命令行界面。
    通过DHCP获取IP地址:
    1
    # udhcpc -n -i wlan0
    通过ping命令检查网络是否联通,例如:
    1
    # ping 192.168.1.1


    密文保存
    前面为了方便介绍,配置文件采用的是明文方式保存,这里介绍如何使用密文方式加密conf文件中的key参数。在开发板中使用wpa_passphrase工具转换连接密码,将明文key转换为密文,如果key中包含空格需使用斜杠转译字符,例如:
    1
    # wpa_passphrase MYIR-LINK Make Your Idea Real
    然后终端上会打印出配置文件的密文参数形式,如下图所示:
    network={
           ssid="MYIR-LINK"
           #psk="Make Your Idea Real"
    psk=31bb00abde903c543e774637489c20938652aa13f804b54fbf3f124336ef16ba

    }


    附录 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
      
  • 相关阅读:
    最难的事
    性格决定命运,习惯决定未来
    系统构架师之路
    时间是经不起浪费的
    如何投资自己,增加自身价值!
    最好的程序员大多是自学成才的
    杂记
    Win7启动Oracle出错
    推荐代码生成器工具排行
    Hibernate 与 Oracle 11g 的问题
  • 原文地址:https://www.cnblogs.com/huty/p/8517438.html
Copyright © 2020-2023  润新知