有兴趣的朋友可以参看下面网站:
http://w1.fi/hostapd/
http://www.ibm.com/developerworks/cn/linux/l-wifiencrypthostapd/
http://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf
经个人测试,有两种方案可行:
A.桥接模式:
手头上有个路由器时,如果是校园网,接口直接接平行接口,如果是电信,长城宽带等则需要先设置路由器,主要是把服务商提供的用户名和密码设到路由器中,再将网线头接到蓝色的WAN接口上即可,接下来就是软件安装及配置了。
以CentOS6.2为例
往往开源软件的最新版本都首先会以源码包的形式发布,之后才有一些第三方或厂家来编译相对应版本的二进制包,目前的最新版本是2.0版本,详见官方网站:
wget http://hostap.epitest.fi/releases/hostapd-2.0.tar.gz
或http://w1.fi/releases/hostapd-2.0.tar.gz
首先还是安装源码包编译所依赖的库,
yum install libnl-devel
tar -zxvf hostapd-2.0.tar.gz -C /usr/local/src
cd /usr/local/src/hostapd-2.0/hostapd
cp defconfig .config
make
make install
好的,到此以经安装完成。接下来就是配置了,
桥接模式的好外是直接利用路由器的dhcp功能,当手机,笔记本等客户端连热点时直接获取路由器分配的ip,然后只要通过iptables的nat功能就可以共享了!
如何配桥接?
很多朋友可能已经注意到,一般版本默认都没有配桥接,怎么办,手动配一个,
vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
BOOTPROTO="dhcp"
#BOOTPROTO="static"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE=Bridge
DELAY=0
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="none"
NM_CONTROLLED="no"
ONBOOT="yes"
BRIDGE=br0
/etc/init.d/network restart
桥接配好后再来看hostapd的配置文件,留心的朋友可能注意到,在源码安装目录中有一个叫hostapd.conf的文件,对,这个就是原始模板,只需修改其中几项即可,但该文件注释太多,上下翻很麻烦,可以将其过滤出来,如:
grep -v ^# hostapd.conf|grep -v ^$ >test.conf
这样看就清晰多了,当然还可以进一步精简,以下是我个人的简单配置,采用的是最简单的密码加密,没有涉及到ssl等高级选项,有兴趣的朋友可以尝试尝试。
###################################################################
interface=wlan0
bridge=br0
driver=nl80211
ssid=CentOS6
hw_mode=g
channel=1
###################################################################
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=3
wpa_passphrase=11112222
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
###################################################################
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
beacon_int=100
dtim_period=2
max_num_sta=255
rts_threshold=2347
fragm_threshold=2346
wmm_enabled=1
wmm_ac_bk_cwmin=4
wmm_ac_bk_cwmax=10
wmm_ac_bk_aifs=7
wmm_ac_bk_txop_limit=0
wmm_ac_bk_acm=0
wmm_ac_be_aifs=3
wmm_ac_be_cwmin=4
wmm_ac_be_cwmax=10
wmm_ac_be_txop_limit=0
wmm_ac_be_acm=0
wmm_ac_vi_aifs=2
wmm_ac_vi_cwmin=3
wmm_ac_vi_cwmax=4
wmm_ac_vi_txop_limit=94
wmm_ac_vi_acm=0
wmm_ac_vo_aifs=2
wmm_ac_vo_cwmin=2
wmm_ac_vo_cwmax=3
wmm_ac_vo_txop_limit=47
wmm_ac_vo_acm=0
eapol_key_index_workaround=0
eap_server=0
own_ip_addr=127.0.0.1
不慌,在启动之前还要做一个nat转换:
#################################################
#!/bin/bash
#To share a wifi
#Made by liujun,2012-01-21
#################################################
#临时开启IP转发,即路由功能
echo 1 >/proc/sys/net/ipv4/ip_forward
echo "己开启路由转发功能"
echo ""
sleep 0.3
#清除防火墙规则
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
#允许网络包进入
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i br0 -j ACCEPT
iptables -A INPUT -i wlan0 -j ACCEPT
#允许网络包出去
iptables -A OUTPUT -j ACCEPT
iptables -A FORWARD -j ACCEPT
#路由功能
iptables -t nat -I POSTROUTING -o br0 -j MASQUERADE
echo "Done"
echo ""
echo "Having a good time!"
ps:要永久开启路由功能就得调整内核参数了,也挺简单,
vim /etc/sysctl.conf
找到如下这一行,将前面的#号删除即可,有的是把‘=0’改成‘=1’
net.ipv4.ip_forward=1
再执行,sysctl -p来使内核参数即时生效。
OK,准备工作做完了,接下来就是启服务了。
hostapd
这样就后台运行了,敢紧拿上小i连上去冲浪吧!
#########################################################
B.直接模式。
上面是借助了路由器的dhcp功能,这里所谓的直接,就不需要配桥接等。而是要安装isc-dhcp-server来为客户端分配ip,
yum install
vim /etc/dhcp/dhcpd.conf
subnet 192.168.0.0 netmask 255.255.255.0 {
修改dhcp服务器的配置文件,这里也是做最简单的功能,因为不是专谈dhcp服务器。找到相应的位置随便选个ip段配上,我这里就用192.168.0.0/24这个常用网段来做。
注意:
vim /etc/sysconfig/dhcpd
# Defaults for dhcp initscript
# sourced by /etc/init.d/dhcp
# installed at /etc/default/isc-dhcp-server by the maintainer
scripts
#
# This is a POSIX shell fragment
#
# On what interfaces should the DHCP server (dhcpd) serve DHCP
requests?
#
DHCPDARGS="wlan0"
因为是电脑的无线网卡来为客户端分配ip,所以这里填上服务器监听接口。
还可以修改/etc/sysconfig/network-scripts/ifcfg-wlan0这个文件,如何修改,只需将wlan0也桥接到br0即可。加上BRIDGE=br0
启服务,直接以管理员身份执行
/etc/init.d/dhcpd start
之后的nat以及hostapd软件的安装都同上。