畅玩树莓派4B(二)树莓派搭建无线路由器(支持5GWIFI)

2023-10-14 12:40

本文主要是介绍畅玩树莓派4B(二)树莓派搭建无线路由器(支持5GWIFI),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

畅玩树莓派4B(二)树莓派搭建无线路由器(支持5GWIFI)

  • 一、工具安装
  • 二、网卡配置
  • 三、DHCP和DNS配置
  • 四、配置转发
  • 五、配置hostapd

树莓派4B拥有千兆有线网络5G无线网络。因此本篇文章将配置树莓派为无线路由器 (不务正业)

一、工具安装

首先通过SSH连接到树莓派。(系统安装和SSH配置、连接可以参考本系列的一篇博客)
修改软件源

sudo nano /etc/apt/sources.list

注释原有的几个源。
注意红框中的内容,因为树莓派系统的版本不同这个可能为bullseye、buster之类的。如果打开/etc/apt/sources.list在红框位置看到的是bullseye,在后面添加:

deb https://mirror.nju.edu.cn/debian/ bullseye main contrib non-free
deb https://mirror.nju.edu.cn/debian-security/ bullseye-security main contrib non-free
deb https://mirror.nju.edu.cn/debian bullseye-updates main contrib non-free

如果是buster,

deb https://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi
deb-src https://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi

在这里插入图片描述
执行下面的命令安装搭建路由需要的工具。

sudo apt-get update
sudo apt-get install -y hostapd dnsmasq iptables dnsutils

二、网卡配置

在配置路由前,需要先配置一下树莓派的网卡。
编辑 /etc/network/interfaces,添加:

auto wlan0
allow-hotplug wlan0
iface wlan0 inet staticaddress 192.168.90.1netmask 255.255.255.0

配置WLAN区域:

sudo raspi-config

1 System Options -> S1 Wireless LAN
选择US。
然后点TAB,选择Cancel。
按照提示重启树莓派。

三、DHCP和DNS配置

配置/etc/dnsmasq.conf

sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
sudo nano /etc/dnsmasq.conf

配置文件的示例如下

# DHCP
interface=wlan0
bind-interfaces
dhcp-range=192.168.90.100,192.168.90.200,48h# DNS
no-hosts
clear-on-reload
dns-forward-max=1000
all-servers
server=8.8.8.8
server=208.67.222.222
server=4.2.2.1

配置完成后执行sudo service dnsmasq restart重启dnsmasq服务。
可选配置国内域名全部走国内DNS服务器解析。这里选择Github上的felixonmars/dnsmasq-china-list。
把下面的223.5.5.5修改为运营商dns服务器或国内的其他DNS服务器。
执行这一步会比较慢(Github访问看具体的网络)

sudo bash -c "curl -s https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf | sed 's/114.114.114.114/223.5.5.5/g' > /etc/dnsmasq.d/accelerated-domains.china.conf"

如果不需要更换(就用114的话)

sudo bash -c "curl -s https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf > /etc/dnsmasq.d/accelerated-domains.china.conf"

选择Github上的privacy-protection-tools/anti-AD禁广告

sudo bash -c "curl -s https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/adblock-for-dnsmasq.conf > /etc/dnsmasq.d/adblock-for-dnsmasq.conf"

或者

sudo bash -c "curl -s https://anti-ad.net/anti-ad-for-dnsmasq.conf > /etc/dnsmasq.d/adblock-for-dnsmasq.conf"

四、配置转发

IPV4转发
编辑文件/etc/sysctl.conf,去掉net.ipv4.ip_forward=1的注释。
在这里插入图片描述
执行sudo sysctl -p生效

配置NAT

sudo iptables -F
sudo iptables -X
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
sudo bash -c "iptables-save > /etc/iptables.rules"

编辑/etc/rc.local,添加:

sudo bash -c "iptables-restore < /etc/iptables.rules"

五、配置hostapd

编辑配置文件/etc/hostapd/hostapd.conf
这里提供一个配置5G WIFI(802.11ac)的模板。

# 网卡,一般就是wlan0不用修改,除非使用了外接的无线网卡。
interface=wlan0
# 不用修改
driver=nl80211
# 5G
hw_mode=a
# 启用 802.11n
ieee80211n=1
# 启用 802.11ac
ieee80211ac=1
# 启用 802.11d
ieee80211d=1
# 启用 802.11h
ieee80211h=1
# 其他的国家代码似乎会出错
country_code=US
# (Wi-Fi MultiMedia) 多媒体优化,优先传输时间敏感型数据
wmm_enabled=1
# 信道。可选[36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165]
channel=149
# (high-throughput 高吞吐量) 802.11n的带宽扩展技术
require_ht=1
# (very high throughput)   802.11ac的带宽扩展技术
require_vht=1
# 工作带宽 40MHz
vht_oper_chwidth=1
# channel+6 
vht_oper_centr_freq_seg0_idx=155
# 查看本小节后面的说明(硬件支持)
ht_capab=
# 查看本小节后面的说明(硬件支持)
vht_capab=
# 认证方式:WPA2-PSK
wpa=2
wpa_key_mgmt=WPA-PSK
# 加密方式:CCMP
rsn_pairwise=CCMP
# WIFI信息(根据自己的需求修改)
# wifi名称(就是搜索WIFI时显示的名字)
ssid=RASPI-WIFI
# wifi密码(就是连接WIFI时输入的密码)(必须8位以上,也就是最少输8个字母或数字)
wpa_passphrase=12345678

