Ubuntu共享WiFi(AP)给Android方法(手工配置)

Android不支持Ad-hoc模式的WiFi。Windows 7软AP一个还是比较简单的。

本文介绍在Ubuntu下实现软AP.(需要你的无线网卡支持AP哈)
 
使用工具hostapd,dnsmasq.我的环境是Ubuntu11.10或ubuntu12.04;手机Android 2.3.5;网卡ath5k.有线网络使用静态的IP.
 
1、首先,系统是Ubuntu 11.10或者Ubuntu 12.04,安装软件:
 
sudo apt-get install hostapd dnsmasq

2、配置网络端口:  sudo gedit  /etc/network/interfaces文件,内容如下:

auto eth0

iface eth0 inet static

address 172.16.54.182    # ip地址,自己修改

netmask 255.255.255.0    #  子网掩码,自己修改

gateway 172.16.54.1        #   网关,自己修改

auto lo

iface lo inet loopback

3、配置hostapd:  sudo gedit /etc/hostapd.conf   内容如下
 
interface=wlan0
driver=nl80211
ssid=wbyxu                   # ssid 可以改成你喜欢的名字
hw_mode=g
channel=11
dtim_period=1
rts_threshold=2347
fragm_threshold=2346
macaddr_acl=0
auth_algs=3
ieee80211n=0
wpa=3
wpa_passphrase=12345678     #自行设置密码,最好密码后要留空格
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
 
 
4、配置dns:  sudo gedit /etc/dnsmasq.conf    内容如下
 
interface=wlan0
bind-interfaces #这个是只监听wlan0,没有之会检测所有卡
except-interface=lo
dhcp-range=10.0.0.10,10.0.0.110,6h     #设置dhcp地址范围,即租借时间6小时
#address=/#/10.0.0.1 #这个会把#(代表所有网址)的dns到10.1.1.1这个地址
dhcp-option=3,10.0.0.1 #为手机配置网关 (此处参考)
dhcp-option=6,202.114.128.2#为手机配置dns,请自己修改为外网的dns地址(此处参考)
 
5、编辑启动脚本: sudo gedit /usr/bin/myap   内容如下:

#! /bin/sh

# 为无线添加路由规则

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

iptables -A FORWARD -s 10.0.0.0/8 -o eth0 -j ACCEPT

iptables -A FORWARD -d 10.0.0.0/8 -m conntrack --ctstate ESTABLISHED,RELATED -i eth0 -j ACCEPT

#dnsmasq与named一般情况下bind的named会占了53端口,

#  然后dnsmasq会启动不了,所以我用killall named来杀了named再启动dnsmasq。

killall named

killall hostapd

ifconfig wlan0 10.0.0.1

#“-B”后台运行,之后的hostapd.conf需要指名路径.

hostapd -B /etc/hostapd.conf

/etc/init.d/dnsmasq restart

# dnsmasq启动后会出现电脑突然上不了网,

# 因为dnsmasq更改了/etc/resolv.conf的原因。可以在/etc/resolv.conf加一行

# nameserver x.x.x.x

#填入DNS服务器地址,根据自己的情况修改

echo "nameserver 202.114.128.2" >> /etc/resolv.conf

6、修改/usr/bin/myap权限:

sudo  chmod a+x /usr/bin/myap

7、最后还要注意确保系统打开转发功能

sudo su

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

echo 1 >/proc/sys/net/ipv4/ip_forward

exit

8. 想共享wifi时,请保证电脑能上网,然后运行

sudo myap

至此,电脑上的设置完成,最好重启一下.
 
手机上设置WiFi不使用静态IP就可以了.

——————————————————————————————————————————

简单易懂的Ubuntu生存战略:开启无线网卡的wifi热点,ap模式

在ubuntu下如何把无线网卡设置成可供wifi设备上网的接入点

因为某些移动设备对wifi热点的要求有些苛刻,p2p模式的无线连接方式虽然易设置,但是实用性不高.

