原文地址:
http://blog.csdn.net/yyplc/article/details/7301974
在UBUNTU系统或者其他类似linux系统上,使用hostapd,可以实现WIFI的无线接入热点(AP)
以便提供给其他需要无线接入联网的设备,如笔记本,手机实现无线上网功能。也即是无线路由的功能。
什么是hostapd
hostapd 是用户控件的守护进程用于无线接入点(AP)和授权服务器(authentication servers).
她实现了IEEE802.11的AP管理,IEEE802.1X/WPA/WPA2/EAP授权,RADIUS 客户端,EAP服务器和RADIUS 授权服务器,目前最新版本支持Linux系统(HOST AP,madwifi,mac80211-based驱动)和FreeBSD(net80211)。
hostapd设计为一个守护程序(进程),后台运行,进行一些相关控制授权的操作。属于一个开源项目。
相关链接:
http://linuxwireless.org/en/users/Documentation/hostapd
查看自己的无线网卡信息:
-
wsn@wsn-laptop:~$ hwinfo --netcard
-
...
-
28: PCI e00.0: 0282 WLAN controller
-
[Created at pci.318]
-
UDI: /org/freedesktop/Hal/devices/pci_14e4_4315
-
Unique ID: y9sn.reAAs+k0MA5
-
Parent ID: hoOk.F8Gordq8HH2
-
SysFS ID: /devices/pci0000:00/0000:00:1c.2/0000:0e:00.0
-
SysFS BusID: 0000:0e:00.0
-
Hardware Class: network
-
Model: "Dell Wireless 1397 WLAN Mini-Card"
-
Vendor: pci 0x14e4 "Broadcom"
-
Device: pci 0x4315 "BCM4312 802.11b/g"
-
SubVendor: pci 0x1028 "Dell"
-
SubDevice: pci 0x000c "Wireless 1397 WLAN Mini-Card"
-
Revision: 0x01
-
Driver: "b43-pci-bridge"
-
Driver Modules: "ssb"
-
Device File: wlan0
-
Features: WLAN
-
Memory Range: 0xf3000000-0xf3003fff (rw,non-prefetchable)
-
IRQ: 18 (557260 events)
-
HW Address: 00:22:5f:85:e7:a7
-
Link detected: yes
-
WLAN channels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14
-
WLAN frequencies: 2.412 2.417 2.422 2.427 2.432 2.437 2.442 2.447 2.452 2.457 2.462 2.467 2.472 2.484
-
WLAN encryption modes: WEP40 WEP104 TKIP CCMP
-
WLAN authentication modes: open sharedkey wpa-psk wpa-eap
-
Module Alias: "pci:v000014E4d00004315sv00001028sd0000000Cbc02sc80i00"
-
Driver Info #0:
-
Driver Status: ssb is active
-
Driver Activation Cmd: "modprobe ssb"
-
Config Status: cfg=new, avail=yes, need=no, active=unknown
-
Attached to: #16 (PCI bridge)
wsn@wsn-laptop:~$ hwinfo --netcard
...
28: PCI e00.0: 0282 WLAN controller
[Created at pci.318]
UDI: /org/freedesktop/Hal/devices/pci_14e4_4315
Unique ID: y9sn.reAAs+k0MA5
Parent ID: hoOk.F8Gordq8HH2
SysFS ID: /devices/pci0000:00/0000:00:1c.2/0000:0e:00.0
SysFS BusID: 0000:0e:00.0
Hardware Class: network
Model: "Dell Wireless 1397 WLAN Mini-Card"
Vendor: pci 0x14e4 "Broadcom"
Device: pci 0x4315 "BCM4312 802.11b/g"
SubVendor: pci 0x1028 "Dell"
SubDevice: pci 0x000c "Wireless 1397 WLAN Mini-Card"
Revision: 0x01
Driver: "b43-pci-bridge"
Driver Modules: "ssb"
Device File: wlan0
Features: WLAN
Memory Range: 0xf3000000-0xf3003fff (rw,non-prefetchable)
IRQ: 18 (557260 events)
HW Address: 00:22:5f:85:e7:a7
Link detected: yes
WLAN channels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14
WLAN frequencies: 2.412 2.417 2.422 2.427 2.432 2.437 2.442 2.447 2.452 2.457 2.462 2.467 2.472 2.484
WLAN encryption modes: WEP40 WEP104 TKIP CCMP
WLAN authentication modes: open sharedkey wpa-psk wpa-eap
Module Alias: "pci:v000014E4d00004315sv00001028sd0000000Cbc02sc80i00"
Driver Info #0:
Driver Status: ssb is active
Driver Activation Cmd: "modprobe ssb"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #16 (PCI bridge)
Ubuntu下,如何获取hostapd?
1. 终端输入命
-
sudo apt-get install hostapd
sudo apt-get install hostapd
2. 最新版本可以通过git命令
-
sudo apt-get install git-core
-
git clone git://w1.fi/srv/git/hostap.git
sudo apt-get install git-core
git clone git://w1.fi/srv/git/hostap.git
3. 选择自己所需版本
如何使用hostapd
将获取到的包解压,进入hostapd.
-
tar xzvf hostapd-x.y.z.tar.gz
-
cd hostapd-x.y.z/hostapd
tar xzvf hostapd-x.y.z.tar.gz
cd hostapd-x.y.z/hostapd
复制一份默认的配置文件
cp defconfig .config
编辑.config文件,找到
#CONFIG_DRIVER_NL80211=y
修改为
CONFIG——DIRVIERNL80211
最后编译:
sudo make
如果编译报错,原因多是libnl库出错,通过安装或升级libnl库即可
该库主要提供基于LINUX内核的netlink protocol相关APs函数。
这里下载获取,要求版本0.8以上
http://~tgr/libnl/
如果还出错,那么需要安装libssl-dev:
该库提供ssl开发库
-
sudo apt-get install libssl-dev
sudo apt-get install libssl-dev
编译好后,得到hostapd执行文件
如何使用hostapd?
hostapd的功能,也就是笔记本通过有线网口介入,hostapd利用笔记本的无线网卡,实现无线路由。
编辑hostapd.conf文件
可以根据自己的网卡,参照这里
-
http://linuxwireless.org/en/users/Documentation/hostap
http://linuxwireless.org/en/users/Documentation/hostap
一个简单的配置文件:
-
interface=wlan0
-
bridge=br0
-
driver=nl80211
-
ssid=ssa
-
hw_mode=g
-
channel=11
-
dtim_period=1
-
rts_threshold=2347
-
fragm_threshold=2346
-
auth_algs=3
-
wpa=1
-
wpa_passphrase=12345678
-
wpa_key_mgmt=WPA-PSK
-
wpa_pairwise=TKIP CCMP
-
rsn_pairwise=CCMP
interface=wlan0
bridge=br0
driver=nl80211
ssid=ssa
hw_mode=g
channel=11
dtim_period=1
rts_threshold=2347
fragm_threshold=2346
auth_algs=3
wpa=1
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=CCMP
搭建网桥:
-
sudo apt-get install bridge-utils
sudo apt-get install bridge-utils
建立网桥:
-
sudo brctl adbr br0
-
sudo ifconfig br0 192.168.2.236 netmask 255.255.255.0
-
sudo route add default gw 192.168.2.254
sudo brctl adbr br0
sudo ifconfig br0 192.168.2.236 netmask 255.255.255.0
sudo route add default gw 192.168.2.254
连接网桥两端:
-
sudo brctl addif br0 eth0
-
sudo brctl addif br0 wlan0
sudo brctl addif br0 eth0
sudo brctl addif br0 wlan0
最后:
-
sudo ./hostapd hostapd.conf
sudo ./hostapd hostapd.conf
如果一切顺利,将在终端看到一下类似字样:
-
root@wsn-laptop:/home/wsn/Desktop/hostapd-0.7.3/hostapd# ./hostapd hostapd.conf
-
Configuration file: hostapd.conf
-
Using interface wlan0 with hwaddr 00:22:5f:85:e7:a7 and ssid 'ubuntu-502d'
root@wsn-laptop:/home/wsn/Desktop/hostapd-0.7.3/hostapd# ./hostapd hostapd.conf
Configuration file: hostapd.conf
Using interface wlan0 with hwaddr 00:22:5f:85:e7:a7 and ssid 'ubuntu-502d'
android手机打开wifi并且设置静态ip
如ip:192.168.3.75
掩码: 255.255.255.0
网管: 192.168.3.1
即可以连接到名为ubuntu-502的无线热点了。
阅读(3257) | 评论(0) | 转发(0) |