Ubuntu共享WiFi(AP)给Android方法【修正版】
Android不支持Ad-hoc模式的WiFi。Windows7软AP一个还是比较简单的。
本文介绍在Ubuntu下实现软AP.(需要你的无线网卡支持AP哈)
使用工具hostapd,dnsmasq.我的环境是Ubuntu11.10或ubuntu12.04;手机Android2.3.5;网卡ath5k.有线网络使用静态的IP.
1、首先,系统是Ubuntu11.10或者Ubuntu12.04,安装软件:
sudoapt-getinstallhostapddnsmasq
2、配置网络端口:sudogedit/etc/network/interfaces文件,内容如下:
autoeth0
ifaceeth0inetstatic
address172.16.54.182#ip地址,自己修改
netmask255.255.255.0#子网掩码,自己修改
gateway172.16.54.1#网关,自己修改
autolo
ifaceloinetloopback
3、配置hostapd:sudogedit/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:sudogedit/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、编辑启动脚本:sudogedit/usr/bin/myap内容如下:
#!/bin/sh
#为无线添加路由规则
iptables-F
iptables-X
iptables-tnat-F
iptables-tnat-X
iptables-tnat-APOSTROUTING-s10.0.0.0/8-oeth0-jMASQUERADE
iptables-AFORWARD-s10.0.0.0/8-oeth0-jACCEPT
iptables-AFORWARD-d10.0.0.0/8-mconntrack--ctstateESTABLISHED,RELATED-ieth0-jACCEPT
#dnsmasq与named一般情况下bind的named会占了53端口,
#然后dnsmasq会启动不了,所以我用killallnamed来杀了named再启动dnsmasq。
killallnamed
killallhostapd
ifconfigwlan010.0.0.1
#“-B”后台运行,之后的hostapd.conf需要指名路径.
hostapd-B/etc/hostapd.conf
/etc/init.d/dnsmasqrestart
#dnsmasq启动后会出现电脑突然上不了网,
#因为dnsmasq更改了/etc/resolv.conf的原因。可以在/etc/resolv.conf加一行
#nameserverx.x.x.x
#填入DNS服务器地址,根据自己的情况修改。
echo"nameserver202.114.128.2">>/etc/resolv.conf
6、修改/usr/bin/myap权限:
sudochmoda+x/usr/bin/myap
7、最后还要注意确保系统打开转发功能
sudosu
echo"net.ipv4.ip_forward=1">>/etc/sysctl.conf
echo1>/proc/sys/net/ipv4/ip_forward
exit
8.想共享wifi时,请保证电脑能上网,然后运行
sudomyap
至此,电脑上的设置完成,最好重启一下.
手机上设置WiFi不使用静态IP就可以了.
本来打算在ubuntu系统上建立一个热点,然后共享网络给自己的Android手机,发现Android不支持Ad-hoc模式的WiFi。
于是查资料,发现可以使用AP模式共享,开始高兴坏了,但是再次悲剧了,自己的网卡是IntelWiFi Link 5100,该网卡LINUX下不支持AP模式(windows是否支持没研究)。
所以有类似想法的朋友,建议先查看一下自己的无线网卡是否支持AP模式,方法如下:(如果有哪位朋友还有别的方法在ubuntu下使用wifi共享给安卓手机,麻烦传授一下方法,谢谢~~)
【下面方法是参考该博主的博客:http://ihacklog.com/linux/archlinux/use-hostapd-to-setup-wireless-access-point-under-linux.html,对其表示感谢】
首先,查看网卡芯片信息:
对于pci网卡:
1 | lspci |
我的是:
1 | 03:00.0 Network controller: Intel Corporation PRO/Wireless 5100 AGN [Shiloh] Network Connection |
对于USB网卡:
1 | lsusb |
然后用ifconfig -a 看下你有哪几块网卡。
ethtool这个工具可用来查看网卡的详细信息:
1 2 3 4 5 6 7 8 9 | [admin @huangye ~ ]$ ethtool -iwlan0 driver: iwlagn version: 3.0-ARCH firmware-version: 8.83.5.1 build 33692 bus-info: 0000:03: 00.0 supports-statistics: no supports-test: no supports-eeprom-access: no supports-register-dump: no |
可以看到我的网卡目前用的驱动是iwlagn,此驱动是由intel开发的。
debian wiki 有关于此驱动的描述:http://wiki.debian.org/iwlagn
下面一步才是关键:
这一步用于确定你的无线网卡是否支持”master mode”,也就是AP模式,如果不支持的话,下面的你不用看了,基本没戏了。。。
我们先用这个来测试:
1 2 3 4 | [admin @huangye ~ ]$ sudoiwconfig wlan0 mode master Password: Error forwireless request "Set Mode" (8B06 ): SET failed on device wlan0 ; Invalid argument. |
可以看到这里操作失败了。
还有机会。。。有些新的网卡用的是mac80211 framework,对于这些网卡的话,用iwconfig来测试它是否支持master模式是行不通的。
因为他们是使用新的 nl80211接口在用户空间通信的.
如果你没有iw这个新的无线网卡配置工具的话,你得先安装一个。
运行
1 | $iw list |
如果”Supported interface modes”中有AP的话,那么恭喜,你的网卡支持用hostapd来架设软AP.
1 2 3 4 | Supported interface modes: *IBSS *managed *monitor |
可以看到我的杯具了,不支持。。。
还不死心的话,这里有一个列表,列出各种网卡的信息,可以看到 iwlagn的驱动不支持master模式的。。。杯具啊
Comparison of open-source wireless drivers
Intel 无线网卡驱动官方网站:http://intellinuxwireless.org/
Driver capabilities
Also seelinuxwireless.org
Driver | 802.11 | Bus interface | WEP | WPA | WPA2 | Monitor mode | Master mode | Ad-Hoc mode |
---|---|---|---|---|---|---|---|---|
acx1xx | 802.11b,802.11g | PCI,Mini PCI,PC card,USB | Yes | No | No | Yes | Yes | ? |
adm8211 | ? | PCI | ? | ? | ? | ? | No | ? |
ath5k | 802.11a,802.11b,802.11g | PCI,Mini PCI,PC card,AHB | Yes | Yes | Yes | Yes | Yes (since 2.6.31) | Yes |
ath9k | 802.11a,802.11b,802.11g,802.11n | PCI,Mini PCI,AHB,PCI Express Mini Card | Yes | Yes | Yes | Yes | Yes | Yes |
b43 | 802.11b,802.11g | PCI,Mini PCI,SDIO? | Yes | Yes | Yes | Yes | Yes | Yes |
bcm43xx | 802.11b,802.11g | PCI,Mini PCI,PC card,Cardbus | Yes | Yes | Yes | Yes | No | ? |
brcmsmac | 802.11b,802.11g | ? | Yes | ? | Yes | Yes | No | No |
hostap | 802.11b | PCI,Mini PCI,PC card | Yes | Yes[17] | Yes[17] | Yes | Yes | Yes |
ipw2100 | 802.11b | Mini PCI | Yes | Yes | ? | Yes | ? | ? |
ipw2200 | 802.11a,802.11b,802.11g | Mini PCI | Yes | Yes | Yes | Yes | No | Yes |
ipw2200-ap | 802.11b,802.11g | Mini PCI | ? | ? | ? | Yes | Yes | ? |
ipw3945 | 802.11a,802.11b,802.11g | Mini PCI,PCI Express Mini Card | Yes | Yes | Yes | Yes | No | Yes |
islsm | ? | PCI,USB | No | No | No | ? | No | ? |
iwlwifi | 802.11a,802.11b,802.11g | Mini PCI,PCI Express Mini Card | Yes | Yes | Yes | Yes | No | Yes |
iwlagn | 802.11a,802.11g,802.11n | Mini PCI,PCI Express Mini Card | Yes | Yes | Yes | Yes | No | Yes |
libertas | 802.11b,802.11g | USB,CF,SDIO | ? | ? | ? | ? | No | ? |
MadWifi | 802.11a,802.11b,802.11g | PCI,Mini PCI,PC card | Yes | Yes | Yes | Yes | Yes | Yes some issues in HAL, outdoor sensitivity?[citation needed] |
orinoco | 802.11b | Mini PCI,PC card | Yes | Yes[18] | No | Yes | No | Yes |
p54 | 802.11b,802.11g | Mini PCI,Cardbus,USB | Yes | Yes | Yes | Yes | Yes | Yes |
prism54 | 802.11b,802.11g | PCI | Yes | No | ? | Yes | Yes | ? |
rndis_wlan | 802.11b,802.11g | USB | Yes | Yes | Yes | No | No | Yes |
rt2x00 | 802.11b,802.11g | PCI,Mini PCI,USB | Yes | Yes[19] | Yes[20] | Yes | Yes[21] | Yes |
rtl8180 | 802.11a,802.11b,802.11g | PCI,Mini PCI,PC card | ? | ? | ? | ? | Yes | ? |
rtl-wifi | 802.11a,802.11b,802.11g | PCI,Mini PCI,PC card | Yes | Yes | ? | ? | Yes | ? |
zd1201 | 802.11b | USB | Yes | No[22] | No[22] | Yes | Yes | ? |
zd1211 | 802.11a,802.11b,802.11g | USB | Yes | Yes | Yes | Yes | Yes | ? |
zd1211rw | 802.11b,802.11g | USB | Yes | Yes | Yes | Yes | Yes[23] | Yes |
=============================================
如果以上检查证明无线网卡支持AP模式,参考如下方法共享wifi给android手机,这是我这几天看了一些文章总结,希望对大家都帮助:
参考如下:
方法一:安装工具wifi-hostapd-ap,该软件作者是一个俄罗斯人,具体操作步骤请参考:(推荐大家使用这个。比较简单,我因为网卡原因没福享受了。。。)
http://hi.baidu.com/aristotle9/blog/item/a77477911e01bf92a977a4fd.html#0
方法二:使用配置文件及脚本启动AP模式实现wifi共享:
可参考该博客:
http://hi.baidu.com/gbthereisaway/blog/item/d3f419a3a45cf78ad0435807.html
注意该文章有三点要注意修改:
(1)在这节中:“2、配置网络端口”,将里面的IP地址和网关根据自己实际情况来设置,我的是这样:
auto eth0
iface eth0 inet static
address 192.168.1.110
netmask 255.255.255.0
gateway 192.168.1.1
auto lo
iface lo inet loopback
(2)在这节中:“4、配置dns”,将里面的dns也根据自己的实际情况来设置,我的是这样:
interface=wlan0
bind-interfaces #这个是只监听wlan0,没有之会检测所有卡
except-interface=lo
dhcp-range=192.168.0.2,192.168.0.110,6h #设置dhcp地址范
#address=/#/192.168.0.1 #这个会把#(代表所有网址)的dns到192.168.0.1这个地址
(3)在这节中“:5、编辑启动脚本: sudo gedit /usr/bin/myap 内容如下”,请根据实际情况修改:
ip地址
另外还有该路径请设置正确,按照文章中描述,应该修改:
hostapd -B /etc/hostapd.conf --》修改为:hostapd -B /etc/network/hostapd.conf
更多相关文章
- android之listView之增删改查
- 如何去掉Android(安卓)Studio顶部状态栏
- (转)修改Android的开关机铃声、Android开关机画面与动画(附代码流程
- Android(1.5) 开机图片/文字/动画 修改
- Android简单数据存储类SharedPreferences详解及实例(通过“记住密
- Android(安卓)mk编译OkHttp3
- Android开启/关闭/监听 飞行模式
- Android(安卓)APP修改全局字体
- Android(安卓)CTS 兼容性测试的Fail的一些修改