admin 管理员组

文章数量: 887019






翊轩LeOn

黑夜给了我黑色的眼睛,而我却用它来寻找光明.

  • 目录视图
  • 摘要视图
  • 订阅
CSDN学院讲师招募,诚邀您加入!     博客Markdown编辑器上线啦     PMBOK第五版精讲视频教程     火星人敏捷开发1001问

[置顶] Linux Wifi共享上网脚本,类似win 7的Connectify工具

分类: Android Ubuntu 2011-08-01 01:03 13074人阅读 评论(25) 收藏 举报 脚本 工具 linux ubuntu 手机 android

最近在Ubuntu找了很久,也找不到一个可以将无线网卡作AP的软件,就是类似win 7下的connectify工具,能将笔记本作为AP使用。试了网上很多方法都不行,有些是可以搜到热点,但我的Android手机连上去的时候获取不了ip地址。研究了几天,昨晚花了一晚时候,去写个脚本,成功的连上了。希望我这个脚本能帮到大家解决问题。

主要是用到iwconfig这个无线配置工具,然后用iptable设置NAT规则,使用dnsmasq去分配ip地址。

因為硬件不的同,設置也會有相應的修改。

本人的筆記本是:Acer 4743g

使用前,請激活網管理器的wifi功能以此加載模塊,然後再取消wifi功能。

[plain] view plain copy print ?
  1. ifconfig wlan0 192.168.2.254 netmask 255.255.255.0  
  2. ifconfig wlan0 up  
  3. #设置为ad-hoc模式  
  4. iwconfig wlan0 mode ad-hoc  
  5. #设置essid,即搜索到的名字  
  6. iwconfig wlan0 essid Leon_in_GuangZhou  
  7. iwconfig wlan0 channel auto  
  8. #设置密码  
  9. iwconfig wlan0 key s:androidworkab  
  10. iwconfig wlan0 key restricted  
  11.   
  12. #删除旧的规则  
  13. iptables -N wireless-adhoc  
  14. iptables -F wireless-adhoc  
  15. iptables -t nat -F PREROUTING  
  16. iptables -t nat -F POSTROUTING  
  17. iptables -t nat -F  
  18. #建立新的规则  
  19. iptables -A wireless-adhoc -m state --state ESTABLISHED,RELATED -j ACCEPT  
  20. iptables -A wireless-adhoc -s 192.168.2.0/24 -j ACCEPT  
  21. iptables -A wireless-adhoc -p 47 -j ACCEPT  
  22. iptables -A wireless-adhoc -j DROP  
  23. iptables -A FORWARD -m state --state INVALID -j DROP  
  24. iptables -A FORWARD -j wireless-adhoc  
  25. iptables -t nat -I POSTROUTING -s 192.168.2.0/24 -j MASQUERADE  
  26. echo "1" > /proc/sys/net/ipv4/ip_forward  
  27. dnsmasq -i wlan0 --resolv-file=/etc/resolv.conf --conf-file=/etc/adhoc/dnsmasq.conf  



/etc/adhoc/dnsmasq.conf文件内容为 [plain] view plain copy print ?
  1. dhcp-authoritative   
  2. dhcp-range=192.168.2.100,192.168.2.105,12h  
  3. dhcp-leasefile=/var/run/dnsmasq.leases  
  4. pid-file=/var/run/dnsmasq.pid  
  5. user=root  
  6. no-negcache  


完整脚本下载地址:

http://download.csdn/source/3484630


或者:https://gist.github/1117004


脚本要根据自己电脑情况修改

[plain] view plain copy print ?
  1. #####################################  
  2. #要共享网络的设备,可以用ifconfig命令查看  
  3. ShareNet=eth0  
  4. Wmode=ad-hoc  
  5. Wchannel=auto  
  6. #显示共享wifi的名称  
  7. Wessid=Leon_in_GuangZhou  
  8. #这个是wifi设备的名称,可以用ifconfig查看  
  9. WInterface=wlan0  
  10. #密码  
  11. WPasskey=androidworkab  
  12. Wkey=restricted  
  13. Igateway=192.168.2.254  
  14. Inetmask=255.255.255.0  
  15. Inetwork=192.168.2.0  
  16. DhcpRangeMin=192.168.2.10  
  17. DhcpRangeMax=192.168.2.105  
  18. #####################################  



