最近家里小房间要用ipad上网,整个无线网信号不好,小房间里是有有线网络接口的;所以突然想到用树莓派做wifi热点,很久之前买的树莓派3B+,之前也开过热点,玩过一阵后就一直放着,重新捡起来还是有些生疏,把中间的一些坑记录一下。
本系统使用的原生树莓派系统,最新版本是2019.09.26的(支持树莓派4)。
树莓派开启wifi热点有很多种方法,本文主要介绍两种主流方法,可以大致了解开启热点流程。
一、 使用API的方式(create_ap)
1.下载API代码到本地,并编译。
git clone https://github.com/oblique/create_ap
cd create_ap
make install
2. 安装依赖库
apt install util-linux procps hostapd iproute2 iw haveged dnsmasq
最重要的是hostapd(开启热点,wifi做主机) ,dnsmasq(dns服务器)。
3. 创建WiFi热点
sudo create_ap 无线网卡名 有线网卡名 热点名 密码
如果上述命令报错,没有开启的话,有可能是你的wifi已经开启并做了从机,导致开启热点失败;可以先 'sudo ifconfig wlan0 down',然后再输入上述命令。
4. 开机启动
开机启动有多种方法,请参考我的另一篇文章Raspberry开机启动方法。
这里主要介绍2种方法,读者可以自行选择。
a. rc.local中写入启动命令
vim /etc/rc.local
sudo create_ap 无线网卡名 有线网卡名 热点名 密码 &
命令最后一定要加 &,即后台运行。
这种开机方法,一定要把wpa_supplicant给禁掉,即不要让wifi开机即开启从机,搜索网络联网。
具体方法如下: vim /etc/dhcpcd.conf
在文件开头写入 'nohook wpa_supplicant',即和 ifconfig wlan0 down 是一样的效果。
b. 通过create_ap服务启动
首先要修改create_ap的默认设置,即 sudo vim /etc/create_ap.conf
主要修改 “SSID=热点名称”,“PASSPHRASE=密码”。
其他保持默认就行。
可以看一下 /usr/lib/systemd/system/create_ap.service 文件
其中有一行:
ExecStart=/usr/bin/create_ap --config /etc/create_ap.conf
即服务启动及选择的配置文件。
最后可以通过命令开启服务,记得把 rc.local 中的 create_ap 语句删除或注释。
sudo systemctl enable create_ap
reboot重新开机,热点应该已经开启。
~恢复WIFI功能
如果要关闭wifi热点,恢复正常wifi,都要注释掉 'nohook wpa_supplicant' 语句;方法a 中删除或注释掉 create_ap 语句行,方法b 中停止服务:
sudo systemctl disable create_ap
二、树莓派官方热点开启方法
Setting up a Raspberry Pi as a Wireless Access Pointwww.raspberrypi.org大家可以去官网看看,实际操作一遍可以加深对wifi热点的理解,官方介绍了2种内网穿透方法。
- NAT
- Bridge
具体方法我在这里就不展开了,官网介绍很详细了。
查看开启的服务可以使用如下命令。
sudo service --status-all
恢复WIF功能,可以参考方法一,同样要停掉hostapd,dnsmasq等热点服务,并改写 /etc/dhcpcd.conf 文件。