树莓派4B使用hostapd开启5G热点

适用于树莓派RJ45口连接网线,使用树莓派自带的无线网卡开启AP的情况

前置

用网线连接树莓派的RJ45网口,可以使用DHCP自动分配的IP或者设置静态IP

系统配置

设置IP转发

因为Linux系统默认关闭了IP转发,所以要手动开启,编辑/etc/sysctl.conf,取消下列行的注释:

ini 复制代码
net.ipv4.ip_forward=1

然后应用配置:

bash 复制代码
sudo sysctl -p

设置有线接口的NAT

如果连接网线的接口为eth0,设置

bash 复制代码
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT

如果提示找不到命令iptables,先执行sudo apt install iptables

设置后,每次树莓派重启就会重置NAT配置,因此需要持久化设置,通过安装iptables-persistent来保存规则:

bash 复制代码
sudo apt install iptables-persistent
sudo netfilter-persistent save

之后再次重启dnsmasq

bash 复制代码
sudo systemctl restart dnsmasq

网络配置

如果树莓派使用的网络管理工具是systemd-networkd,先查看其状态

bash 复制代码
sudo systemctl status systemd-networkd

如果服务没有运行,先启动:

bash 复制代码
sudo systemctl enable systemd-networkd
sudo systemctl start systemd-networkd

再给无线网卡wlan0创建一个配置文件/etc/systemd/network/wlan0.network

ini 复制代码
[Match]
Name=wlan0

[Network]
Address=192.168.10.1/24
DHCPServer=yes

[DHCPServer]
PoolOffset=100
PoolSize=100
EmitDNS=yes
DNS=8.8.8.8 8.8.4.4
  • Address=192.168.10.1/24设置wlan0的IP地址,和下面dnsmasq配置保持一致
  • PoolOffset=100PoolSize=100,设置DHCP池的IP偏移量,并设置池大小,所以DHCP的IP池范围为192.168.10.100192.168.10.200,和下面dnsmasq配置保持一致

配置dnsmasq

似乎可以不用配置(未测试)

安装dnsmasq

安装dnsmasq创建DHCP池实现连接热点自动分配ip

bash 复制代码
sudo apt install dnsmasq

配置

创建/etc/dnsmasq.conf,写入配置:

ini 复制代码
interface=wlan0
dhcp-range=192.168.10.100,192.168.10.200,255.255.255.0,24h

dhcp-range可以自定义为自己想要的ip段

之后重启dnsmasq服务:

bash 复制代码
sudo systemctl restart dnsmasq

配置hostapd

安装hostapd用于给无线网卡设置为AP模式

安装hostapd

bash 复制代码
sudo apt install hostapd

配置

创建/etc/hostapd/hostapd.conf,配置为:

ini 复制代码
interface=wlan0
country_code=US
driver=nl80211
ssid=<wifiname>
hw_mode=a
channel=149
ieee80211n=1
ieee80211ac=1
wmm_enabled=1
ht_capab=[HT40+][SHORT-GI-20]
vht_capab=[SHORT-GI-80]
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=155
wpa=2
wpa_passphrase=<password>
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

其中: ssid为热点名称,wpa_passphrase为热点密码,可以自行设置

使用自定义配置启动hostapd:

bash 复制代码
sudo hostapd /etc/hostapd/hostapd.conf

如果报错类似:hostapd failed to request a scan of neighboring bsses ret=-52 (invalid exchange),可以参考Pi unable to use VHT with built in WiFi chip #3768,下载文件,将.clm_blob文件文件复制到/lib/firmware/brcm/目录

bash 复制代码
cp cyfmac43455-sdio.clm_blob /lib/firmware/brcm/brcmfmac43455-sdio.clm_blob

注意文件名不一致!!! 然后重启树莓派,再按之前的命令启动hostapd

总结

树莓派由于硬件限制,无线网卡在2.4GHz情况下热点的速率大概只有70Mb/s左右,开启5GHz信号和设置VHT为80MHz的情况下,Windows显示的连接速度为150Mb/s,从连接速度来看翻了一倍,使用中国科学技术大学测速网站测试下载速度,原通过nmcli使用2.4GHz信号开启的热点下载速度大约为12Mb/s,改用5GHz后能跑到100多Mb/s,效果提升还是很明显。理论上树莓派4B的无线网卡能跑到千兆速度,但实在是优化不来 。采用openWrt配置无线热点因为树莓派性能过于鸡肋,内存和CPU经常吃满卡死,只能采用这种折中的办法。有条件还是得整一个正儿八经的路由器 ~或者Mac mini~

外部引用参考

[1] 树莓派4B创建5Ghz WiFi热点

相关推荐
想躺在地上晒成地瓜干7 天前
树莓派超全系列教程文档--(38)config.txt视频配置
linux·音视频·树莓派·raspberrypi·树莓派教程
想躺在地上晒成地瓜干9 天前
树莓派超全系列教程文档--(32)config.txt常用音频配置
linux·音视频·树莓派·raspberrypi·树莓派教程
肯德基疯狂星期四-V我5012 天前
【Ubuntu】【树莓派】Linux系统的远程终端登录、远程图形桌面访问、 X图形窗口访问和文件传输操作
linux·运维·ubuntu·树莓派
想躺在地上晒成地瓜干14 天前
树莓派超全系列教程文档--(24)本地化设置、SSH及配置防火墙
linux·ssh·树莓派·raspberrypi·树莓派教程
cyz14100117 天前
树莓派4B配置wifi热点,可访问http协议
linux·网络·windows·后端·网络协议·http·树莓派
想躺在地上晒成地瓜干1 个月前
树莓派超全系列文档--(18)树莓派配置音频
linux·音视频·树莓派·raspberrypi·树莓派教程
想躺在地上晒成地瓜干1 个月前
树莓派超全系列文档--(17)树莓派配置显示器
linux·树莓派·raspberrypi·raspi-config
想躺在地上晒成地瓜干1 个月前
树莓派超全系列文档--(14)无需交互使用raspi-config工具其一
linux·树莓派·raspberrypi·树莓派教程
Ki13811 个月前
将树莓派5当做Ollama服务器,C#调用generate的API的示例
linux·树莓派·ollama