畅玩树莓派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)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/z454280475/article/details/119035321
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/210587

相关文章

Spring Cloud GateWay搭建全过程

《SpringCloudGateWay搭建全过程》:本文主要介绍SpringCloudGateWay搭建全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Spring Cloud GateWay搭建1.搭建注册中心1.1添加依赖1.2 配置文件及启动类1.3 测

自研四振子全向增益天线! 中兴问天BE6800Pro+路由器拆机和详细评测

《自研四振子全向增益天线!中兴问天BE6800Pro+路由器拆机和详细评测》中兴问天BE6800Pro+路由器已经上市,新品配备自研四振子全向增益天线,售价399元,国补到手339.15元,下面我们... 中兴问天BE6800Pro+路由器自上市以来,凭借其“旗舰性能,中端价格”的定位,以及搭载三颗自研芯片

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

Gradle下如何搭建SpringCloud分布式环境

《Gradle下如何搭建SpringCloud分布式环境》:本文主要介绍Gradle下如何搭建SpringCloud分布式环境问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Gradle下搭建SpringCloud分布式环境1.idea配置好gradle2.创建一个空的gr

Linux搭建单机MySQL8.0.26版本的操作方法

《Linux搭建单机MySQL8.0.26版本的操作方法》:本文主要介绍Linux搭建单机MySQL8.0.26版本的操作方法,本文通过图文并茂的形式给大家讲解的非常详细,感兴趣的朋友一起看看吧... 目录概述环境信息数据库服务安装步骤下载前置依赖服务下载方式一:进入官网下载,并上传到宿主机中,适合离线环境

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优