Android手机 内置无线网卡 一边连WIFI 一边开SoftAP

来源:互联网 发布:淘宝剑三稻香村 编辑:程序博客网 时间:2024/04/29 02:32

最近在玩SoftAP,心血来潮能不能在手机上一边连WIFI一边开热点,虽然网上一大堆人都说不可以。。。

但是如果有学习过 Linux 和玩过 SoftAP 的人应该都知道 Android 手机只是一台微型 Linux 机
既然Linux可以,手机很有可能可以

原理,跟在Linux上开 SoftAP 一个样

使用 iw 新增一个网络接口
然后 配置 hostapd.conf
使用 hostapd hostapd.conf 在新的网络接口启动 SoftAP
设定 新的网络接口 的 ip地址
使用 dnsmasq 配置 dhcp 服务器
使用 iptables 和 ip_forward 做好 ip转发

然后在手机设置那里进入 wifi 选项,直接连接其他热点

这样就可以 一边接 WIFI ,一边做 SoftAP 了

基本要求,仅仅是猜测,也许更高的成功率?

你的Android手机本来就能开热点

基本工具

Android 手机 (我的是 小米5)
Linux Deploy (我安装了 Ubuntu ,其他发行版也没有问题,有工具就行了)

操作流程,使用root权限执行命令

1.进入Linux Deploy,启动Linux

2.接入Linux,使用SSH还是直接用命令接入随意

3.执行以下命令确保安装了 iw hostapd dnsmasq

apt-get updateapt-get install iw hostapd dnsmasq

4.执行以下命令 查看你的 无线网络接口名字,一般是 wlan0,记得在手机里面打开你的 WIFI ,不然可能什么都没有

iw dev

5.执行以下命令新增一个名字为 wlan1 网络接口,这里假设你的接口是 wlan0

iw dev wlan0 interface add wlan1 type managed

正确执行后,使用

iw dev

应该能看到一个 新的网络接口 名字为 wlan1

6.执行

vim /etc/hostapd/hostapd.conf

开始配置hostapd
按下 i 开始在里面输入

interface=wlan1driver=nl80211ssid=AndroidAPchannel=7hw_mode=gieee80211n=1wmm_enabled=1ht_capab=[HT40+][SHORT-GI-20][SHORT-GI-40]ignore_broadcast_ssid=0auth_algs=1wpa=3wpa_passphrase=12345678apwpa_key_mgmt=WPA-PSKwpa_pairwise=CCMPrsn_pairwise=CCMP

输入完成后按 Esc键 或 ctrl+c 结束输入
然后按下 :wq 保存退出

7.使用执行以下命令启动 SoftAP

hostapd -B /etc/hostapd/hostapd.conf

没有问题的话 在别人的手机上会 显示多了一个名为 AndroidAP 的热点,密码是 12345678ap
如果直接连接的话,会一直显示 正在获取IP ,因为还没有配置 dhcp 服务器

8.使用

vim /etc/dnsmasq.conf

开始配置 dnsmasq
输入以下内容

listen-address=192.168.2.1dhcp-host=192.168.2.1dhcp-range=192.168.2.10,192.168.2.20,1hdhcp-option=3,192.168.2.1dhcp-option=option:dns-server,114.114.114.114,8.8.4.4

输入完成后按 Esc键 或 ctrl+c 结束输入
然后按下 :wq 保存退出

9.执行以下命令开启 dhcp 服务

kill $(pgrep dnsmasq)/etc/init.d/dnsmasq start

执行以下命令设置 新网络接口 的 ip地址

ifconfig wlan1 192.168.2.1 netmask 255.255.255.0

现在再用其他手机接上 名为 AndroidAP 的 WIFI ,发现已经可以正常连接了,不过还上不了网

10.执行以下命令 设置IP转发 和 开启IP转发
下面设置了 把所有从 wlan1 发来的数据转发到了 wlan0 那里

iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o wlan0 -j MASQUERADEiptables -A FORWARD -s 192.168.2.0/24 -o wlan0 -j ACCEPTiptables -A FORWARD -d 192.168.2.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -i wlan0 -j ACCEPTecho 1 >/proc/sys/net/ipv4/ip_forward

11.进入手机设置里面的 WIFI 设置那里,注意不要手贱把WIFI关了,否则之前步骤你要重来一遍
随便连上一个能上网的 WIFI热点 ,再用其他手机接上你手机开启的名字为 AndroidAP 热点
发现其他手机也可以上网了,实验成功

后记

成功是成功了
虽然原理很简单,但是写出的字却。。。
连接速度什么的当然比直接连上WIFI热点要慢点
因为是手机内置网卡,只支持单频2.4G一般都是单通道的,所以也会对发AP的手机会有一定影响
如果手机内置网卡是双通道的,例如支持双频2.4G和5G的大部分手机,影响会小很多

果然

实践是检验真理的唯一标准

没试过哪知你的手机有多大能耐

0 0
原创粉丝点击