WIFI
快速使用
切换到超级用户模式:
sudo su扫描WIFI:
nmcli dev wifi连接到WIFI网络(“wifi_name”和“wifi_password”需要替换为您的实际 WiFi 的 SSID 和密码。):
nmcli dev wifi connect "wifi_name" password "wifi_password"显示“ successfully”就成功连接无线网络了,主板下次开机会自动连接到您指定的 WiFi。
root@linaro-alip:/home/linaro# nmcli dev wifi connect test password 123456789
Device 'wlan0' successfully activated with 'bd88cdf5-2c04-406a-b4b6-1caaa0b1bf6c'.
root@linaro-alip:/home/linaro#
1. Linux网络接口命名
在Linux发行版中,Debian采用的是"Predictable Network Interface Names"(可预测的网络接口命名)方案来命名网络接口。这种命名方案旨在提供一种一致和可预测的方式来标识和引用系统中的网络接口,以取代传统的非规则命名方式。它基于接口的属性、硬件位置和其他标识符来确定命名。根据"Predictable Network Interface Names"方案,网络接口的命名策略包括以下几种:
- 如果 Firmware 或者 BIOS 提供的板载设备的索引号可用就用此命名. 例如 eno1.
- 如果 Firmware 或者 BIOS 提供的 PCI-E 扩展插槽索引号可用就用此命名. 例如 ens1.
- 如果硬件接口的物理或者位置信息可用就用此命名. 例如 enp2s0.
- 如果网络接口的 MAC 地址可用就用此命名. 例如 enx525400d5e0fb
- 传统的内核原生命名方式. 例如 eth0.
Consistent Network Device Naming(一致的网络设备命名)是Linux中用于无线网络接口命名的规范。它旨在提供一致、可预测和稳定的命名方式,以减少系统重启或硬件更改时可能引起的接口命名变化。·在一致的网络设备命名规范中,无线网络接口的命名通常包含以下信息:
接口类型:命名以"wl"作为前缀表示无线网络接口。
设备物理位置或拓扑关系:使用一个数字作为标识符,例如"0",来表示无线网接口在系统中的位置或顺序。在默认情况下,第一个检测到的无线网接口将被命名为"wlan0",第二个为"wlan1",依此类推。
接口所在总线和设备的物理位置:使用一系列的字符和数字来表示接口所连接的总线和设备的物理位置。其中,以下字符和数字具有特定的含义:
w: 代表无线网络接口。l: 代表内核中的网络设备(Linux)。p: 代表PCI总线。s: 代表槽口(slot)。- 数字: 代表总线和槽口的编号。
例如,命名为"wlp3s0"的接口表示连接在PCI总线上第3个槽口的无线网络接口。
2. 使用 udev 规则分配用户定义的网络接口名称
显示所有网络接口及其 MAC 地址:
linaro@linaro-alip:~$ sudo ip link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 1a:7a:d7:64:5d:56 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DORMANT group default qlen 1000
link/ether b8:2d:28:43:ad:b0 brd ff:ff:ff:ff:ff:ff使用以下内容创建文件 /etc/udev/rules.d/70-custom-ifnames.rules:
SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="1a:7a:d7:64:5d:56",ATTR{type}=="1",NAME="eth0"
SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="b8:2d:28:43:ad:b0",ATTR{type}=="1",NAME="eth1"重启设备:
sudo reboot验证每个 MAC 地址的接口名称是否与规则文件的 NAME 参数中设置的值相匹配:
linaro@linaro-alip:~$ sudo ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: RJ-45: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 1a:7a:d7:64:5d:56 brd ff:ff:ff:ff:ff:ff
3: WIFI: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DORMANT group default qlen 1000
link/ether b8:2d:28:43:ad:b0 brd ff:ff:ff:ff:ff:ff
3. Network Manager 简介
在上手教程中,我们学习了如何使用 nmcli 连接WiFi。本节我们将详细介绍 nmcli 的用法。
Network Manager Command-Line Interface(nmcli)是一个命令行工具,用于在 Linux 和 Unix 系统中管理网络连接。它是 Network Manager 的命令行前端,允许用户通过终端或 Shell 脚本进行网络配置和管理。nmcli可以用于创建、显示、编辑、删除、激活和停用网络连接,同时也可以控制和显示网络设备的状态。
使用 --help 查看nmcli命令组成:
linaro@linaro-alip:~$ nmcli --help
Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }
OPTIONS
-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] <field1,field2,...>|all|common specify fields to output
-g[et-values] <field1,field2,...>|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] <seconds> set timeout waiting for finishing operations
-v[ersion] show program version
-h[elp] print this help
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常用命令
命令 作用 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) wlan0 删除指定连接 nmcli d status 显示所有网络接口设备的状态 nmcli d show 查看设备详细信息 nmcli d sh wlan0 显示某一特定设备的详细信息 nmcli d connect(c) wlan0 连接设备 nmcli d disconnect(c) wlan0 断开设备 - 其中 c 为 connection 的简写,d 为 device 的简写。
3.1 使用 nmcli 更改主机名
查看当前主机名:
linaro@linaro-alip:~$ sudo nmcli general hostname
linaro-alip设置新主机名并重启开发板:
linaro@linaro-alip:~$ sudo nmcli general hostname luckfox
linaro@linaro-alip:~$ sudo rboot如果出现 sudo: unable to resolve host luckfox: Name or service not known 只需修改/ect/hosts 中主机名即可。
linaro@luckfox:~$ sudo vim /etc/hosts
#将 127.0.1.1 后面的主机名修改成luckfox即可
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 luckfox
3.2 使用 hostnamectl 更改主机名
查看当前主机名:
linaro@linaro-alip:~$ sudo hostnamectl status --static
linaro-alip设置新主机名并重启开发板:
linaro@linaro-alip:~$ sudo nmcli hostnamectl set-hostname luckfox
linaro@linaro-alip:~$ sudo rboot
3.3 配置无线网络静态 IP(nmcli)
查看设备的IP地址和默认网关等信息:
linaro@linaro-alip:~$ sudo ip route list
default via 192.168.11.1 dev eth0 proto dhcp metric 100
default via 192.168.11.1 dev wlan0 proto dhcp metric 600
192.168.8.0/22 dev eth0 proto kernel scope link src 192.168.10.63 metric 100
192.168.8.0/22 dev wlan0 proto kernel scope link src 192.168.10.69 metric 600列出所有已配置的网络连接及其相关属性。
linaro@linaro-alip:~$ sudo nmcli c show
NAME UUID TYPE DEVICE
JSBPI-5G 2d54e176-7559-49c8-bc90-1e5e2058a523 wifi wlan0
luckfox 2b38ada1-8c51-3b21-bdba-59f85ad1a14c ethernet eth0设置静态 IPv4 地址、网络掩码、默认网关、DNS 服务器:
sudo nmcli connection modify JSBPI-5G ipv4.address 192.168.10.79/24 #设置IP地址和子网掩码
sudo nmcli connection modify JSBPI-5G ipv4.method manual #设置静态配置,默认是 auto
sudo nmcli connection modify JSBPI-5G ipv4.gateway 192.168.11.1 #设置默认网关
sudo nmcli connection modify JSBPI-5G ipv4.dns 114.114.114.114,8.8.8.8 #设置DNS
sudo nmcli connection modify JSBPI-5G ipv6.method ignore #禁用IPv6
sudo nmcli connection modify JSBPI-5G connection.autoconnect yes
3.4 配置无线网络静态 IP(nmtui)
您可以使用光标键进行导航,在选项上按Enter进行选择,按Esc键取消并返回,使用Space来选择定选项。
如果您不知道要在连接中使用的网络设备名称,显示可用的设备:
linaro@linaro-alip:~$ sudo nmcli device status
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected Wired connection 1
wlan0 wifi disconnected --
lo loopback unmanaged --启动 nmtui:
sudo nmtui选择 Edit a connection ,并按Enter。

按 Add 按钮。

从网络类型列表中选择
Wi-Fi,然后按 Enter。

为要创建的 NetworkManager 配置文件输入一个名称,可以更容易识别配置集的用途。
在 Device 中输入网络设备名称。
在 SSID 中输入 Wi-Fi 网络的名称,即服务集标识符(SSID)。
将 Mode 设为默认值 Client。
选择 Security ,按 Enter,然后从列表中设置网络的验证类型。
填写无线网络的密码。
如果 Wi-Fi 网络需要静态 IP 地址:
按协议旁边的 Automatic 按钮,然后从显示的列表中选择 Manual
按您要配置的协议旁边的 Show 按钮,来显示其他字段并填写它们
依次填入设置静态 IPv4 地址、网络掩码、默认网关、DNS 服务器
按
OK按钮来创建并自动激活新连接。

按 Back 按钮返回到主菜单。
选择 Quit,然后按 Enter 来关闭 nmtui 应用程序。