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