取自http://blog.csdn.net/q1302182594/article/details/8689603,博主的情况和我基本一样,都是校园网玩linux想给安卓发无线,配置信息基本不用改,只是他命令里一些空格不清楚,而且我所需要的只是这篇博文的一部分,另外还是想自己记录一下,所以转过来。
1.安装软件:sudo apt-getinstall hostapd dnsmasq
2.配置hostapd:配置文件是/etc/hostapd.conf,如果装了以后没有就自己新建一个,写入:
interface=wlan0
driver=nl80211
ssid=gilzhyWifi #wifi名
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=12345678 #密码,行末不要有空格
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
3.配置dnsmasq:配置文件是/etc/dnsmasq.conf,同样的,没有就自己新建一个,写入:
interface=wlan0
bind-interfaces #这个是只监听wlan0,没有之会检测所有卡
except-interface=lo
dhcp-range=192.168.1.100,192.168.1.254,12h #设置dhcp地址范围,即租借时间6小时
dhcp-option=3,192.168.1.1 #为手机配置网关,要和dhcp-arange对应,这涉及网络的知识,不详细介绍。
dhcp-option=6,202.114.128.2 #为手机配置dns,你可以根据实际情况去修改
写入前配置文件应该是只有注释的,如果是这样就只要写入这几行,如果有非注释的address=/#/10.0.0.1,把它注释掉
4.写个脚本添加路由规则,新建myap,写入:
#!/bin/sh
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t nat -APOSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -s 192.168.1.0/24 -o eth0 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -i eth0 -j ACCEPT
5.确保打开转发功能:/etc/sysctl.conf找到net.ipv4.ip_forward=1,如果被注释了,取消注释
6.启动AP:
su
killall named
killall hostapd
ifconfig wlan0 192.168.1.1
hostapd -B /etc/hostapd.conf
/etc/init.d/dnsmasq restart
echo 1 >/proc/sys/net/ipv4/ip_forward
./myap
7.以后用时,每次都需要输:
ifconfig wlan0 192.168.1.1
hostapd -B /etc/hostapd.conf
/etc/init.d/dnsmasq restart
比较麻烦,修改myaq:
#!/bin/sh
ifconfig wlan0 192.168.1.1
hostapd -B /etc/hostapd.conf
/etc/init.d/dnsmasq restart
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t nat -APOSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -s 192.168.1.0/24 -o eth0 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -i eth0 -j ACCEPT
每次使用时,切换到root然后运行myap