相对而言,创建一个虚拟无线路由器成了分享网络的最佳方式.

win7下为手持设备创建一个wifi热点只需要两行命令;GUI程序有connectify,不存在什么问题.

在linux下则情况有点复杂(对不懂底层网络设置的人而言):网上流传的千篇一律的教程多有讹误,普适性也存在问题.

在这里我介绍一个具有GUI的wifi热点设置程序,相当于win7下的connectify,并且在功能上不亚于收费版的connectify.

这个程序叫wifi-hostapd-ap,作者是一个俄罗斯人.

程序的下载地址是:http://code.google.com/p/wifi-hostapd-ap/downloads/list,我下的是WiFi_Hostapd_AP-0.9.4.10_10.03.12.tar.gz.

下载后解压:

tar xzf WiFi_Hostapd_AP-0.9.4.10_10.03.12.tar.gz

在使用前安装一些依赖程序:

sudo apt-get install wireless-tools bridge-utils hostapd dnsmasq libqtgui4

编辑一处配置:

sudo gedit /etc/init.d/hostapd

找到第19行,更改如下:

DAEMON_CONF=/etc/hostapd/hostapd.conf

保存并退出.

下面就可以运行那个GUI程序了:

转到解压后的目录,并且使用root运行:

cd WiFi_Hostapd_AP-0.9.4.10_10.03.12

sudo ./WiFi_Hostapd_AP

运行界面如下:

界面非常朴素,不过实用就行了.

选择Options下的第二个菜单项来设置:

第一个设置页不用更改,值得关注的是第二项:语言,有英文与俄文,一般情况下选英文.

语言文件在程序的目录下,*.ts与*.qm,移动的程序时需要与程序一起移动.

第二页注意一下,

AP IP,AP Mask:ip地址不用更改,

WiFi device for AP:选择开启热点的无线网卡,一般是wlan0

SSID:无线网络的名称,自行设置

Driver for device:网卡驱动器的型号,必须选nl80211

Protection:密码格式,可以选择None(不设密码),WEP,WPA3

Password(8-16字符):密码

第三页

IP Range For Clients:分配给客户的IP范围,注意与ap的IP地址(在第二页设置)要在同一个段内

The interface to access the internet:通过哪个接口上网.如果电脑是连在路由上直接上网的选eth0,通过DSL上网的选ppp0.设置前最好用先弄清楚.

* 每一页设置好后都 [Save]保存.

然后回到主程序,点 [Activate]开启wifi.不出意外就如下所示,表示成功开启.

开启成功后把这个程序关掉也没问题,毕竟这只是一个壳.


问题与排除:

无法激活,或出现错误,或激活完成但是没有绿色的Active字样.

1:没有编辑/etc/init.d/hostapd文件,请按前面的方法修改该文件

2:设置选项的第二页没有设置正确,或驱动选择不正确,或网卡没有选对,或者是其他地方出错

3:密码设置不正确.尝试取消密码

sudo hostapd -d 可以显示错误信息.

激活成功,但是移动设备无法上网:

1:ap的id与客户分配的ip不在同一程序段内

2:选择了错误的访问英特网的适配器(第三页)

————————————————————————————————

1. connectify

计算机:acer4739Z——ubuntu12.04-LTS
手机:T619——Android-2.3.5

现在不少朋友都在使用Android手机,链接wifi来上网确实很方便。但是当没有无线路由的时候,就不得不想另外一个办法了。比较流行和实用的就是,利用笔记本电脑共享AP(wifi)给Android手机。使用过WIN7的朋友都知道,WIN7系统中利用几条命令就可以创建AP,或者更为方便的是利用Connectify这样的软件,可以轻轻松松就创建好AP。但是使用ubuntu的朋友,就没这么幸运了。为了共享AP,不得不折腾一番。下面,我们就一起来分析一下,在ubuntu下有哪些方法可以共享AP。

