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

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

树莓派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 static
      address 192.168.90.1
      netmask 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
log-queries
log-facility=/home/pi/logs/dnsmasq.log
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服务。
可通过sudo tail -f /home/pi/logs/dnsmasq.log查看dns解析信息。
可选配置国内域名全部走国内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 Supported
	If 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 Capable
	Indicates 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。
在这里插入图片描述

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羟基氟化宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值