网上这类文章一大堆,但都有一些问题,应该是环境不一样,所以在搭建之前,先说下我的环境:

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文件夹,configuremakemake 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