方法一:利用系统自带的功能创建AP

首先,最简单的莫过于使用系统自带的功能去创建AP了,不需要下载任何软件,而且是在UI界面下进行操作,非常的简单。但是首先要说明的是,按照这样的方法创建AP,大部分手机都不能扫描到PC所发射出来的wifi信号。我用华为的一款手机(具体型号忘了)可以成功的检测到这种wiifi信号,但是使用三星,天语(T619)的手机都检测不到这种wifi信号。还有朋友说,他的是小米的手机,可以检测到这种wifi信号。不知你的手机是否可以检测到呢?下面我们就先试一下吧。

1,在系统的有上角,有个链接管理的图标,点击见下拉菜单。

2,在上述菜单中,点击“启动无线”了启动无线功然后点击“编辑连接...",在弹出的“网络连接”窗体中,选择“无线”,如下所示:

3,点击“添加(A)”按键来创建一个网络。选中“无线”这个选项,然后“连接名称”和SSID中都填写“MyWifi”,其他选项都按照图中的设置去选择,如下图所示:

4,点击“无线安全性”,填写认证的密码。如下图所示。

5,点击“IPv4设置”,设置如下(如果默认就是如此,就不用改了):

6,点击“IPv6设置”,“方法”选择“忽略”,其他不用管。完了后点击“保存”:

7,回到桌面,再次点击网络链接的图标,选择“链接到隐藏的无线连接(C)...”,在“连接(N)”选项里,选择刚才所创建的wifi——“MyWifi”,然后点击”连接(O)“。

8,到此,一个AP就创建成功了。拿你的手机出来,打开wifi,看能不能扫描到刚才所创建的wifi信号?如果可以的话,恭喜你,不用往下看了;如果不行,那也别着急下面还有更好的方法。

方法二,ubuntu版的”Connectify“

在Windows中有”Connetify”,ubuntu中有什么呢?不错,那就是“wifi-hostapd-ap”,是一位俄罗斯的朋友写的。可到http://code.google.com/p/wifi-hostapd-ap/downloads/list进行下载。网站的截图如下:

从截图可见,共有4种版本的供你选择。首先是源码,喜欢自己编译的或者研究里面是怎么实现的朋友可以下载这个。其次是可执行文件,下载解压就行了。最后一个是.deb格式的安装包,使用dpkg命令即可安装。

在安装的过程中,可能会出现一些问题,主要是这个软件依赖很多的库。那么,这个软件依赖于哪些库或者要使用的工具有那些呢?简单列举一下:wireless——tools,bridge—utils,hostapd,dnsmasq,libqtgui4,gambas3-runtime...具体的你可以根据安装过程中的提示去下载。我在安装的过程中就因为缺少适合版本的gambas3-runtime,从而导致安装失败。因此也没有能够进行下一步的测试。所以,下面

将引用另外一位朋友的对这个软件的介绍《ubuntuAP》。希望你可以安装成功。
    如果你安装成功了,那恭喜你;如果很不幸,你也和我一样,找不到适合版本的gambas-runtime3,怎么办呢?
    针对在这一块的缺失,本人写了一款针对ubuntu-12.04-LTS的“Connectify”,现在正处于测试阶段。在推出这一款软件之前,先向大家介绍一些其他的方法,以便缓解“燃眉之急”。请继续往下看。

方法三:hostapd+dnsmasq

利用方法一所创建出来的wifi,为什么大多数Android手机都搜索不到它的信号呢?那是因为Android一般都是不支持Ad-hoc模式的WiFi的。为了在ubuntu中创建一个Android手机能够识别的AP,下面将向大家介绍另外一种方法。

1,要安装两个软件。hostapd和dnsmasq。执行sudo apt-getinstall hostapd dnsmasq 即可安装。至于这两个软件的详细说明,我另外有文章进行详细的描述,有兴趣的可以看我的《Hostapd》。这里就不深入介绍,仅仅达到成功建立AP的目的即可。

