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

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

分类: Android Ubuntu 13074人阅读 评论(25) 收藏 举报

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

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

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

本人的筆記本是:Acer 4743g

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

  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文件内容为
  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.net/source/3484630


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


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

  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.net/feifei454498130/article/details/6642140




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




注意:

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

sudo  /XXX/XXX/adhoc -r

即可,多試几次就行了。

10
0
主题推荐
脚本 linux wifi 笔记本
猜你在找
查看评论
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的说~
发表评论
  • 用 户 名:
  • cyuyan112233
  • 评论内容:
  • 插入代码
  •   
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
  • 个人资料
    • 访问:274674次
    • 积分:2124
    • 等级:
    • 排名:第8016名
    • 原创:19篇
    • 转载:51篇
    • 译文:0篇
    • 评论:136条
  • 文章分类
  • 推荐文章
  • 最新评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值