Hostapd Configuration Guide
https://github.com/mengning/remoteapd/wiki/Hostapd-Configuration-Guide
http://linsir.sinaapp.com/post/Raspberry_Pi_Wifi_Router
無線AP可以為傳統的有線局域網提供無線擴展接入,而一般的無線網卡只能作為客戶端連接到無線AP。目前市面上很多無線網卡都具有模擬AP功能,不單可以作為無線客戶端連接上無線網絡,也可以切換為模擬AP,供其他無線客戶端連接。
??隨著個人越來越多的其他的無線設備如手機、PAD以及很多類似平板設備的普及,我們發現很多時候我們的外出等特殊情況下讓我們的其他設備接入有線網絡已經成為了一個現實問題,那么我們可以充分發揮我們的隨身筆記本的功能,將其通過軟件設置成為模擬AP,這樣就可以解決很多特殊情況下其他設備上網的問題了,如果您是一位WINDONS的用戶,那么在win7下面用"承載網絡"這一功能來模擬AP。在LINUX系統下我們也可以通過Hostapd軟件配置來實現這樣的功能。
一、實驗環境:
操作系統:Ubuntu 內核版本:Ubuntu13.04 無線網卡型號:tp-link TL-WN310G
二、無線AP創建過程:
1. 安裝依賴文件:
libnl庫主要提供基于LINUX內核的netlink protocol相關APs函數。
libssl-dev庫提供ssl開發庫。
hr@ubuntu:~$ sudo apt-get install libnl-dev libpopt-dev libssl-dev2. 下載hostapd:http://hostap.epitest.fi/hostapd/
注意下載(Latest release: hostapd-2.0.tar.gz)
3. 解壓
tar -zxvf hostapd-2.0.tar.gz4. 進入hostapd-2.0/hostapd/
cd hostapd-2.0/hostapd/5. 備份默認的config
cp defconfig .config6. 安裝Hostapd
make sudo make install7. 插上無線網卡
ifconfig//命令下應該會顯示有wlan0,表明無線網卡已經插上.8. 配置wlan0網口
sudo gedit /etc/network/interfaces添加
auto wlan0 iface wlan0 inet static address 192.168.0.1 netmask 255.255.255.09. 準備hostapd的配置文件
sudo gedit /etc/hostapd.conf添加
interface=wlan0//接入點設備名稱注意不要包含ap后綴,即如果該設備稱為wlan0ap,填寫wlan0即可 driver=nl80211//設置無線驅動類型 ssid=fyqhr //AP熱點名字 hw_mode=g //指定802.11協議包括a=IEEE802.11a,b = IEEE 802.11b, g = IEEE 802.11g channel=11 //channel:設定無線頻道 dtim_period=1 //設置DTIM周期,穩定的關鍵。AP通過設置DTIM的間隔(缺省是一個beacon時間,100ms),根據這個間隔發送組播流量。 rts_threshold=2347 //可考慮注銷此項目來提高網卡性能,如果更改后變得不穩定則取消注銷。 fragm_threshold=2346 //可考慮注銷此項目來提高網卡性能,如果更改后變得不穩定則取消注銷 macaddr_acl=0 //macaddr_acl:可選,指定MAC地址過濾規則,0表示除非在禁止列表否則允許,1表示除非在允許列表否則禁止,2表示使用外部RADIUS服務器. auth_algs=3 //auth_algs指定采用哪種認證算法,采用位域(bit fields)方式來制定,其中第一位表示開放系統認證(Open System Authentication, OSA),第二位表示共享密鑰認證(Shared Key Authentication, SKA)。如果設置alth_algs的值為1,表示只采用OSA;如果為3則兩種認證方式都支持。 ieee80211n=0//如果是n網卡則參數為1,否則為0 wpa=2//老師原本值為3,改成2后手機連接AP成功,wpa:指定WPA類型,這是一個位域值(bit fields),第一位表示啟用WPA,第二位表示啟用WPA2。在我的配置中,無論設置成1、2或3,都可以正常連接. wpa_passphrase=1234567890//設置密碼,長度為8~63個字符 wpa_key_mgmt=WPA-PSK//WPA加密類型//wpa_pairwise/rsn_pairwise:如果啟用了WPA,需要指定wpa_pairwise;如果啟用了WPA2,需要指定rsn_pairwise,或者采用wpa_pairwise的設定。都可以設定成TKIP、CCMP或者兩者都有,具體含義我也沒仔細弄清楚。一篇比較老的文章說TKIP不兼容Windows Mobile. wpa_pairwise=TKIP rsn_pairwise=CCMP10. 安裝dnsmasq
ps -e | grep dnsmasq sudo killall dnsmasq sudo apt-get install dnsmasq //此時有可能ping不通域名,重啟后再試一下 sudo gedit /etc/resolv.conf //如果ping不通可手動重新配置一下NDS(當前可用的)11. 配置DHCP服務器
sudo gedit /etc/dnsmasq.conf添加:
interface=wlan0 bind-interfaces except-interface=lo dhcp-range=192.168.0.100,192.168.0.200,6h//dhcp=ranage參數為dhcp地址范圍,租借時間6h dhcp-option=3,192.168.0.1//dhcp-option=3,192.168.0.1 #為手機配置網關 dhcp-option=6,219.219.223.10 //dhcp-option=6,219.219.223.10 #為手機配置dns,這里是USTCSZ的DNS12. 設置無線接入點IP地址
sudo ifconfig wlan0 192.168.0.1 netmask 255.255.255.013. 啟動AP
sudo hostapd -B /etc/hostapd.conf14. 重啟dnsmasq,否則本機無法上網
sudo /etc/init.d/dnsmasq restart此時已經可以收到AP信號了,但無法上網
因為本機DNS被修改為了127.0.0.1,需手動修改為本地可使用DNS服務器
sudo gedit /etc/resolv.conf15. 切換到root權限
sudo -s //切換到root權限16. 修改網絡設置,打開Linux主機網絡數據轉發功能
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf echo 1 > /proc/sys/net/ipv4/ip_forward //如果該linux系統開啟了防火墻需要使用iptables開啟數據轉發功能 sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE17.此時AP熱點已經可以被手機連接成功,并能上網(PS:測試了小米2和中興U930hd可一起連接上,但是不知道是不是我的網卡問題,雖然可以上網了,但是不是很穩定,容易掉線)
三、常見問題:
nl80211: Failed to set interface wlan0 into AP mode nl80211 driver initialization failed.導致LINUX系統無法創建模擬無線AP的原因有二:
1.設備被內核托管
終于用google在:https://wiki.archlinux.org/index.php/Software_Access_Point#NetworkManager_is_interfering
帖子中找到了解決辦法:
其實后來發現只需要將netmanager網絡管理器中無線網卡設置為"設備未托管"狀態,之后hostapd就可以正常啟動。
/etc/NetworkManager/NetworkManager.conf文件中的[keyfile]字段之后添加內容為:unmanaged-devices=mac:00:23:cd:10:3e:0b的一行,其中"00:23:cd:10:3e:0b"為無線網卡MAC地址。這樣該網卡就已經不再受NetworkManager管理了,在NetworkManager管理器中無線網絡狀態將更改為“設備未托管”狀態。
sed -i '/^unmanaged-devices=mac:00:23:cd:10:3e:0b/d' /etc/NetworkManager/NetworkManager.conf命令,在文件中刪除 unmanaged-devices=mac:00:23:cd:10:3e:0b這一內容,可將無線網絡重新托管在NetworkManager管理器中。客戶端使用HOSTAPD無線AP時,網速不穩定,導致某些時刻無法打開網頁或者其它因為網絡超時導致的網絡不可訪問故障。
該問題主要是因為無線數據傳輸校驗中隨機種子數較少導致的無線網絡數據傳輸時延過大導致的,用戶可以通過命令
cat /proc/sys/kernel/random/entropy_avail //來查看具體數值,該值一般小于1000。用戶需要通過在終端中執行
yum install haveged命令安裝隨機數生成器(haveged)并使用
systemctl enable haveged.servce //命令來啟動隨機數生成器(haveged)已提高entropy_avail數值。這樣無線網絡時延將恢復到正常狀態。網絡不在出現以上描述的問題。2.無線ap不支持ap模式
這就沒辦法嘍~~
3.問題補充
啟動hostapd時,如果遇到如下錯誤
unknown configuration item 'ieee80211n'可以修改.config文件,將
#CONFIG_IEEE80211N=y前面的'#'去掉,然后重新編譯,安裝(make clean, make, make install).
配置過程遇到以下問題的解決方法:
0.我在獲取hostapd的時候會報依賴沖突,要更新一下源:sudo apt-get update
1.安裝配置無線網卡 這一步是針對在虛擬機中操作所需要的步驟,如果不是虛擬機下操作則可以跳過
2.配置hostapd的參數含義: ssid:別人所看到的我們這個無線接入點的名稱; hw_mode:指定802.11協議,包括 a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g; channel:設定無線頻道; interface:接入點設備名稱,注意不要包含ap后綴,即如果該設備稱為wlan0ap,填寫wlan0即可; bridge:指定所處網橋,對于一個同時接入公網、提供內部網和無線接入的路由器來說,設定網橋很有必要; driver:設定無線驅動,我這里是nl80211; macaddr_acl:可選,指定MAC地址過濾規則,0表示除非在禁止列表否則允許,1表示除非在允許列表否則禁止,2表示使用外部
RADIUS服務器; accept_mac_file:指定允許MAC列表文件所在;
3.安裝dnsmasq: 如果遇到不能上網的情況,可能是dnsmasq更改了你的域名服務器 打開文件:gedit /etc/resolv.conf將nameserver 127.0.0.1改為 nameserver 8.8.8.8(這是谷歌提供的一個免費DNS服務器)
4.啟動hostapd,dnsmasq: sudo hostapd -B /etc/hostapd.conf步報 failed to ...into AP mode解決方法: 打開文件: sudo gedit /etc/NetworkManager/NetworkManager.conf 在keyfile后加 [keyfile] unmanaged-devices=mac:你的網卡mac地址,這是將你插上的外置網卡設為unmanaged狀態
總結
以上是生活随笔為你收集整理的Hostapd Configuration Guide的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 混沌时间序列知识自学
- 下一篇: 华为P30pro手机电路图