最近在Ubuntu找了很久,也找不到一個可以將無線網卡作AP的軟件,試了網上很多方法都不行,有些是可以搜到熱點,但我的Android手機連上去的時候獲取不了ip地址。研究了幾天,昨晚花了一晚時候,去寫個腳本,成功的連上了。希望我這個腳本能幫到大家解決問題。
主要是用到iwconfig這個無線配置工具,然後用iptable設置NAT規則,使用dnsmasq去分配ip地址。
- 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
/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://linux.linuxidc.com/
用戶名與密碼都是www.linuxidc.com
具體下載目錄在 /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
即可,多次幾次就行了。