最近在Ubuntu找了很久,也找不到一个可以将无线网卡作AP的软件,就是类似win 7下的connectify工具,能将笔记本作为AP使用。试了网上很多方法都不行,有些是可以搜到热点,但我的Android手机连上去的时候获取不了ip地址。研究了几天,昨晚花了一晚时候,去写个脚本,成功的连上了。希望我这个脚本能帮到大家解决问题。
主要是用到iwconfig这个无线配置工具,然后用iptable设置NAT规则,使用dnsmasq去分配ip地址。
因為硬件不的同,設置也會有相應的修改。
本人的筆記本是:Acer 4743g
使用前,請激活網管理器的wifi功能以此加載模塊,然後再取消wifi功能。
ifconfig wlan0 192.168.2.254 netmask 255.255.255.0 ifconfig wlan0 up #设置为ad-hoc模式 iwconfig wlan0 mode ad-hoc #设置essid,即搜索到的名字 iwconfig wlan0 essid Leon_in_GuangZhou iwconfig wlan0 channel auto #设置密码 iwconfig wlan0 key s:androidworkab iwconfig wlan0 key restricted #删除旧的规则 iptables -N wireless-adhoc iptables -F wireless-adhoc iptables -t nat -F PREROUTING iptables -t nat -F POSTROUTING iptables -t nat -F #建立新的规则 iptables -A wireless-adhoc -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A wireless-adhoc -s 192.168.2.0/24 -j ACCEPT iptables -A wireless-adhoc -p 47 -j ACCEPT iptables -A wireless-adhoc -j DROP iptables -A FORWARD -m state --state INVALID -j DROP iptables -A FORWARD -j wireless-adhoc iptables -t nat -I POSTROUTING -s 192.168.2.0/24 -j MASQUERADE echo "1" > /proc/sys/net/ipv4/ip_forward dnsmasq -i wlan0 --resolv-file=/etc/resolv.conf --conf-file=/etc/adhoc/dnsmasq.conf
dhcp-authoritative dhcp-range=192.168.2.100,192.168.2.105,12h dhcp-leasefile=/var/run/dnsmasq.leases pid-file=/var/run/dnsmasq.pid user=root no-negcache
完整脚本下载地址:
http://download.csdn.net/source/3484630
或者:https://gist.github.com/1117004
脚本要根据自己电脑情况修改
##################################### #要共享网络的设备,可以用ifconfig命令查看 ShareNet=eth0 Wmode=ad-hoc Wchannel=auto #显示共享wifi的名称 Wessid=Leon_in_GuangZhou #这个是wifi设备的名称,可以用ifconfig查看 WInterface=wlan0 #密码 WPasskey=androidworkab Wkey=restricted Igateway=192.168.2.254 Inetmask=255.255.255.0 Inetwork=192.168.2.0 DhcpRangeMin=192.168.2.10 DhcpRangeMax=192.168.2.105 #####################################
以下是脚本的使用方法:
#先加可执行的权限,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
即可,多試几次就行了。