Linux下脚本实现Wireless AP

今天把Wrieless AP搞定了,甚是高兴,就把写的脚本贴出来供有需要的人使用吧。

如果你问我Wireless AP是干嘛的,好吧,那接下来的内容不用看了。

来个简洁版的:

首先,装hostapd和dnsmasq

sudo apt-get install hostapd dnsmasq

然后,准备3个文件

(1)sudo gedit  /etc/hostapd.conf

写入以下内容保存(赶时间,没有写注释,不是一个合格的程序猿,@_@):

interface=wlan0
driver=nl80211
ssid=hustleon    #换成你的用户名
hw_mode=g
channel=11
dtim_period=1
rts_threshold=2347
fragm_threshold=2346
macaddr_acl=0
auth_algs=3
ieee80211n=0
wpa=3
wpa_passphrase=XXXXXXXX    #换成你的密码
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

(2)sudo gedit  /etc/dnsmasq.conf

写入以下内容保存:

interface=wlan0
bind-interfaces
except-interface=lo
dhcp-range=10.0.0.10,10.0.0.110,6h
dhcp-option=3,10.0.0.1
dhcp-option=6,202.114.0.242    #换成自己单位的DNS

(3)sudo gedit  /usr/bin/sharewifi

写入以下脚本保存后用 sudo chmod +x  /usr/bin/sharewifi 更改权限:

#!/bin/sh
# begin file: sharewifi

# Wireless AP--无线wifi热点
# 用法: sharewifi [start|stop]
# 例如: sharewifi start
# 版本: 1.0.0
# 作者: hustleon

help()
{
  cat<<HELP
sharewifi--Wireless AP
用法: sharewifi [start|stop]
例如: sharewifi start
版本: 1.0.0
作者: hustleon
HELP
  exit 0
}

start()
{
echo 正在开启 Wireless AP ......

# Configure iptable rules
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE
iptables -A FORWARD -s 10.0.0.0/8 -o eth0 -j ACCEPT
iptables -A FORWARD -d 10.0.0.0/8 -m conntrack --ctstate ESTABLISHED,RELATED -i eth0 -j ACCEPT

ifconfig wlan0 10.0.0.1

hostapd -B /etc/hostapd.conf
/etc/init.d/dnsmasq restart

echo 开启 Wireless AP 成功.

  exit 0
}

stop()
{
echo 正在关闭 Wireless AP ......

# Configure iptable rules
iptables -F

killall hostapd
ifconfig wlan0 down
ifconfig wlan0 del 10.0.0.1
ifconfig wlan0 up

echo 关闭 Wireless AP 成功.

  exit 0
}

case "$1" in
"help")
help;;
"start")
start;;
"stop")
stop;;
*)
help;;
esac

# end file: sharewifi

最后,大功告成,重启电脑在终端输入 sudo sharewifi start 即可启动,输入 sudo sharewifi stop 停止

差点忘了最重要的一点,记得要开启 IP 转发 sudo echo "1" > /proc/sys/net/ipv4/ip_forward

posted @ 2013-05-08 16:03  安迪Lee  阅读(1253)  评论(4编辑  收藏  举报