利用Hostapd搭建无线wifi
网上这类文章一大堆,但都有一些问题,应该是环境不一样,所以在搭建之前,先说下我的环境:
1.Linux系统:ubuntu 10.04
2.无线网卡:TP-LINK WN822N
(需要网卡支持Master模式,其他网卡请自行搜索)
ok, 下面介绍如何搭建:
step1:安装网卡驱动,网卡都不识别的话就gg了,请参见我的博文《TL-WN822N TL-WN722N linux安装驱动》,识别之后
ifconfig wlan1 10.0.0.1
为网卡设置ip地址。
step2:下载hostapd,在解压安装之前,先安装libnl和libssl,否则hostapd无法编译通过,命令如下:
sudo apt-get install libnl-dev
sudo apt-get install libssl-dev
step3:安装hostapd,解压压缩包,终端进入到hostapd文件夹,configure
,make
,make install
常见的三个步骤
step4:修改配置文件,在hostapd文件夹里的etc目录下,找到hostapd.conf
文件,编辑如下
interface=wlan1 // 根据你的无线网卡名修改
driver=nl80211 //重要
ssid=tinyfisher //这是AP名称
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
启动hostapd,命令:
./hostapd -B hostapd.conf
之后就可以搜索到 tinyfisher的wifi了。
但是此时设备还不能通过wifi上网,还需要搭建dhcp服务器:
sudo apt-get install dnsmasq
修改/etc/dnsmasq.conf
interface=wlan1 #根据你的网卡名称修改
dhcp-range=10.0.0.10,10.0.0.110,6h #设置dhcp地址范围,即租借时间6小时
dhcp-option=3,10.0.0.1 #配置网关
dhcp-option=6,202.114.128.2 #配置dns,请自己修改为外网的dns地址
重启
dnsmasq:/etc/init.d/dnsmasq restart
ok,此时连接到wifi上的设备都能被随机分配到从10.0.0.10~10.0.0.110
的地址
现在就能上网了吗?不行,我们还需要一个外网出口,并且将内网的流量通过这个外网接口连出去,其实就是做一个SNAT
,所以我们还需要设置iptables
,命令如下:
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE //其中eth0就是外网接口,请根据你的实际情况修改
最后一步,开启网卡转发功能:
echo 1 >/proc/sys/net/ipv4/ip_forward
搞定收工!
blog comments powered by Disqus
发布日期
2013-06-23