本文主要介紹在ubuntu14.04系統環境中編譯hostapd,以及其使用。
我的需求是在linux上建立wifi熱點,最早接觸的是ap-hostapd這個指令碼,然後參考網路文章安裝hostapd以及dnsmasq。對於ap-hostpad的使用,網路已經有大量文章,筆者也就不再寫了。不過由於hostapd版本關係,有些功能可能不支援,或者某些功能沒有被編譯。於是就得自己手動編譯hostapd。本文由此而得。
1、hostapd官網為:截至本文發表,最新版本是2.5。
2、該軟體依賴libnl庫,在ubuntu14.04系統安裝如下:
# apt-get install libnl-3-200
# apt-get install libnl-3-dev
# apt-get install libnl-genl-3-dev
3、config_libnl32=y
config_ieee80211n=y
config_ieee80211ac=y
config_acs=y # 開啟這個選項,才能使用自動選擇通道(acs,automatic channel selection)
4、輸入make進行編譯。
package libnl-3.0 was not found in the pkg-config search path.
perhaps you should add the directory containing `libnl-3.0.pc'
to the pkg_config_path environment variable
no package 'libnl-3.0' found
則需要將libnl-3.0.pc所在目錄新增到pkg_config_path變數中,先用如下命令檢視所在目錄:
# find / -name "libnl-3.0.pc"
/usr/lib/i386-linux-gnu/pkgconfig/libnl-3.0.pc
然後新增到pkg_config_path變數,命令如下:
export pkg_config_path=/usr/lib/i386-linux-gnu/pkgconfig/:$pkg_config_path
hostapd使用十分簡單,直接執行命令:
hostapd -b ./hostapd.conf
-b表示以daemon形式執行,-f指定除錯資訊輸出檔案,可以使用-d或-dd輸出更多除錯資訊。
值得說明的是,如果要實現完整的wifi熱點,除了此軟體外,還得設定好無線網絡卡ip位址,一般而已該位址即為閘道器位址。而且還得具備dhcp功能,當然也可以不需要。如果沒有dhcp,手機連線時就得指定ip位址。筆者就因為有一些試驗時沒有開啟dhcp服務,用手機、pc怎麼也連線不上wifi,折騰了半天才發現問題所在。
——以上的各項設定,可以直接使用ap-hostapd或create_ap指令碼來代替。後面筆者將就這兩個著名的指令碼進行解析而得到屬於自己的乙個指令碼。
inte***ce=wlan0 # 網路裝置
max_num_sta=255 # 最大允許多少個客戶連線
driver=nl80211 # 驅動,一般不用改
ssid=lateleeswifi_1b62be # ssid,即wifi名稱
wpa_passphrase=12345678910 #密碼
country_code=cn #國家碼
hw_mode=g # 模式
beacon_int=100 #beacon幀間隔,單位為1.024 ms,預設為100,抓包可看到beacon幀為0.1024s
ignore_broadcast_ssid=0 #設定為1會隱藏ssid
ht_capab=[ht20] # ht特性 short-gi-20 為短gi,速率會提公升10%。ht40-表示向下繫結,ht40+表示向上繫結。short-gi-40為短gi,40mhz頻寬。
下面給出乙個802.11n的示例:
beacon_int=100
inte***ce=wlan0
driver=nl80211
ssid=lateleewifi
channel=0
max_num_sta=2
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=12345678910
wpa_key_mgmt=wpa-psk
wpa_pairwise=tkip
rsn_pairwise=ccmp
country_code=cn
ieee80211d=1
ieee80211h=1
hw_mode=g
ieee80211n=1
ht_capab=[ht40+][short-gi-40][dsss_cck-40]
wmm_enabled=1
下面給出乙個802.11ac的示例:
beacon_int=100
inte***ce=wlan0
driver=nl80211
ssid=lateleewifi
channel=0
max_num_sta=2
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=12345678910
wpa_key_mgmt=wpa-psk
wpa_pairwise=tkip
rsn_pairwise=ccmp
country_code=cn
ieee80211d=1
ieee80211h=1
hw_mode=a
ieee80211ac=1
wmm_enabled=1
ieee80211n=1
ht_capab=[ht40+][ldpc][short-gi-20][short-gi-40][tx-stbc][rx-stbc1][dsss_cck-40]
#ht_capab=[ht40+][short-gi-40][dsss_cck-40]
#ieee80211ac=1
#vht_oper_chwidth=1
#vht_capab=[max-mpdu-11454][rxldpc][short-gi-80][tx-stbc-2by1][rx-stbc-1][max-a-mpdu-len-exp7][rx-antenna-pattern][tx-antenna-pattern]
#vht_capab=[ofdm][bpsk][qpsk][16-qam][64-qam][256-qam][ldpc][short-gi-40]
vht_capab=[short-gi-80]
注:理論上看802.11ac速率要比802.11n高,但實際上,如不在hostapd中新增ieee80211n的配置,則速率並不高。
李遲 2016.7.23 週六 中午
Ubuntu 14 04 系統安裝
1.選擇系統語言 2.安裝環境,足夠的磁碟空間,電腦接入電源,已經連線網際網路 ps a.網際網路可以不連線,連線網際網路會自動更新,影響安裝速度 b.想要加快安裝速度,可以不選兩個選項 c.更新和第三方軟體都是需要的,所以建議保持網路連線,勾選選項。3.安裝型別,有資料最好自己分割槽,選擇 其他選...
Ubuntu14 04系統hostapd編譯及使用
本文主要介紹在ubuntu14.04系統環境中編譯hostapd,以及其使用。我的需求是在linux上建立wifi熱點,最早接觸的是ap hostapd這個指令碼,然後參考網路文章安裝hostapd以及dnsmasq。對於ap hostpad的使用,網路已經有大量文章,筆者也就不再寫了。不過由於ho...
ubuntu14 04系統基本配置
1.瀏覽器 sudo apt get update sudo apt get install chromium browser sudo add apt repository ppa skunk pepper flash sudo apt get update wget q o sudo apt k...