admin 管理员组文章数量: 887019
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/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/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/jiguanghoverli/article/details/8110283
《Ubuntu共享WiFi(AP)给Android方法》
http://xgwdy06.blog.163/blog/static/190718352201223093522365/
《Ubuntu共享WiFi(AP)给Android方法【修正版】》
http://hi.baidu/gbthereisaway/item/9073a2e4ab2d8a374ddcafad
《UbuntuAP》
http://hi.baidu/lexiangtaotao/item/5d4e87f22db132c70cd1c86f
本文标签: 方法 WiFi Ubuntu Android AP
版权声明:本文标题:Ubuntu共享WiFi(AP)给Android方法汇总 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1729140927h1322918.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论