<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    WPA Supplicant 用法

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

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

     

    wpa_supplicant 是跨平臺的 WPAsupplicant,支持 WEP, WPA 和 WPA2 (IEEE 802.11i / RSN (Robust Secure Network)). 可以在桌面、筆記本甚至嵌入式系統中使用。

    wpa_supplicant 是在客戶端使用的 IEEE 802.1X/WPA 組件, 支持與 WPA Authenticator 的交互,控制漫游和無線驅動的 IEEE 802.11 驗證和關聯。 

    安裝

    從 官方軟件倉庫 中安裝軟件包 wpa_supplicant

    此外軟件包 wpa_supplicant_gui 提供了圖形界面wpa_gui。 

    啟動

    本節介紹啟動wpa_supplicant的常用方法,選擇一個最適合你的。

    systemd

    wpa_supplicant提供多種服務的文件:

    • wpa_supplicant.service - 使用 D-Bus, 推薦 NetworkManager 的用戶.
    • wpa_supplicant@.service - 接受接口名作為參數,并為該接口啟動wpa_supplicant守護進程。它讀取/etc/wpa_supplicant/wpa_supplicant-interface.conf的配置文件
    • wpa_supplicant-nl80211@.service -  也是接口特定的,但明確強制nl80211驅動程序 (見下文). 配置文件路徑是/etc/wpa_supplicant/wpa_supplicant-nl80211-interface.conf
    • wpa_supplicant-wired@.service - 也是接口特定的, 使用 wired 驅動. 配置文件路徑是/etc/wpa_supplicant/wpa_supplicant-wired-interface.conf

    dhcpcd

    dhcpcd包含了一個鉤子(默認為啟用)來自動啟動對應無線接口的wpa_supplicant。它只在如下情況下啟動:

    • 沒有wpa_supplicant進程在該接口在監聽。
    • 存在一個wpa_supplicant的配置文件。dhcpcd 默認檢查 /etc/wpa_supplicant.conf 和 /etc/wpa_supplicant/wpa_supplicant.conf,但可以通過在/etc/dhcpcd.conf設置env wpa_supplicant_conf=configuration_file_path來添加自定義路徑。

    手動

    wpa_supplicant接受多個命令行參數,特別是:

    • -B - 在后臺執行
    • -c 文件名 -路徑配置文件
    • -i 接口 - 監聽的接口

    關于完整的參數列表,參考 man 8 wpa_supplicant。例如,常見的用法是:

    # wpa_supplicant -B -i interface -c configuration_file
    

    配置

    wpa_supplicant提供了一個參考配置文件/etc/wpa_supplicant/wpa_supplicant.conf,其中包含了所有可用的選項及其用法和例子的詳細文檔。考慮先把它備份起來,因為下面描述的自動添加網絡配置到wpa_supplicant.conf的方法下刪除了文件中的所有注釋。

    在其最簡單的形式中,一個配置文件,只需要一個網絡配置塊。例如:

    /etc/wpa_supplicant/foobar.conf
    network={
        ssid="..."
    }

    一旦你有一個配置文件,如前節所述,就可以啟動wpa_supplicant守護進程,并使用一個靜態IP或DHCP連接到無線網絡。

    wpa_passphrase

    網絡配置可以使用wpa_passphrase工具自動生成并添加到配置文件中。這在連接到需要密碼的安全網絡時是有用的。例如:

    $ wpa_passphrase essid passphrase
    network={
        ssid="essid"
        #psk="passphrase"
        psk=f5d1c49e15e679bebe385c37648d4141bc5c9297796a8a185d7bc5ac62f954e3
    }

    一些異常復雜的口令可能需要從文件輸入:

    $ wpa_passphrase essid < passphrase.txt
    
    提示:wpa_supplicant和wpa_passphrase可以結合起來關聯到幾乎所有的WPA2(個人)網絡:
    # wpa_supplicant -B -i interface -c <(wpa_passphrase essid passphrase)
    

    指定驅動

    您可能需要指定一個驅動來使用。關于支持的驅動程序的列表,請參考wpa_supplicant -h的輸出結果。

    • nl80211 是當前的標準,但不是所有的無線芯片的模塊支持。
    • wext 目前已過時,但仍得到廣泛支持。

    使用 -D 開關來指定驅動:

    # wpa_supplicant -B -i interface -c configuration_file -D driver
    

    使用 wpa_cli

    wpa_supplicant可以通過使用wpa_cli命令,在運行時手動進行控制。要啟用wpa_cli,wpa_supplicant守護進程必須被配置為通過在wpa_supplicant的配置文件(默認位置:/etc/wpa_supplicant/wpa_supplicant.conf)設置ctrl_interface變量來創建一個“控制接口”(套接字)。

    用戶也將需要通過指定可以訪問它的組來獲準訪問該套接字。一個新的組可能為此被創建,并且用戶添加到它,或已存在的組可以使用 - 通常是 wheel。

    下面的設置將在/run/wpa_supplicant/中創建套接字并允許wheel組的成員進行訪問:

    ctrl_interface=DIR=/run/wpa_supplicant GROUP=wheel
    

    可以通過wpa_cli修改的wpa_supplicant配置文件自身。這在手動添加新的網絡到配置文件,而無需重新啟動wpa_supplicant守護進程時是有用的。為了實現這一目標,在配置文件中設置update_config變量設置為1:

    update_config=1
    

    在wpa_cli開始之前,wpa_supplicant守護進程必須處于運行狀態。(見#Starting了解詳情)。然后啟動

    $ wpa_cli
    

    它會尋找配置文件中給定位置的控制套接字,位置也可以使用p選項手動設置)。您可以使用-i選項配置的接口,不然的話將使用wpa_supplicant所管理的第一個被找到的無線接口。

     

    當wpa_cli被調用時,將出現交互式提示符(>)。提示包括tab 補全和已完成命令的說明。

     

    使用wpa_cli添加一個新的網絡

    掃描可用網絡,在>提示符之后輸入“scan”。在掃描完成后將顯示通知:

    > scan
    OK
    <3>CTRL-EVENT-SCAN-RESULTS
    >
    

    然后輸入 "scan_results" 來顯示結果:

    > scan_results
    bssid / frequency / signal level / flags / ssid
    00:00:00:00:00:00 2462 -49 [WPA2-PSK-CCMP][ESS] MYSSID
    11:11:11:11:11:11 2437 -64 [WPA2-PSK-CCMP][ESS] ANOTHERSSID
    >
    

    為了與MYSSID相關聯,需要告知wpa_supplicant。在配置文件中的各個網絡是以零開始按數值進行索引。如果您添加了一個新的網絡,它會被相應地分配一個新數字。

    > add_network
    0
    >
    

    使用這個數字來指定你的設置應用到哪個網絡。對于一個新的網絡,在引號里設置其SSID:

    > set_network 0 ssid "MYSSID"
    OK
    >
    

    即使你的無線接入點沒有被保護,cli也顯式地需要一個PSK,同樣在引號內。密碼必須是8-63個字符:

    > set_network 0 psk "passkey"
    OK
    >
    

    使能:

    > enable_network 0
    OK
    >
    

    修改寫入配置文件:

    > save_config
    OK
    >
    

    動作腳本

    wpa_cli可以在后臺模式下運行,并執行基于wpa_supplicant事件的指定腳本。可以支持兩類事件:連接和斷開。一些環境變量可用于腳本,細節請參考man 8wpa_cli。

    下面的例子將使用桌面通知,通知有關事件的用戶:

    #!/bin/bash
    
    case "$2" in
        CONNECTED)
            notify-send "WPA supplicant: connection established";
            ;;
        DISCONNECTED)
            notify-send "WPA supplicant: connection lost";
            ;;
    esac
    

    記住修改腳本為可執行,然后使用-a來傳遞腳本路徑給wpa_cli:

    $ wpa_cli -a path_to_script
    

    另請參閱

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全