使用hostapd和dnsmasq实现软AP

fortime posted @ 2010年12月20日 23:13 in linux with tags Android ap hostapd dnsmasq , 18510 阅读

由于要共享无线给android,虽然cm6.1可以用ad-hoc,但感觉android连ad-hoc要比连ap耗电。本来想看看有什么usb无线网卡可以在linux下用软ap,顺便用来替换掉上网本的无线网卡,我的上网本在linux下的无线驱动太差劲(可恨的rtl8187),连ad-hoc都不支持。结果在http://linuxwireless.org上发现我台式机的无线网卡的ath5k驱动很完善,可以用软ap,ath5k太可爱了。回来搞了一个晚上加一个中午,终于用hostapd,dnsmasq实现了软ap。可怜的netmanager要报废咯~

首先,系统是U10.10,安装软件:

sudo apt-get install hostapd dnsmasq

(1)为无线添加路由规则:

sudo iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -s 10.1.1.0/24 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -d 10.1.1.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -i eth0 -j ACCEPT

10.1.1.0/24是我设置的地址段,可以自己改。

若要记录下路由的情况可以加如下语句:

sudo iptables -A INPUT -m conntrack --ctstate NEW -p tcp --dport 80 -j LOG --log-prefix "NEW_HTTP_CONN: "

其中NEW_HTTP_CONN是日记中的标识。

然后把现在iptables的规则写进/etc/iptables.rules:

sudo sh -c "iptables-save > /etc/iptables.rules"

配置interface文件,使每次eth0启动时自动写规则:

auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.rules
post-down iptables-save > /etc/iptables.rulse

以上代码从https://help.ubuntu.com/community/WifiDocs/WirelessAccessPoint学来。

(2)配置hostapd.conf

interface=wlan0
bridge=br0 #貌似这个没有用
driver=nl80211
ssid=fortimefan 
hw_mode=g
channel=11 
dtim_period=1 
rts_threshold=2347 
fragm_threshold=2346 
macaddr_acl=0 
auth_algs=3
ieee80211n=0 

详细hostapd.conf配置请看http://linuxwireless.org/en/users/Documentation/hostapd

(3)配置/etc/dnsmasq.conf:

interface=wlan0
bind-interfaces #这个是只监听wlan0,没有之会检测所有卡
except-interface=lo
dhcp-range=10.1.1.10,10.1.1.110,6h #设置dhcp地址范
#address=/#/10.1.1.1 #这个会把#(代表所有网址)的dns到10.1.1.1这个地址

(4)dnsmasq与named

一般情况下bind的named会占了53端口,然后dnsmasq会启动不了,所以我用killall named来杀了named再启动dnsmasq。

附自动链接代码:

#! /bin/sh

case "$1" in
    start)
        killall named
        killall hostapd
        linux1x -k
        ifconfig wlan0 10.1.1.1
        hostapd /home/fan/.hostapd.conf &>/dev/null &
        /etc/init.d/dnsmasq restart
        linux1x -d #校园网h3c,杀了named后好像会出问题,重连一下h3c
        ;;
esac

 

Avatar_small
wbyxu 说:
2011年2月23日 09:27

这个比较好...呵呵 成功了.

Avatar_small
Mr.Klutu 说:
2011年5月18日 20:54

在ubuntu10.04下也好使,手机为htc G8

Avatar_small
huxos 说:
2011年12月07日 14:58

博主 请问 要是ubuntu 的有线网卡为静态ip分配 应该如何设置这个呢?


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

Host by is-Programmer.com | Power by Chito 1.3.3 beta
Butterfly Theme | Design: HRS Hersteller of mobile Hundeschule.