以下是脚本的使用方法:

#先加可执行的权限,XXX代表脚本的路径

chmod +x /XXX/XXX/adhoc

#运行脚本

sudo  /XXX/XXX/adhoc

#停止共享

sudo  /XXX/XXX/adhoc -s

#重启动共享

sudo  /XXX/XXX/adhoc -r


转载请注明出处:http://blog.csdn/feifei454498130/article/details/6642140




运行getprop命令可以查看到连接信息地址




注意:

如果运行脚本后,手机或电脑搜不到你的共享,运行重新启动共享命令

sudo  /XXX/XXX/adhoc -r

即可,多試几次就行了。

  • 上一篇基于命令行模式开发ANDROID应用
  • 下一篇SH 语法概要
10
0
主题推荐
脚本 类 linux wifi 笔记本
猜你在找
准备好了么?  更多职位尽在 
Linux运维工程师 重庆智多信息发展有限公司 4-7K/月 我要跳槽
linux高级工程师(即时通讯后台) 深圳市云之讯网络技术有限公司 13-20K/月 我要跳槽
linux高级工程师(VOIP通讯后台) 深圳市云之讯网络技术有限公司 13-20K/月 我要跳槽
Linux C 开发(监测平台事业部) 杭州安恒信息技术有限公司 8-13K/月 我要跳槽
查看评论
16楼 wugenfa 2013-09-10 12:17发表 [回复]
Setting wlan0 key type...Error for wireless request "Set Encode" (8B2A) :
SET failed on device wlan0 ; Operation not supported.
[ good ]

Setting iptable....
dnsmasq: failed to create listening socket for port 53: 地址已在使用

大哥,这是我执行你的脚本的时候出现问题,能帮我吗,QQ 24731843
15楼 feitianzhenwo 2013-04-04 15:58发表 [回复]
引用“wuxinxinggg”的评论:Setting eth1 cannel...Error for wireless request &...