上面的配置中,ht_capabvht_capab的内容与硬件支持密切相关。
实在看不懂ht_capab和vht_capab配置的也可以一个一个的添加、测试,测试通过则保留,不通过则删除。
我们需要执行下面代码查看硬件的支持情况:

iw phy phy0 info

找到Capabilities,如下图所示:
在这里插入图片描述
根据系统返回的信息,对照下面的ht_capab选项进行配置。(没有翻译是因为方便对照着系统的网卡信息进行配置)

[LDPC]LDPC coding capability
[HT40-][HT40+][HT40-] = both 20 MHz and 40 MHz with secondary channel below the primary channel;[HT40+] = both 20 MHz and 40 MHz with secondary channel above the primary channel;(20 MHz only if neither is set)
[SHORT-GI-20]Short GI for 20 MHz
[SHORT-GI-40]Short GI for 40 MHz
[TX-STBC]Tx STBC
[RX-STBC1][RX-STBC12][RX-STBC123]Rx STBC
[DELAYED-BA]HT-delayed Block Ack
[MAX-AMSDU-7935]Maximum A-MSDU length (3839 octets if not set)
[DSSS_CCK-40]DSSS/CCK Mode in 40 MHz
[40-INTOLERANT]40 MHz intolerant
[LSIG-TXOP-PROT]L-SIG TXOP protection support

举例:比如说看到了红框里的 RX HT40 SGI,对照关键词,就可以填上[SHORT-GI-40](SHORT-GI简写SGI)。看到了红框里的 No RX STBC,关键词No,没有,所以就不添加[RX-STBCxxx](添加了测试时它就会报错)。

根据图示硬件信息和选项,我的ht_capab配置为:

ht_capab=[HT40-][HT40+][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40]

我同时配置了[HT40-][HT40+]并没有发生冲突,可能是他自动选择了一个。如果有冲突,看信道情况删除一个。配置了HT40后,2.4G和5G都只有部分信道可用。

回到上面的系统信息,找到VHT Capabilities,如下图所示:
在这里插入图片描述

对照下面的vht_capab选项进行配置。

[MAX-MPDU-3895][MAX-MPDU-7991][MAX-MPDU-11454]Indicates maximum MPDU length
[VHT160][VHT160-80PLUS80]Indicates supported Channel widths
[RXLDPC]Rx LDPC coding capability.
[SHORT-GI-80]Short GI for 80 MHz
[SHORT-GI-160]Short GI for 160 MHz
[TX-STBC-2BY1]Tx STBC
[RX-STBC-1][RX-STBC-12][RX-STBC-123][RX-STBC-1234]Rx STBC: 
[SU-BEAMFORMER]SU Beamformer Capable
[SU-BEAMFORMEE]SU Beamformee Capable
[BF-ANTENNA-2][BF-ANTENNA-3][BF-ANTENNA-4]Compressed Steering Number of Beamformer Antennas SupportedIf SU beamformer capable, set to maximum value minus 1
[SOUNDING-DIMENSION-2][SOUNDING-DIMENSION-3][SOUNDING-DIMENSION-4]Number of Sounding Dimensions
[MU-BEAMFORMER]MU Beamformer Capable
[VHT-TXOP-PS]VHT TXOP PS
[HTC-VHT]+HTC-VHT CapableIndicates whether or not the STA supports receiving a VHT variant HT Control field.
[MAX-A-MPDU-LEN-EXP0][MAX-A-MPDU-LEN-EXP7]Maximum A-MPDU Length Exponent
[VHT-LINK-ADAPT2][VHT-LINK-ADAPT3]VHT Link Adaptation Capable
[RX-ANTENNA-PATTERN]Rx Antenna Pattern Consistency
[TX-ANTENNA-PATTERN]Tx Antenna Pattern Consistency

根据图示硬件信息和选项,我的vht_capab配置为:

vht_capab=[MAX-MPDU-3895][SHORT-GI-80][SU-BEAMFORMEE]

验证配置是否正确,执行下面的命令。

sudo hostapd /etc/hostapd/hostapd.conf

如果没有出错,你会看到AP-ENABLED字样。
这时,你可以在Windows系统连接wifi后在cmd里执行:

netsh wlan show interfaces

这时就能看到,已经成功开启了5G的热点。
在这里插入图片描述
至此已经成功把树莓派配置成无线路由器了,用手机连接看一下,效果也很OK。
在这里插入图片描述

这篇关于畅玩树莓派4B(二)树莓派搭建无线路由器(支持5GWIFI)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/210587

相关文章

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

树莓派启动python的实现方法

《树莓派启动python的实现方法》本文主要介绍了树莓派启动python的实现方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、RASPBerry系统设置二、使用sandroidsh连接上开发板Raspberry Pi三、运

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

Mycat搭建分库分表方式

《Mycat搭建分库分表方式》文章介绍了如何使用分库分表架构来解决单表数据量过大带来的性能和存储容量限制的问题,通过在一对主从复制节点上配置数据源,并使用分片算法将数据分配到不同的数据库表中,可以有效... 目录分库分表解决的问题分库分表架构添加数据验证结果 总结分库分表解决的问题单表数据量过大带来的性能

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专

无线路由器哪个品牌好用信号强? 口碑最好的三个路由器大比拼

《无线路由器哪个品牌好用信号强?口碑最好的三个路由器大比拼》不同品牌在信号覆盖、稳定性和易用性等方面各有特色,如何在众多选择中找到最适合自己的那款无线路由器呢?今天推荐三款路由器让你的网速起飞... 今天我们来聊聊那些让网速飞起来的路由器。在这个信息爆炸的时代,一个好路由器简直就是家庭网编程络的心脏。无论你

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE