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