目录
-
- [1. 配置NetworkManager接管网络(选)](#1. 配置NetworkManager接管网络(选))
-
- [1.1. NetworkManager工具](#1.1. NetworkManager工具)
- [1.2. 自带netplan管理网络](#1.2. 自带netplan管理网络)
- [1.2. 自带ifupdown管理网络](#1.2. 自带ifupdown管理网络)
- [1.3. 测试nmcli管理网络](#1.3. 测试nmcli管理网络)
- [2. nmcli有线网络配置(参数均可使用缩写)](#2. nmcli有线网络配置(参数均可使用缩写))
-
- [2.1. 使用nmcli添加一个网卡并配置静态ip地址](#2.1. 使用nmcli添加一个网卡并配置静态ip地址)
- [2.2. 查看网卡信息](#2.2. 查看网卡信息)
- [2.3. 激活/关闭(连接/断开)网卡](#2.3. 激活/关闭(连接/断开)网卡)
- [2.4. 使用nmcli修改一个网卡的地址](#2.4. 使用nmcli修改一个网卡的地址)
- [2.5. 刷新网卡并查看信息](#2.5. 刷新网卡并查看信息)
- [2.6. 使用nmcli添加一个网卡配置使其获取动态ip地址](#2.6. 使用nmcli添加一个网卡配置使其获取动态ip地址)
- [2.7. 使用nmcli将已有的动态网卡配置修改为静态网卡配置](#2.7. 使用nmcli将已有的动态网卡配置修改为静态网卡配置)
- [2.8. 使用nmcli将已有的静态网卡配置修改为动态网卡配置](#2.8. 使用nmcli将已有的静态网卡配置修改为动态网卡配置)
- [2.9. 使用nmcli删除一个网卡配置信息](#2.9. 使用nmcli删除一个网卡配置信息)
- [2.10. 使用nmcli为一张网卡配置多个ip地址(从地址)](#2.10. 使用nmcli为一张网卡配置多个ip地址(从地址))
- [2.11. 使用nmcli修改网卡设备的连接名称](#2.11. 使用nmcli修改网卡设备的连接名称)
- [3. nmcli无线网络配置(需要有无线网卡)](#3. nmcli无线网络配置(需要有无线网卡))
-
- [3.1. 打开/关闭无线网络开关](#3.1. 打开/关闭无线网络开关)
- [3.2. 查看无线网络开关状态:](#3.2. 查看无线网络开关状态:)
- [3.3. 扫描可用的无线网络](#3.3. 扫描可用的无线网络)
- [3.4. 连接到无线网络](#3.4. 连接到无线网络)
- [3.6. 查看连接状态](#3.6. 查看连接状态)
- 3.6.查看连接的详细信息
参考:
在Linux系统上使用nmcli命令配置各种网络(有线、无线、vlan、vxlan、路由、网桥等)
https://blog.csdn.net/2509_94005029/article/details/154648221
1. 配置NetworkManager接管网络(选)
1.1. NetworkManager工具
如果系统默认自带了NetworkManager工具就不用做此步,如果是后期手动安装的就需要配置接管网络
bash
# 安装Network-Manager并启动
[root@localhost ~]# apt install network-manager -y
[root@localhost ~]# systemctl restart NetworkManager
[root@localhost ~]# systemctl enable NetworkManager
配置NetworkManager接管网络
bash
# 语法
nmcli net <on/off>
# 示例
[root@localhost ~]# nmcli net on
1.2. 自带netplan管理网络
如果是netplan管理网络的系统(如ubuntu22.04)需要在netplan中指定NetworkManager接管网络:
bash
# 查看配置文件
[root@localhost ~]# ls /etc/netplan/
# 每个系统的文件名都不一样,我这里叫00-installer-config.yaml
[root@localhost ~]# vim /etc/netplan/00-installer-config.yam
# 在version下添加,注意开头对齐:
renderer: NetworkManager
# 保存退出
# 使配置应用到系统中
[root@localhost ~]# netplan apply

1.2. 自带ifupdown管理网络
如果是ifupdown管理网络的系统(如eve-ng或Ubuntu18.04)需要:
① 在NetworkManager配置中指定ifupdown也可管理网络,这样如果系统原先存在有网络连接,在NetworkManager接管后原网络连接依旧存在不改变:
bash
[root@localhost ~]# vim /etc/NetworkManager/NetworkManager.conf
# 修改以下内容:
managed=true
# 保存退出

② 创建.yaml文件并修改(如果原先存在有后缀为.yaml的文件,直接修改即可,没有的话再创建)
bash
[root@localhost ~]# vim /etc/netplan/interface.yaml
# 添加以下内容:
network:
version: 2
renderer: NetworkManager
# 保存退出
③ 暂时关闭系统网络服务后使得netplan配置在系统生效并重启NetworkManager服务
bash
[root@localhost ~]# systemctl stop systemd-networkd
[root@localhost ~]# netplan apply
[root@localhost ~]# systemctl restart NetworkManager
[root@localhost ~]# systemctl restart systemd-networkd
1.3. 测试nmcli管理网络
使用nmcli -p device查看设备状态
bash
[root@localhost ~]# nmcli -p device
============
设备状态
============
DEVICE TYPE STATE CONNECTION
--------------------------------------------------
ens32 ethernet 已连接 有线连接 1
lo loopback 未托管 --
2. nmcli有线网络配置(参数均可使用缩写)
2.1. 使用nmcli添加一个网卡并配置静态ip地址
语法:
bash
nmcli con add con-name <连接名> ifname <网卡名> type <连接类型> ipv4.method manual ipv4.addresses <ipv4地址> ipv4.gateway <ipv4网关地址> ipv4.dns <ipv4 dns服务器>
**注意:**如果想要添加两个dns地址应该用双引号" "将两个地址包起来,表示两个地址都是DNS地址
示例:
bash
[root@localhost ~]# nmcli con add con-name test ifname ens32 type ethernet ipv4.method manual ipv4.addresses 192.168.10.10/24 ipv4.gateway 192.168.10.2 ipv4.dns 192.168.10.2
连接 "test" (3ceeec8a-d92c-42dd-ae10-2f5478eda991) 已成功添加
此时静态地址就配置完成了,如果不进行指定则NetworkManager默认会在接口创建的时候自动开启该接口,当然我们也可以指定某个接口的打开和关闭状态
2.2. 查看网卡信息
bash
[root@localhost ~]# nmcli con show
NAME UUID TYPE DEVICE
test 3ceeec8a-d92c-42dd-ae10-2f5478eda991 ethernet ens32
有线连接 1 b640bf63-ac94-3547-be75-8fac06083304 ethernet --
2.3. 激活/关闭(连接/断开)网卡
语法:
bash
nmcli con {up/down} <连接名>
示例:
bash
[root@localhost ~]# nmcli con up test
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/2)
2.4. 使用nmcli修改一个网卡的地址
语法:
bash
nmcli con modify <连接名> ipv4.method manual ipv4.addresses <新的ipv4地址> ipv4.gateway <新的ipv4网关地址> ipv4.dns <dns服务器>
示例:
bash
[root@localhost ~]# nmcli con modify ens33 ipv4.method manual ipv4.addresses 192.168.10.20/24 ipv4.gateway 192.168.10.2 ipv4.dns 192.168.10.2
2.5. 刷新网卡并查看信息
bash
[root@localhost ~]# nmcli con up test
[root@localhost ~]# ip add
2.6. 使用nmcli添加一个网卡配置使其获取动态ip地址
语法:
bash
nmcli con add con-name <连接名> ifname <网卡名> type <连接类型> ipv4.method auto
示例:
bash
[root@localhost ~]# nmcli con add con-name test ifname ens32 type ethernet ipv4.method auto
nmcli con up test # 激活网卡
2.7. 使用nmcli将已有的动态网卡配置修改为静态网卡配置
语法:
bash
nmcli con modify <连接名> ipv4.method manual ipv4.address <IP地址/子网掩码> ipv4.gateway <网关> ipv4.dns <dns地址>
示例:
bash
[root@localhost ~]# nmcli con modify test ipv4.method manual ipv4.address 192.168.10.20/24 ipv4.gateway 192.168.10.2 ipv4.dns 192.168.10.2
nmcli con up test
2.8. 使用nmcli将已有的静态网卡配置修改为动态网卡配置
语法:
bash
nmcli con modify <连接名> ipv4.method auto
示例方法①:
bash
# 将已有的静态网卡配置修改为动态网卡配置
[root@localhost ~]# nmcli con modify test ipv4.method auto
[root@localhost ~]# nmcli con up test
# 将静态地址删除,否则使用ip add查看时会有两个地址出现
# 将test的静态地址设置为空,也就不存在了,只剩下了动态地址
[root@localhost ~]# nmcli connection modify test ipv4.addresses "" ipv4.gateway "" ipv4.dns ""
PS:需要先获取到dhcp地址才能删除原静态配置,否则会提示"ipv4.method=manual 不允许这个属性为空"
示例方法②:
bash
# 将原静态连接删除后直接添加新的动态地址配置
[root@localhost ~]# nmcli con del test
[root@localhost ~]# nmcli con add con-name test ifname ens32 type ethernet ipv4.method auto
2.9. 使用nmcli删除一个网卡配置信息
语法:
bash
nmcli con del <连接名>
示例:
bash
[root@localhost ~]# nmcli con del test
成功删除连接 "test" (3ceeec8a-d92c-42dd-ae10-2f5478eda991)
2.10. 使用nmcli为一张网卡配置多个ip地址(从地址)
首先需要先创建一个连接使其获得静态或动态ip地址才能在此基础上增加地址,这里不再讲述配置静态或动态地址的命令,直接进行增加地址的配置
语法:
bash
nmcli con modify <连接名> +ipv4.address <ipv4地址> ipv4.gateway <网关> ipv4.dns <dns地址>
示例:
bash
[root@localhost ~]# nmcli con modify ens32 +ipv4.address 192.168.10.160/24 ipv4.gateway 192.168.10.254 ipv4.dns 114.114.114.114
[root@localhost ~]# nmcli con up ens32
2.11. 使用nmcli修改网卡设备的连接名称
语法:
bash
nmcli con modify <原连接名或UUID值> connection.id <新连接名>
示例:
bash
# 先查看网卡设备的各项信息
[root@localhost ~]# nmcli con show
NAME UUID TYPE DEVICE
有线连接 1 b640bf63-ac94-3547-be75-8fac06083304 ethernet ens32
# 修改网卡设备的连接名称为ens32
[root@localhost ~]# nmcli con modify b640bf63-ac94-3547-be75-8fac06083304 connection.id ens32
# 再次查看网卡设备的各项信息,可以发现NAME这一栏的名称被修改了
[root@localhost ~]# nmcli con show
NAME UUID TYPE DEVICE
ens32 b640bf63-ac94-3547-be75-8fac06083304 ethernet ens32
3. nmcli无线网络配置(需要有无线网卡)
3.1. 打开/关闭无线网络开关
语法:
bash
nmcli radio all <on/off>
示例:
bash
[root@localhost ~]# nmcli radio all on
3.2. 查看无线网络开关状态:
语法:
bash
nmcli radio <all--默认>
示例:
bash
[root@localhost ~]# nmcli radio
WIFI-HW WIFI WWAN-HW WWAN
已启用 已启用 已启用 已启用
3.3. 扫描可用的无线网络
bash
# 扫描可用的无线网络,列出所有可用的无线网络及其详细信息。
[root@localhost ~]# nmcli device wifi list
3.4. 连接到无线网络
① 如果您知道无线网络的 SSID(网络名称)和密码,可以直接连接:
语法:
bash
nmcli dev wifi connect <SSID> password <network-password>
示例:
bash
[root@localhost ~]# nmcli device wifi con 李李密制十三香 password MySkillstree
设备 "wlx0013ef6f25bd" 成功以 "c2d01c8d-47e5-41ee-8a3c-171aaddf53a8" 激活。
② 如果您知道无线网络的 SSID(网络名称)但不想显示密码,可以加入-a 或 --ask参数,此参数会询问缺少的参数
语法:
bash
nmcli -a device wifi con <SSID>
示例:
bash
[root@localhost ~]# nmcli -a device wifi con 李李密制十三香
密码: ????????????
设备 "wlx0013ef6f25bd" 成功以 "afc44524-ba51-452b-ae51-21f2cd2b2f6f" 激活。
3.6. 查看连接状态
连接尝试后,可以检查连接状态:
bash
[root@localhost ~]# nmcli connection show
NAME UUID TYPE DEVICE
李李密制十三香 afc44524-ba51-452b-ae51-21f2cd2b2f6f wifi wlx0013ef6f25bd
3.6.查看连接的详细信息
语法:
bash
nmcli connection show <connetcion-name>
示例:
bash
[root@localhost ~]# nmcli connection show 李李密制十三香
