所需软件:
sudo apt-get install hostapd
1. 创建 hostapd 的 configure 文件
新建 hostapd.conf 文件,存放位置任意,与后面修改的路径一致即可。
$ cat /etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
ssid=mintAP
hw_mode=g
channel=10
macaddr_acl=0
auth_algs=3
wpa=2
wpa_passphrase=qwertyui
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=TKIP CCMP
其中ssid指无线热点名字,wpa_passphrase指密码。
2. 启动hostapd
编辑/etc/default/hostapd。指定其中的 DAEMON_CONF=/etc/hostapd/hostapd.conf(去掉前面的注释)
然后,就可以使用 sudo service hostapd start 来启动 AP 服务了。
而且,如此设置,hostapd 还会作为默认的服务被加载进来;要恢复默认不启动 hostapd,可以把这一行重新注释掉。
3. 配置 dhcpd
修改 /etc/dhcp/dhcpd.conf,在末尾添加:
subnet 192.168.222.0 netmask 255.255.255.0
{
range 192.168.222.2 192.168.222.100;
option routers 192.168.222.1;
option domain-name-servers 8.8.8.8;
}
其中 domain-name-servers 后的 8.8.8.8 是要为子网使用的 DNS,
4. 无线网卡指定 IP
如果不为无线网卡指定 IP,则,在该网卡上启动 dhcpd 会失败。
$ sudo ifconfig wlan0 192.168.0.1 netmask 255.255.255.0
5. 启动dhcp-server
$ sudo dhcpd wlan0 -pf /var/run/dhcp-server/dhcpd.pid
6. 设置 NAT 和 IP 转发
参考,并把其中的转发端口指定为 eth0 ( 文中是在 eth0 口分享 wlan0 的网络,现在是相反过程):
http://www.cnblogs.com/pied/p/5402771.html
至此,无线热点设置完成。打开手机便可以连接。
---------------------------------------------------------
每次都手动敲上面的代码有点麻烦,写了下面的脚本:
#!/usr/bin/env bash if [ $(id -u) -ne 0 ]; then echo "Re-running script under sudo..." sudo "$0" "$@" exit 1 fi echo 1 > /proc/sys/net/ipv4/ip_forward iptables -F iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE ifconfig wlan0 192.168.222.1 || true dhcpd wlan0 -pf /var/run/dhcp-server/dhcpd.pid || true service hostapd start || true
目前还有个没解决的问题,笔记本休眠后重启,无线联得上,但是就是没转发,重设 iptables 也不行。暂时无解。