树莓派.设置无线网卡为AP工作模式(pi2和pi3)

南笙酒味 提交于 2020-03-04 07:06:51

树莓派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.

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!