19. wifi¶
本章配套视频介绍:
《15-无线网卡连接WiFi和蓝牙》
https://www.bilibili.com/video/BV1Y24y1A7xH/
LubanCat-RK3562/RK3566/RK3568系列板卡只有以下型号板载wifi芯片
板载RTL8821cu:
LubanCat-Zero-W
LubanCat-1N
LubanCat-1金手指、btb底板
板载BL-M8189FS6:
LubanCat-1H
LubanCat-2H
如果想使用无线功能,也可以外接无线网卡来支持,
板卡上预支持了多款无线网卡,可以查看下面的支持列表
19.1. LubanCat无线网卡支持列表¶
LubanCat-RK356x系列板卡支持 MINI PCI-E 接口及 USB接口 的无线网卡
19.1.1. MINI PCI-E¶
网卡型号
接口
工作频率
理论最高速率
支持协议
AP模式
蓝牙
MT7601U
USB
2.4GHz
150Mbps
b/g/n
不支持
无
RTL8811CU
USB
5/2.4GHz
433Mbps
b/g/n/ac
支持
无
RTL8821CU
USB
5/2.4GHz
433Mbps
b/g/n/ac
支持
BT4.2
BCM943225
PCIE
2.4GHz
300Mbps
b/g/n
不支持
BT3.0
RTL8822CE
PCIE
5/2.4GHz
866Mbps
b/g/n/ac
支持
BT5.0
RTL8852BE
PCIE
5/2.4GHz
1200Mbps
b/g/n/ac/ax
支持
BT5.2
RTL8821CE
PCIE
5/2.4GHz
433Mbps
b/g/n/ac
支持
BT4.2
RTL8821AE
PCIE
5/2.4GHz
433Mbps
b/g/n/ac
AP模式速率低
BT4.2
RTL8723BE
PCIE
2.4GHz
150Mbps
b/g/n
AP模式速率低
BT4.0
RTL8188CE
PCIE
2.4GHz
150Mbps
b/g/n
支持
无
RTL8188EE
PCIE
2.4GHz
150Mbps
b/g/n
支持
无
Intel5100
PCIE
5/2.4GHz
300Mbps
a/g/n
不支持
无
Intel5300
PCIE
5/2.4GHz
450Mbps
a/g/n
不支持
无
Intel6150
PCIE
2.4GHz
150Mbps
a/g/n
支持
无
Intel6200
PCIE
5/2.4GHz
300Mbps
a/g/n
不支持
无
Intel6300
PCIE
5/2.4GHz
450Mbps
a/g/n
不支持
无
Intel7265
PCIE
5/2.4GHz
866Mbps
b/g/n/ac
仅支持2.4GHz
BT4.2
Intel8260
PCIE
5/2.4GHz
866Mbps
b/g/n/ac
仅支持2.4GHz
BT4.2
购买链接(仅供参考):
(野火)RTL8188EE、8822CE、8852BE
下面为iperf3实测性能
Ubuntu/debian¶
型号
2.4G连接
5G连接
2.4G热点
5G热点
rtl8822ce
发98/收102 Mbps
发384/收355 Mbps
发108/收71.9 Mbps
发101/收106 Mbps
rtl8821ce
发93.1/收81.5 Mbps
发265/收210 Mbps
发43/收46.3 Mbps
发51.1/收50.3 Mbps
rtl8821ae
发69.9/收72.5 Mbps
发241/收153 Mbps
发0.613/收7.7 Mbps
发4.6/收37.8 Mbps
rtl8723be
发86.5/收88.1 Mbps
不支持
发7.52/0.7 Mbps
不支持
rtl8188ce
发44.6/收57.2 Mbps
不支持
发20.8/18.6 Mbps
不支持
rtl8188ee
发84/收50 Mbps
不支持
发26.1/21.3 Mbps
不支持
intel5100
发20/收36.6 Mbps
发32/收49.9 Mbps
不支持
不支持
intel5300
发25.3/收27.8 Mbps
发35.2/收52.3 Mbps
不支持
不支持
intel6150
发40.4/收41.5 Mbps
不支持
发7.34/收12.9 Mbps
不支持
intel6200
发24.1/收40.2 Mbps
发35.7/收62.9 Mbps
不支持
不支持
intel6300
发24.1/收34.9 Mbps
发35.9/收59 Mbps
不支持
不支持
intel7265
发80/收78 Mbps
发404/收308 Mbps
发56.9/收69.8 Mbps
不支持
intel8260
发73.2/收81.3 Mbps
发410/收299 Mbps
发61/收55.9 Mbps
不支持
19.1.2. USB¶
USB无线网卡不能带flash,带flash的不能正常使用
购买链接(仅供参考):
(淘宝)RTL8821CU
下面为iperf3实测性能
Ubuntu/debian¶
型号
2.4G连接
5G连接
2.4G热点
5G热点
蓝牙
rtl8821cu
50Mbps
120Mbps
如果需要适配其他型号的网卡,需要设置调整内核驱动或者移植网卡驱动
19.2. pcie网卡连接图¶
具体的连接方法可以前往 《MINI PCI-E接口》 查看
LubanCat-1H接wifi蓝牙无线网卡
LubanCat-2接wifi蓝牙无线网卡+SSD
LubanCat-2N接wifi蓝牙无线网卡
19.3. 桌面系统配置wifi¶
由于Ubuntu和debian系统的网络设置方法几乎一模一样,这里仅演示debain系统的wifi配置
第一步:点击右上角的网络管理
第二步:选择要连接的wifi
第三步:输入wifi密码
第四步:点击连接
下图为连接成功
19.4. 命令行连接wifi路由器¶
命令行配置wifi的方法有很多,下面介绍几种常用的wifi工具
nmtui 图形化的NetworkManager网络配置
nmcli(NetworkManager Command Line) 系统官方使用的工具 – 桌面的wifi控制由该工具提供,
特点:简单好用
wpa_cli(开源社区的网络工具)比较多人使用的wifi工具
特点:资料多,配置后简单快捷
19.4.1. nmtui¶
进入图形配置
1sudo nmtui
移动键盘方向键移动到 Active a connection 按 Enter键 进入wifi设置
然后移动方向键到你要连接的wifi,按 Enter键
如果是连接未连接的有密码的热点则进入输入密码界面
如果是没有密码或者已连接的热点则连接热点或者取消连接热点
注解
使用有些网卡(如rtl8821cu),系统会生成两个网络接入点p2p0和wlan0,
wifi使用哪个节点连接都可以,使用p2p0会方便设置,
使用wlan0会比较符合广大网友们的习惯
第一次连接有密码的热点时,如图下
输入密码后,就可以看到wifi已连接
如果想要断开wifi,在已连接的状态按下 Enter键 就可以断开连接
19.4.2. nmcli¶
1
2
3
4
5
6
7
8
9
10
11
12# 列出可用的wifi接入点, list可以省略
sudo nmcli dev wifi list
# 连接热点PPP, 连接成功后,就会自动生成配置文件,以后要再连接,可以使用nmcli connectio up mySSID命令了
sudo nmcli dev wifi connect PPP password '00000000' ifname wlan0
#如果连接成功后,下次想再连接,就可以使用
sudo nmcli dev wifi connect PPP
#更多nmcli的命令可以使用来查看
nmcli help
nmcli OBJECT help
nmcli命令组成
nmcli [OPTIONS] OBJECT { COMMAND | help }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29OPTIONS
-o[verview] overview mode (hide default values)
-t[erse] terse output
-p[retty] pretty output
-m[ode] tabular|multiline output mode
-c[olors] auto|yes|no whether to use colors in output
-f[ields]
-g[et-values]
-e[scape] yes|no escape columns separators in values
-a[sk] ask for missing parameters
-s[how-secrets] allow displaying passwords
-w[ait]
-v[ersion] show program version
-h[elp] print this help
#OBJECT可以用缩写表示
OBJECT
g[eneral] NetworkManager's general status and operations
n[etworking] overall networking control
r[adio] NetworkManager radio switches
c[onnection] NetworkManager's connections
d[evice] devices managed by NetworkManager
a[gent] NetworkManager secret agent or polkit agent
m[onitor] monitor NetworkManager changes
Command 可以通过 nmcli OBJECT help 来获得
下列列举部分常用的命令
nmcli常用命令¶
命令
作用
nmcli n
显示 NetworkManager 是否接管网络设置
nmcli n on
设定 NetworkManager 接管网络
nmcli n off
取消 NetworkManager 接管网络
nmcli c status
查看连接简略信息
nmcli c show
查看连接详细信息
nmcli c up/down ifname
启动/关闭指定连接(ifname 网卡)
nmcli c show(s) ifname
查看ifname网卡的连接详细信息
nmcli c delete(de) ens33
删除指定连接
nmcli d status
查看设备简略信息
nmcli d show
查看设备详细信息
nmcli d sh ens33
显示某一特定设备的详细信息
nmcli d connect(c) ens33
连接设备
nmcli d disconnect(c) ens33
断开设备
1
2
3
4
5
6
7#先列出连接的配置,eth0现在连接的是Wired connection 1
root@lubancat:~# nmcli c s
NAME UUID TYPE DEVICE
Wired connection 1 35ecb023-3194-3edb-bf90-4198f82329a8 ethernet eth0
Wired connection 2 45f86cca-f8df-376e-8aad-37e10d2a65ce ethernet --
aEBF_Guest fb1d506e-6dc7-4c5b-a4ce-339f3349d26d wifi wlan0
然后对Wired connection 1进行修改
1
2
3
4
5
6
7
8
9
10
11
12
13#静态ip设置
sudo nmcli c modify 'aEBF_Guest' [ + | - ]选项 选项值 # 或
sudo nmcli c m 'aEBF_Guest' ipv4.address 192.168.103.172/24 # 修改 IP 地址和子网掩码
sudo nmcli c m 'aEBF_Guest' ipv4.method manual # 修改为静态配置,默认是 auto
sudo nmcli c m 'aEBF_Guest' ipv4.gateway 192.168.103.254 # 修改默认网关
sudo nmcli c m 'aEBF_Guest' ipv4.dns 8.8.8.8 # 修改 DNS
sudo nmcli c m 'aEBF_Guest' +ipv4.dns 114.114.114.114 # 添加一个 DNS
sudo nmcli c m 'aEBF_Guest' ipv6.method disabled # 将 IPv6 禁用
sudo nmcli c m 'aEBF_Guest' connection.autoconnect yes # 开机启动
注意,必须先修改 ipv4.address,然后才能修改 ipv4.method!
用空引号""代替选项的值,可将选项设回默认值(以 ipv4.method 为例):
详细的文档连接
《nmcli命令用法是什么》
《Linux中nmcli命令详解》
19.4.3. wpa_cli¶
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39#使能wifi
wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
#进入专用控制台,默认选择wlan0
wpa_cli
#添加网络,获取网络id号
add_network
#假设id号为2
#设置需要连接的wifi名称
set_network 2 ssid "PPP"
#设置wifi的安全性:wpa
set_network 2 key_mgmt WPA-PSK
#设置需要连接的密码
set_network 2 psk "88888888"
#使能wifi
enable_network 2
#保存wifi信息
save_config
#列出所有在列表里的wifi以及序号
list_networks
#根据序号选择你要连接的wifi
select_network 2
#查看连接的WiFi
status
#退出
quit
#自动获取IP
dhclient wlan0
wpa_cli其他用法¶
语句
功能
举例
quit
退出模式
quit
scan
扫描wifi
scan
scan_results
查看扫描结果
scan_results
new_password
更换新密码
new_password 1 “密码”
disale_network
禁止WiFi
disale_network 2
list_networks
列出所有在列表里的wifi以及序号
list_networks
select_network
根据序号选择你要连接的wifi
select_network 2
remove_network
移除你不想要的wifi
remove_network 2
disconnect
停止wifi的连接
disconnect
reconnect
重新连接wifi
reconnect
help
查看更多的选项
help
当然也可以直接修改配置文件
/etc/wpa_supplicant/wpa_supplicant.conf
可以按照格式添加,然后在使用wpa_cli工具进行配置
1
2
3
4
5
6
7
8ctrl_interface=/var/run/wpa_supplicant
update_config=1
network={
ssid="PPP"
psk="88888888"
key_mgmt=WPA-PSK
}
19.4.4. 开启无线热点¶
19.4.4.1. nmcli¶
(NetworkManager Command Line)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23热点-72Mbps WIFI4
#使用该方法只能创建出WIFI4的热点,理论速率可达72Mbps,实测速率在50Mbps,换算大约6MB/s
#5g
sudo nmcli device wifi hotspot ifname wlan0 con-name AP-5G ssid LubanCat-AP-5G band a channel 36 password 88888888
#2.4g
sudo nmcli device wifi hotspot ifname wlan0 con-name AP-2.4G ssid LubanCat-AP-2.4G band bg channel 6 password 88888888
#band 无线协议 bg-2.4G a-5G
#channel 信道 可百度科普修改使用,可以下载 “网速管家”wifi分析中查看
#无线名字 - ssid
#密码 - password
#con-name 连接名,如果首次创建成功后可以直接使用
sudo nmcli device wifi hotspot
#查看热点信息以及密码
sudo nmcli device wifi show-password
#如果需要连接外网,即设备可以通过wifi连接到互联网上,就需要设置转发(假设网口能够连接互联网)
echo 1 > /proc/sys/net/ipv4/ip_forward
#如果eth1联网的话,可以把eth0换成eth1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
19.4.4.2. hostapd¶
使用该方法可能稳定性会比较差,有时可能会断连的情况
下面是两个频率的wifi热点理论速率
- 2.4G - 72Mbps
- 5G - 150Mps(802.11.n)单天线最大-150Mps
实测速率
2.4G - 50Mbps 大约6MB/s
5G - 120Mbps 大约15MB/s
19.4.4.2.1. 安装依赖¶
1
2#下载工具hostapd 和 dhcpd
sudo apt install hostapd isc-dhcp-server
19.4.4.2.2. 创建配置文件¶
2.4G详细的配置 2G.conf
5G详细的配置 5G.conf
hostapd配置里每个详细数据的详解 hostapd.conf
修改 /etc/hostapd/hostapd.conf 文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41sudo vi /etc/hostapd/hostapd.conf
#简化版(5G)
interface=wlan0
ctrl_interface=/var/run/hostapd
ssid=LuBanCat-5G
channel=36
wpa=2
wpa_passphrase=password
driver=nl80211
beacon_int=100
hw_mode=a
ieee80211n=1
wme_enabled=1
ht_capab=[SHORT-GI-20][SHORT-GI-40][HT40+]
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
max_num_sta=8
wpa_group_rekey=86400
#简化版(2.4G)
interface=wlan0
ctrl_interface=/var/run/hostapd
ssid=LuBanCat-2.4G
channel=6
wpa=2
wpa_passphrase=password
driver=nl80211
beacon_int=100
hw_mode=g
ieee80211n=1
wme_enabled=1
ht_capab=[SHORT-GI-20][SHORT-GI-40][HT40+]
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
max_num_sta=8
wpa_group_rekey=86400
修改 /etc/dhcp/dhcpd.conf
1
2
3
4
5
6
7
8
9
10#在末尾加入以下内容:
subnet 192.168.0.0 netmask 255.255.255.0
{
range 192.168.0.2 192.168.0.10;
option routers 192.168.0.1;
option domain-name-servers 192.168.0.1,114.114.114.114,8.8.8.8;
}
其中114.114.114.114是全国通用DNS地址,8.8.8.8则是全球通用DNS地址
19.4.4.2.3. 设置脚本¶
用于关闭sta模式,打开ap模式以及关闭ap模式,打开sta模式
关闭sta模式,打开ap模式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#创建脚本
vi ap-start.sh
#给予权限
sudo chmod +x ap-start.sh
#!/bin/bash
bash -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
# 开启防火墙NAT转发(如果本机使用eth1上网,则把eth0改为eth1)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# 关闭NetworkManager对无线网卡的控制
nmcli d disconnect wlan0
# 设置并启动无线网卡
ifconfig wlan0 192.168.0.1 netmask 255.255.255.0
# 解锁无线设备,可以用rfkill list查看解锁结果.
rfkill unblock wlan
# 睡眠6秒,待rfkill解锁生效
sleep 6s
# 启动dhcpd和hostapd,如果hostapd无法启动请查看日志hostapd.log,查看这两个进程ps -ef|egrep "dhcpd|hostapd"
nohup hostapd /etc/hostapd/hostapd.conf >/home/cat/hostapd.log 2>&1 &
dhcpd wlan0 -pf /var/run/dhcpd.pid
ps -ef|head -n1 && ps -ef|egrep "dhcpd|hostapd"
关闭ap模式,打开sta模式
1
2
3
4
5
6
7
8
9
10
11#创建脚本
vi ap-stop.sh
#给予权限
sudo chmod +x ap-stop.sh
#!/bin/bash
killall hostapd dhcpd
bash -c "echo 0 > /proc/sys/net/ipv4/ip_forward"
nmcli d connect wlan0
nmcli d disconnect wlan0
nmcli d connect wlan0
当我们打开ap模式时,需要有3个进程,不然会开启失败
如果失败可以使用
1
2cat /home/cat/hostapd.log
#查看失败的原因
可以根据失败原因到百度上找出问题