幻世域-公会争霸活动网


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] |all|common specify fields to output

-g[et-values] |all|common shortcut for -m tabular -t -f

-e[scape] yes|no escape columns separators in values

-a[sk] ask for missing parameters

-s[how-secrets] allow displaying passwords

-w[ait] set timeout waiting for finishing operations

-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

#查看失败的原因

可以根据失败原因到百度上找出问题