轉載自:http://ihacklog.com/post/use-hostapd-to-setup-wireless-access-point-under-linux.html,向作者表示感謝!
其實linux下面也是可以的,不過得看運氣了。正如windows7下面要求你的無線網卡驅動必須支持“承載網“一樣。
首先,查看網卡芯片信息:
對於pci網卡:
1
|
lspci
|
我的是:
1
|
03:00.0 Network controller: Intel Corporation PRO/Wireless 5100 AGN [Shiloh] Network Connection
|
對於USB網卡:
1
|
lsusb
|
然後用ifconfig -a 看下你有哪幾塊網卡。
ethtool這個工具可用來查看網卡的詳細信息:
1
2 3 4 5 6 7 8 9 |
[admin@huangye ~]$ ethtool
-i wlan0
driver: iwlagn version: 3.0-ARCH firmware-version: 8.83.5.1 build 33692 bus-info: 0000:03:00.0 supports-statistics: no supports-test: no supports-eeprom-access: no supports-register-dump: no |
可以看到我的網卡目前用的驅動是iwlagn,此驅動是由intel開發的。
debian wiki 有關於此驅動的描述:http://wiki.debian.org/iwlagn
下面一步纔是關鍵:
這一步用於確定你的無線網卡是否支持”master mode”,也就是AP模式,如果不支持的話,下面的你不用看了,基本沒戲了。。。
我們先用這個來測試:
1
2 3 4 |
[admin@huangye ~]$
sudo iwconfig wlan0 mode master
Password: Error for wireless request "Set Mode" (8B06) : SET failed on device wlan0 ; Invalid argument. |
可以看到這裏操作失敗了。
還有機會。。。有些新的網卡用的是mac80211 framework,對於這些網卡的話,用iwconfig來測試它是否支持master模式是行不通的。
因爲他們是使用新的 nl80211接口在用戶空間通信的.
如果你沒有iw這個新的無線網卡配置工具的話,你得先安裝一個。
運行
1
|
$
iw list
|
如果”Supported interface modes”中有AP的話,那麼恭喜,你的網卡支持用hostapd來架設軟AP.
1
2 3 4 |
Supported interface modes:
* IBSS * managed * monitor |
可以看到我的杯具了,不支持。。。
還不死心的話,這裏有一個列表,列出各種網卡的信息,可以看到 iwlagn的驅動不支持master模式的。。。杯具啊
Comparison of open-source wireless drivers
Intel 無線網卡驅動官方網站:http://intellinuxwireless.org/
Driver capabilities
Also see linuxwireless.org
我的網卡是沒戲了,下面的部分給需要的人看吧。。。
看了roylez的文章,他推薦一款支持master模式的網卡Mercury MW150u(MERCURY MW150U 150M無線USB網卡).
看看吧,可能我得買一塊這個來嘍。。。
下面是roylez對此網卡的描述,個人認爲很有必要把它摘抄下來供各位參考:
這款網卡採用AR9271芯片,Linux下用ath9k_htc驅動(內核自帶)。支持AP模式,支持monitor模式。有monitor模式,就可以和aircrack-ng搭配了破解無線網路密碼,有AP模式,就可以用來自架AP。ath9k_htc驅動目前不支持150M模式,不過這已經很次要了。卓越27包郵,殺人放火居家旅行必備。另外值得一提的是, 這款網卡還有個馬甲是Fast FW150u。
如果你用的是Atheros系列的網卡的話,得裝Madwifi.
以ubuntu系統爲例:
wget http://downloads.sourceforge.net/madwifi/madwifi-0.9.4.tar.gz
tar -xvzf madwifi-0.9.4.tar.gz
cd madwifi-0.9.4
sudo apt-get install build-essential linux-headers-server
sudo make
sudo make install
sudo vim /etc/modprobe.d/madwifi
然後添加下面這行讓你的網卡工作在master模式:
1
|
options ath_pci
autocreate=ap
|
熱加載此module :
1
|
sudo modprobe ath_pci
|
基於mac80211的驅動:
其它幾個這裏不說了,自己去WifiDocsMasterMode 看。
Intel PRO/Wireless (ipwXXXX) series
For ipw2100/ipw2200, unfortunately there is no way to use them as AP, but this can be done for ipw3945 and ipw4965, maybe ipw2915 too, which are pretty good cards anyway, using fully open-source iwlwifi drivers, but it can’t be done with old Intel drivers with closed microcode.
下面是安裝hostapd了,以archlinux爲例:
1
|
sudo pacman
-S --needed hostapd
|
然後就是配置了,我偷懶直接用roylez的:
安裝hostapd,修改/etc/hostapd/hostapd.conf。這是一個WPA-PSK的配置,用hostapd -d /etc/hostapd/hostapd.conf來測試配置是否可用。
1
2 3 4 5 6 7 8 9 10 11 12 |
interface=wlan1
driver=nl80211 ssid=vlad_is_here channel=6 hw_mode=g ignore_broadcast_ssid=0 auth_algs=1 wpa=3 wpa_passphrase=xxxxxxxx wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP |
爲無線網卡指定IP
1
|
sudo
ifconfig wlan0 192.168.100.1 netmask 255.255.255.0
|
啓動hostapd服務
1
|
sudo
/etc/rc.d/hostapd start
|
安裝配置dhcp,這裏,如果你裝了pdnspd 或者 dnsmasq 的話就不用再安裝dhcp了。
iptalbes設置nat
1
|
sudo iptables
-t nat -A POSTROUTING
-o eth0 -j MASQUERADE
|
啓用內核轉發功能:
1
2 |
sudo
vim
/etc/sysctl.conf
net.ipv4.ip_forward=1 |
要想即時生效的話,直接用下面這句吧(以root身份執行):
1
|
echo
1
>/proc/sys/net/ipv4/ip_forward
|
hostapd docs: http://hostap.epitest.fi/hostapd/