额也一样。。。。
14楼 unixcsir 2012-07-26 13:36发表 [回复]
請問,手機連接不上共享的wifi是什麼問題呢?
13楼 coolboy94psj 2012-04-03 03:14发表 [回复]
运行的时候有:
....
Setting wlan0 key type... [ good ]
Setting iptable...iptables: Chain already exists.
-r重启时提示.....iptables: Too many links.
这里出错了,貌似是防火墙的规则(猜的)
wifi可以连上,只是访问不了外网,只能访问开wifi的机子
Re: coolboy94psj 2012-04-03 14:21发表 [回复]
回复coolboy94psj:问题解决了,flush 一下iptables就可以
#!/bin/sh
echo "Stopping firewall and allowing everyone..."
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
谢谢楼主分享脚本,膜拜一下再走
12楼 mirzhaoqi 2012-03-20 09:33发表 [回复]
新手,不会弄啊,一步一步告诉我吧,是不是直接安装上就行了,还是在etc里面建立一个adhoc文件夹然后把编译文件考进去还是怎么办
11楼 wuxinxinggg 2012-02-21 09:31发表 [回复]
Setting eth1 cannel...Error for wireless request "Set Frequency" (8B04) :
SET failed on device eth1 ; Invalid argument.
不知道这是什么问题~~好像是channel auto参数无效~~
10楼 liuhk388 2011-11-28 10:18发表 [回复]
这个还是ad-hoc啊,直接在ubuntu里用默认的就可以了啊。
我要的是虚拟AP啊,要master/AP mode…因为kindle连不上ad-hoc…
9楼 yisimalan 2011-11-02 15:48发表 [回复]
我是在ubuntu11.10上做的,自带的无线网卡驱动,难道是这个驱动对iwconfig的支持不好?难道非得更新一下驱动?
8楼 yisimalan 2011-11-02 13:57发表 [回复]
把sudo iwconfig $WInterface key s:$WPasskey
这句改为:
sudo iwconfig $WInterface key "androidworkab"
试一下。 可是我改完之后提示invalid argument "androidworkab",依然报(8B2A)这个错误,搜索到的网络依旧是“未设置安全机制的计算机到计算机网络”,登陆不用密码。这应该是不支持引号""这种格式吧?按理说应该是用s:的方法设置为五位或者十三位的ASCII码的密码就可以是吧?
另外我在网上找到有关iwconfig的资料,都是一样的语焉不详。请问你有详细点的资料吗,望指教
Re: LeOn 2011-11-03 01:11发表 [回复]
回复yisimalan:上次发错了,将androidworkab这个密码改为5位数的密码就行了。
7楼 w7849516230 2011-10-29 16:44发表 [回复]
android手机不是不支持wifi的ad-hoc模式么?你这里是怎么把手机上的修改成功的?!!!!望指点!!!!
Re: LeOn 2011-11-02 01:36发表 [回复]
回复w7849516230:一般根据CM7修改的rom都支持ad-hoc,我看过源码,android 是屏蔽的了。
6楼 yisimalan 2011-10-27 17:14发表 [回复]
设置五位的密码就不会报三楼的错。但是设置五位密码之后反而获取不到地址了。设置非五位密码,可以获取到地址了... 为啥呢
Re: LeOn 2011-11-02 01:40发表 [回复]
回复yisimalan:把sudo iwconfig $WInterface key s:$WPasskey
这句改为:
sudo iwconfig $WInterface key "androidworkab"
5楼 yisimalan 2011-10-27 16:15发表 [回复]
我也出现了三楼一样的问题,改了几个密码,问题依旧,请楼主指点啊
4楼 sinojelly 2011-10-02 23:00发表 [回复]
脚本里面有点问题,stop里面应该是iwconfig,而不是ifconfig。

不过,我在Ubuntu 11.4里面建立了ad-hoc网络之后,用Win 7来连,发现能连上我的电脑,但是连不上Internet,重启ad-hoc连接多次,都是一样,不知有何办法?

