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

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

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

  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  

完整脚本下载地址:

具体下载目录在 /pub/2011/08/01/Linux Wifi共享上网脚本/

以下是脚本的使用方法:

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

chmod +x /XXX/XXX/adhoc

#运行脚本

sudo  /XXX/XXX/adhoc

#停止共享

sudo  /XXX/XXX/adhoc -s

#重启动共享

sudo  /XXX/XXX/adhoc -r

注意:

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

sudo  /XXX/XXX/adhoc -r

即可,多次几次就行了。

相关推荐