2,关于网路端口的配置。网上有文章说,要将有线网卡配置为静态ip。但是本人经过测试,其实不用将有线网卡配置为静态ip也行。由于本人使用的是校园网,链接网络要利用锐捷认证,所获得的ip是变化的,如果使用静态ip,则很难认证成功,或者认证成功之后上网很慢(这里涉及到DNS的配置,不详细介绍)或者打不开一些网页。总之,使用静态IP带了很大的不便。不过如果你喜欢,可以按照下面的方法去设置静态IP。

打开/etc/network/interfaces文件,添加以下内容:
autoeth0
ifaceeth0 inet static
address 172.16.40.1  #ip地址,自己修改
netmask 255.255.255.0  #子网掩码,自己修改
gateway 172.16.40.1   # 网关,自己修改
配置好后,如下图所示意:

3,配置hostapd。打开/etc/hostapd.conf,里面有很多的可配置选项,其中大部分都已经用#来注释了。为了使得一些配置有效。我们要将一些配置前的#去掉,然后根据我们的需要去进行参数设置。要配置的选项和参数如下所示。每个选项的具体意思,有另外的博客专门说明,限于篇幅这里不做详细的介绍。

interface=wlan0
driver=nl80211
ssid=LiyihaiWifi #ssid可以改成你喜欢的名字,你的手机将会搜索到这个名字的wifi
hw_mode=g
channel=11
dtim_period=1
rts_threshold=2347
fragm_threshold=2346
macaddr_acl=0
auth_algs=3
ieee80211n=0
#以下是加密方法的设置,当然你可以选择不要密码(不用设置以下内容),这样的话就只要能够扫描到你的wifi信号的都可以连接。
wpa=3
wpa_passphrase=12345678 #自行设置密码,有文章说设置好后要留空格,但是经本人测试,不留空格也是可以的。
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

4,配置dnsmasq。打开/etc/dnsmasq.conf。如果没有这个文件,可以自己创建一个,添加以下内容:
interface=wlan0
bind-interfaces#这个是只监听wlan0,没有之会检测所有卡
except-interface=lo
dhcp-range=192.168.1.100,192.168.1.254,12h#设置dhcp地址范围,即租借时间6小时
#address=/#/10.0.0.1#如果你的配置中有这个,请注释掉,应为这个会把#(代表所有网址)的dns到10.1.1.1这个地址
dhcp-option=3,192.168.1.1#为手机配置网关,要和dhcp-arange对应,这涉及网络的知识,不详细介绍。
dhcp-option=6,202.114.128.2#为手机配置dns,你可以根据实际情况去修改

5,AP是需要路由规则的,为了添加路由规则,可以使用iptalbes命令。你可以用命令行的方式去添加路由规则,但是这里推荐使用

脚本的方式。

创建一个文件myap,里面添加如下内容:
#!/bin/sh
#为无线添加路由规则
iptables-F
iptables-X
iptables -t nat -F
iptables -t nat-X
iptables -t nat -APOSTROUTING -s 192.168.1.0/24 -o eth0 -jMASQUERADE
iptables -A FORWARD-s 192.168.1.0/24 -o eth0 -jACCEPT
iptables -A FORWARD -d 192.168.1.0/24-m conntrack --ctstateESTABLISHED,RELATED -i eth0 -jACCEPT

添加完后如图所示:

添加完后,保存文件。为了使得文件具有可执行的属性,我们可以利用一下的命令去修改(注:你传创建的myap应该在当前目录下,否则要添加路径):sudo chmod a+x  myap 
    说明:由于在上面我们将dhcp-range设置为192.168.1.100,192.168.1.254,也就是指定了wifi动态分配的地址范围为192.168.1.100至192.168.1.254,所以这里要配置路由规则的时候使用192.168.1.0。如果上面你的dhcp-range不是192.168.1.100,192.168.1.254,那么你的路由规则也要修改。

