最近在Ubuntu找了很久,也找不到一个可以将无线网卡作AP的软件,试了网上很多方法都不行,有些是可以搜到热点,但我的Android手机连上去的时候获取不了ip地址。研究了几天,昨晚花了一晚时候,去写个脚本,成功的连上了。希望我这个脚本能帮到大家解决问题。
主要是用到iwconfig这个无线配置工具,然后用iptable设置NAT规则,使用dnsmasq去分配ip地址。
ifconfigwlan0192.168.2.254netmask255.255.255.0
ifconfigwlan0up
#设置为ad-hoc模式
iwconfigwlan0modead-hoc
#设置essid,即搜索到的名字
iwconfigwlan0essidLeon_in_GuangZhou
iwconfigwlan0channelauto
#设置密码
iwconfigwlan0keys:androidworkab
iwconfigwlan0keyrestricted
#删除旧的规则
iptables-Nwireless-adhoc
iptables-Fwireless-adhoc
iptables-tnat-FPREROUTING
iptables-tnat-FPOSTROUTING
iptables-tnat-F
#建立新的规则
iptables-Awireless-adhoc-mstate--stateESTABLISHED,RELATED-jACCEPT
iptables-Awireless-adhoc-s192.168.2.0/24-jACCEPT
iptables-Awireless-adhoc-p47-jACCEPT
iptables-Awireless-adhoc-jDROP
iptables-AFORWARD-mstate--stateINVALID-jDROP
iptables-AFORWARD-jwireless-adhoc
iptables-tnat-IPOSTROUTING-s192.168.2.0/24-jMASQUERADE
echo"1">/proc/sys/net/ipv4/ip_forward
dnsmasq-iwlan0--resolv-file=/etc/resolv.conf--conf-file=/etc/adhoc/dnsmasq.conf
/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
完整脚本下载地址:
用户名与密码都是
具体下载目录在 /pub//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
即可,多次几次就行了。