树莓派.设置无线网卡为AP工作模式(pi2和pi3)
树莓派2的设置办法:
1. 安装NetworkManager管理工具(可选),以支持nmcli命令
sudo apt-get install -y network-manager
2. 安装hostapd和dhcpd
sudo apt-get install -y hostapd isc-dhcp-server
开机不需要启动这两个服务,建议把它们关掉:
sudo update-rc.d -f hostapd remove
3. 配置hostapd和dhcpd
sudo vi /etc/hostapd/hostapd.conf
注意自己设置其中的无线热点名称ssid和认证密码wpa_passphrase.
interface=wlan0 ssid=lysmartscreen hw_mode=g channel=10 macaddr_acl=0 auth_algs=3 wpa=2 wpa_passphrase=YOUR_AP_PASSWORD wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP CCMP rsn_pairwise=TKIP CCMP
设置dhcpd.conf
sudo vi /etc/dhcp/dhcpd.conf
subnet 192.168.0.0 netmask 255.255.255.0{ range 192.168.0.2 192.168.0.10; option routers 192.168.0.1; option domain-name-servers 192.168.0.1,180.76.76.76,8.8.8.8; }
其中180.76.76.76是百度公共DNS服务器,8.8.8.8则是Google的DNS服务器.
在自己的家目录下创建一个放日志的logs目录,里面新建启动和关闭脚本:
mkdir /home/pi/logs
启动AP的脚本:
vi /home/pi/logs/ap-start.sh
#!/bin/bash # 开启内核IP转发 bash -c "echo 1 > /proc/sys/net/ipv4/ip_forward" # 开启防火墙NAT转发(如果本机使用eth0上网,则把ppp0改为eth0) iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE # 关闭NetworkManager对无线网卡的控制(这句实测中nm参数无效, 但似乎不影响使用) nmcli nm wifi off # 设置并启动无线网卡 ifconfig wlan0 192.168.0.1 netmask 255.255.255.0 # 解锁无线设备,可以用rfkill list查看解锁结果. rfkill unblock wlan # 睡眠6秒,待rfkill解锁生效 sleep 6s # 启动dhcpd和hostapd,如果hostapd无法启动请查看日志hostapd.log,查看这两个进程ps -ef|egrep "dhcpd|hostapd" nohup hostapd /etc/hostapd/hostapd.conf >/home/pi/logs/hostapd.log 2>&1 & dhcpd wlan0 -pf /var/run/dhcpd.pid ps -ef|head -n1 && ps -ef|egrep "dhcpd|hostapd"
停止AP的脚本:
vi /home/pi/logs/ap-stop.sh
#!/bin/bash killall hostapd dhcpd bash -c "echo 0 > /proc/sys/net/ipv4/ip_forward" ifconfig wlan0 down
4. 启动hostapd和dhcpd
给2个脚本增加执行的权限
chmod +x /home/pi/logs/ap-*.sh
启动AP:
sudo /home/pi/logs/ap-start.sh
看到上图的内容表示AP创建成功 (注:脚本位置与上文所讲略有不同, 灵活处理即可)
停止AP:
sudo /home/pi/logs/ap-stop.sh
附一张手机连上AP的图片
树莓派3的设置办法:
git clone https://github.com/oblique/create_ap.git
如果未装git, 就先装上它
sudo apt-get install git
git下来后安装
cd create_ap/
sudo make install
安装依赖包
sudo apt-get install util-linux procps hostapd iproute2 iw haveged dnsmasq -y
试试创建热点
sudo ifdown wlan0
sudo create_ap wlan0 eth0
如果不成功
试加一个参数
sudo create_ap --no-virt wlan0 eth0
按提示输入SSID名字和密码,看到下图的内容表示成功, 可以在Wifi中搜索到这个热点了
如果想一句命令包含你创建的SSID和密码, 可以这样
sudo create_ap --no-virt wlan0 eth0 ssidname password
done.