zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

hostapd android,使用hostapd和dnsmasq实现软AP「建议收藏」

Androidap 实现 使用 建议 收藏 Hostapd dnsmasq
2023-06-13 09:11:43 时间

大家好,又见面了,我是你们的朋友全栈君。

由于要共享无线给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

(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

(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

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143642.html原文链接:https://javaforall.cn