另外,有个dhcp绑定失败的信息:
dnsmasq: failed to bind DHCP server socket: 地址已在使用
Re: LeOn 2011-10-03 01:24发表 [回复]
回复sinojelly:能连上wifi,但不能上网,一般是iptables没配置好.
你可能先在网络管理那里,enable wireless 然后disable wireless 然后再去启动脚本,这样的话,重复连接两次就可以成功.
至于
dnsmasq: failed to bind DHCP server socket: 地址已在使用
这个问题,估计是
if [ -f $dnsmasqPid ]; then
dnsmasqID=`cat $dnsmasqPid`
kill $dnsmasqID
sleep 1
fi
这段脚本没执行到
可以将dnsmasq的进程kill了,再尝试.
3楼 bingo_boy 2011-08-25 22:52发表 [回复]
你是不是河畔上的feifei???
Re: LeOn 2011-10-03 01:24发表 [回复]
回复bingo_boy:不是....
2楼 magicalne 2011-08-15 19:40发表 [回复]
哥们强人
但是貌似脚本有个小错误啊
我不懂这是啥脚本 暂时不会怎么修改-。-
具体就是 执行后 我的G11可以连上本本的wifi了 可是不需要密码啊-。-
执行时提示
Setting wlan0 password...Error for wireless request "Set Encode" (8B2A) :
SET failed on device wlan0 ; Invalid argument.
[ good ]
Re: LeOn 2011-11-02 01:41发表 [回复]
回复magicalne:把sudo iwconfig $WInterface key s:$WPasskey
这句改为:
sudo iwconfig $WInterface key "androidworkab"
试一下。
Re: LeOn 2011-08-16 22:56发表 [回复]
回复magicalne:可能是设置密码的位数有问题。你改一下其它密码看看。
1楼 Ryan200909 2011-08-01 16:42发表 [回复]
牛X的说~
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
核心技术类目
全部主题 Hadoop AWS 移动游戏 Java Android iOS Swift 智能硬件 Docker OpenStack VPN Spark ERP IE10 Eclipse CRM JavaScript 数据库 Ubuntu NFC WAP jQuery BI HTML5 Spring Apache .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate ThinkPHP HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap
  • 个人资料

  • LeOn
    • 访问:274674次
    • 积分:2124
    • 等级:
    • 排名:第8016名
    • 原创:19篇
    • 转载:51篇
    • 译文:0篇
    • 评论:136条
  • 文章搜索
  • 文章分类
  • Android(56)
  • Ubuntu(4)
  • java(4)
  • shell脚本(1)
  • Linux(1)
  • 文章存档
    • 2015年02月(1)
    • 2014年04月(1)
    • 2013年12月(1)
    • 2013年10月(2)
    • 2013年07月(1) 展开
  • 阅读排行
  • android 中 系统日期时间的获取(82226)
  • Android 4.0 隐藏虚拟按键(导航栏)的方法(38006)
  • 手动root android 模拟器(emulator)详细过程(28103)
  • Linux Wifi共享上网脚本,类似win 7的Connectify工具(13069)
  • android获取string.xml的值(8650)
  • i-jetty环境搭配与编译(5472)
  • android之定时器AlarmManager(5401)
  • Android httpclient接收xml乱码问题解决方法(4934)
  • android学习之wifimanager(4609)
  • 如何进行手机web远程调试——chrome beta(4088)
  • 评论排行
  • 手动root android 模拟器(emulator)详细过程(28)
  • Linux Wifi共享上网脚本,类似win 7的Connectify工具(25)
  • Android SQLite加密(19)
  • Android 4.0 隐藏虚拟按键(导航栏)的方法(13)
  • i-jetty环境搭配与编译(13)
  • 仿webQQ2.0技术设计以及源码下载(11)
  • Android 加密解密字符串(5)
  • android 中 系统日期时间的获取(4)
  • Android微信抢红包外挂 源代码(3)
  • Android httpclient接收xml乱码问题解决方法(2)
  • 推荐文章
  • 最新评论
  • Android微信抢红包外挂 源代码

    gaohanzangqiwen:这个程序怎么运行啊?能写出步骤吗?

  • Android微信抢红包外挂 源代码

    月亮之上009:厉害!

  • Android微信抢红包外挂 源代码

    jamseyang:很好很强大!

  • Android WebView自定义处理错误页面显示(404等)

    Z980287353:这样做还是会刷出原本的错误页面的

  • Android SQLite加密

    wangning08115:你好 看了您的 博文,很不错。。我遇到一个问题:我把你demo的数据库 拷贝出来 ,用sqlite工...

  • Android显示电量——自定义电池View

    jason_lee_ying:lz你好,充电状态是不是没有画出来

  • android之定时器AlarmManager

    C_cai_niao:谢谢楼主的详细讲解

  • Android SQLite加密

    mnsoft:@huanzi211:这个问题,最后是怎么解决的呢?

  • Android 4.0 隐藏虚拟按键(导航栏)的方法

    Rebekah_PP:弹出dialog或者popupwindow会导致导航栏出现一下然后又消失的情况,这个是什么原因?怎么...

  • Android 4.0 隐藏虚拟按键(导航栏)的方法

    安儿47:@nihenbuhao:你怎么去掉的??


公司简介 | 招贤纳士 | 广告服务 | 银行汇款帐号 | 联系方式 | 版权声明 | 法律顾问 | 问题报告 | 合作伙伴 | 论坛反馈
网站客服 杂志客服 微博客服 webmaster@csdn 400-600-2320 | 北京创新乐知信息技术有限公司 版权所有 | 江苏乐知网络技术有限公司 提供商务支持
京 ICP 证 070598 号 | Copyright © 1999-2014, CSDN.NET, All Rights Reserved 

本文标签: 脚本 共享上网 类似 工具 WiFi