6,为了确保打开了转发的功能,还要修改一个文件/etc/sysctl.conf。打开文件/etc/sysctl.conf,找到net.ipv4.ip_forward=1,如果被注释了,要将其前面的注释去掉,以便使其生效。如图所示:

7,现在以启动AP啦。流程如下。(#号后面的是说明)
killallnamed  #一般情况下bind的named会占了53端口,从而导致dnsmasq启动不了,所以要用killallnamed来杀了named再启动dnsmasq。
killallhostapd
ifconfig wlan0 192.168.1.1 #由于上面我们将dhcp-range设置为192.168.1.100,192.168.1.254,所以这里我们要将wlan0的ip设置为同一网段的ip。
hostapd-B/etc/hostapd.conf
/etc/init.d/dnsmasq restart #使用静态ip的朋友注意了,dnsmasq启动后会出现电脑突然上不了网,因为dnsmasq更了/etc/resolv.conf的原因。可以在/etc/resolv.conf加一行,执行命令echo"nameserver202.114.128.2">>/etc/resolv.conf即可。202.114.128.2是dns服务器,你可以根据你的当地的实际情况去修改。

echo1>/proc/sys/net/ipv4/ip_forward #启动转发功能。
sudo./myap#如果你的myap不在当前路径下,要加路径。

至此,AP创建已经完成。打开手机扫描一下wifi,是不是可以上网了了?如果还不可以,建议重启一下电脑,再操作一次第7步。注意:手机不要设置为静态ip了。

备注:在测试的过你可以会遇到:“SIOCSIFFLAGS: Operation not possible due to RF-kill”这样的错误。这时不要害怕,有个很简单的解决方法,请看我的博客《SIOCSIFFLAGS: Operation not possible due to RF-kill》。

最后的总结

除此之外,ubuntu下还有其他的方法去创建AP,但是限于篇幅,这里就不再添加更过的方法了。在上面的3种方法中,第一种最简单,但是适用性很差。第二种方法很方便,很是暂时还不大可行。第三种方法最复杂,但是适用性最好。至于选择那一种,看你喜欢啦。

参考文档

《Ubuntu_Ubuntu12.04下设置笔记本成为wifi热点》

http://blog.csdn.net/jiguanghoverli/article/details/8110283

《Ubuntu共享WiFi(AP)给Android方法》

http://xgwdy06.blog.163.com/blog/static/190718352201223093522365/
《Ubuntu共享WiFi(AP)给Android方法【修正版】》

http://hi.baidu.com/gbthereisaway/item/9073a2e4ab2d8a374ddcafad
《UbuntuAP》

http://hi.baidu.com/lexiangtaotao/item/5d4e87f22db132c70cd1c86f

Ubuntu共享WiFi(AP)给Android方法汇总相关推荐

  1. Ubuntu共享WiFi(AP)给Android方法

    更新: 2012-03-03  Android是不支持Ad-hoc模式的WiFi.Windows 7软AP一个还是比较简单的.本文介绍在Ubuntu下实现软AP.(需要你的无线网卡支持AP哈)  使用 ...

  2. Wi-Fi模块的设置方法汇总

    方法一:网页设置 步骤: 连接模块热点(仅模块做AP情况下)à登录模块内置网页à设置参数à保存参数à重启 连接热点: (该步骤仅AP模式下使用) 登录网页: 设置参数: 设置的参数重启后生效. 方法二 ...

  3. Ubuntu查看系统版本信息的方法汇总

    cat /proc/version 推荐使用此方法获取Linux版本信息 查看显示内存中kernel相关的版本.编译等信息 Ubuntu和CentOS通用,可以显示内核版本同时显示发行版本 sun@u ...

  4. ubuntu pci wifi bcm4322 无法使用 解决方法

    sudo apt-get update sudo apt-get --reinstall install bcmwl-kernel-source sudo modprobe -r b43 ssb wl ...

  5. android wifi热点的连接不上,开启热点后160wifi连不上手机的解决方法汇总

    使用160WiFi最常出现的问题就是160wifi连不上手机,很多朋友在成功开启热点之后,手机却无法连接wifi网络.今天,绿茶小编就为大家介绍一下解决方法. 方法一.使用160WiFi成功开启热点后 ...

  6. android wifi ap 定位,通过 RTT 确定 Wi-Fi 位置信息

    您可以利用 Wi-Fi RTT(往返时间)API 提供的 Wi-Fi 位置功能测量距附近支持 RTT 的 Wi-Fi 接入点和 Wi-Fi 感知对等设备的距离. 如果您测量与三个或更多接入点的距离,可 ...

  7. 华硕顽石电脑共享名和计算机名称,华硕笔记本共享WIFI给手机上网功能的方法(图文教程)...

    华硕笔记本共享WIFI给手机上网功能的方法(图文教程) 发布时间:2012-06-01 10:34:47   作者:佚名   我要评论 笔记本把可以当成无线AP.共享网络WIFI给手机上网用 如此时刻 ...

  8. ubuntu创建wifi热点(android可识别)亲测可用

    转自http://jingyan.baidu.com/article/ea24bc39b03fc6da62b331f0.html 如何在ubuntu系统下创建android可识别热点?一般环境下创建的 ...

  9. 查看连接过的WIFI密码方法汇总

    本文是对忘记WIFI密码的情况如何查看提供解决方案:电脑和安卓手机上连接过的WIFI密码: 电脑上查看连接过的WIFI密码: 方法1:通过"命令提示符"CMD查看(快捷键:Wind ...

最新文章

  1. 阿里YunOS总裁张春晖:云芯片将成为IOT的基础
  2. 剑指offer java 博客_Java--剑指offer(10)
  3. 搭建基础架构-ResultMsg
  4. 如何分析SAP CRM UI label显示成technical name的问题
  5. LeetCode 406. 根据身高重建队列(排序)
  6. 如何在 Gitee 上使用 GPG
  7. DataBase 之 数据库设计六大范式
  8. 【python学习-2】python起步必备
  9. matlab图像的邻域操作,matlab图像的邻域操作与块操作 | 学步园
  10. 漂亮的英文字体 android,资深字体设计师私藏的10大APP,只怪你知道的太晚 !
  11. 迅雷的FLV文件迷你播放器
  12. 国内源代码安全漏洞检测工具现状浅析
  13. 计算机科学家的名言警句,【实用】励志的格言70句
  14. 如何在小视频源码里实现边下边播
  15. Windows系统自带工具介绍
  16. xshell不能通过账户密码连接虚拟机
  17. 华为y220t android版本升级,华为y220t如何刷机 华为y220t刷机教程【图文详解】
  18. 数据可视化,值得关注的30个技巧(建议收藏)
  19. 一建加试英语和计算机,一建和一造哪个考试难度大
  20. 实用新型专利挖掘的四个技巧。

热门文章

  1. CAD绘制直线时第二个点输入绝对坐标和相对坐标(相对第一个点的坐标)切换
  2. 部落战争:Docker Swarm向左,Kubernetes向右
  3. Kugoo用户积分体系
  4. 骁龙660是32位还是64位_高通骁龙632和660哪个好 骁龙660和632区别对比 (全文)
  5. CANoe总线开发测试工具学习帖(20190329-201904)
  6. 32-【什么叫规矩 什么叫体统】queue容器
  7. oracle12.2 psu,Oracle 12.2.0.1 Opatch 打补丁 datapatch Could not open logfile 错误解决方法
  8. 基于OpenCV的路面质量检测
  9. 程序员の诗 - 启蒙
  10. 在线加载谷歌地图—lyrs类型解析