[Linux系列]nmcli详解

背景
前段时间在做LVS实验的时候,网络规划和配置示非常关键的,以往在linux的系统中都是通过配置文件来配置和修改ip的,今天我们就来说一说nmcli命令配置网络。

目前所有的linux系统配置网卡等信息,均已经推行Network-Manager服务去管理。nmcli 是 NetworkManager 的命令行工具。nm 代表 NetworkManager,cli 代表 Command-Line 命令行。

查看运行状态:
systemctl status NetworkManager

启动:
systemctl start NetworkManager

重启:
systemctl restart NetworkManager

关闭:
systemctl stop NetworkManager

查看是否开机启动:
systemctl is-enabled NetworkManager

开机启动:
systemctl enable NetworkManager

禁止开机启动:
systemctl disable NetworkManager

注意:NetworkManager 中开头的 N 和中间的 M 必须大写。
信息查询
1. 显示所有连接
root@Route:~# nmcli connection show
NAME UUID TYPE DEVICE
ethernet 8fb866df-f48f-4f67-af40-e23e0b6dcd09 ethernet ens38
ens33 c0f36c4d-9f4a-439d-80e3-eb38df216bb4 ethernet ens33
2. 显示可用连接
root@Route:~# nmcli connection show --active
NAME UUID TYPE DEVICE
ethernet 8fb866df-f48f-4f67-af40-e23e0b6dcd09 ethernet ens38
ens33 c0f36c4d-9f4a-439d-80e3-eb38df216bb4 ethernet ens33
3. 显示device(网卡设备)的详细信息
##deviece的连接状态
root@Route:~# nmcli device status
DEVICE TYPE STATE CONNECTION
ens33 ethernet connected ens33
ens38 ethernet disconnected --
lo loopback unmanaged --
root@Route:~# nmcli device show
GENERAL.DEVICE: ens33
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:C7:1E:A0
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ens33
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/3
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 10.10.10.129/24
IP4.GATEWAY: 10.10.10.2
IP4.ROUTE[1]: dst = 10.10.10.0/24, nh = 0.0.0.0, mt = 101
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 10.10.10.2, mt = 20101
IP4.ROUTE[3]: dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1000
IP4.DNS[1]: 10.10.10.2
IP4.DOMAIN[1]: localdomain
IP6.ADDRESS[1]: fe80::3c4:6c33:343a:c3bd/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 1024

GENERAL.DEVICE: ens38
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:C7:1E:AA
GENERAL.MTU: 1500
GENERAL.STATE: 30 (disconnected)
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
WIRED-PROPERTIES.CARRIER: on
IP4.GATEWAY: --
IP6.GATEWAY: --

GENERAL.DEVICE: lo
GENERAL.TYPE: loopback
GENERAL.HWADDR: 00:00:00:00:00:00
GENERAL.MTU: 65536
GENERAL.STATE: 10 (unmanaged)
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
IP4.ADDRESS[1]: 127.0.0.1/8
IP4.GATEWAY: --
IP6.ADDRESS[1]: ::1/128
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = ::1/128, nh = ::, mt = 256
lines 19-42/42 (END)

网络配置
配置流程:

1. 确定系统中的可用device;
2. 确认device上是否存在可用连接;
3. 对device上的连接进行ip配置及修改;
确认device----->创建连接----->配置及修改

1. 创建有效连接
root@Route:~# nmcli connection add ifname ens38 con-name ens38_1 type ethernet
Connection 'ens38_1' (ee550e98-2156-4dd0-805c-d8ab38532f2e) successfully added.

root@Route:~# nmcli connection show
NAME UUID TYPE DEVICE
ens38_1 ee550e98-2156-4dd0-805c-d8ab38532f2e ethernet ens38
ens33 c0f36c4d-9f4a-439d-80e3-eb38df216bb4 ethernet ens33
ethernet 8fb866df-f48f-4f67-af40-e23e0b6dcd09 ethernet --
root@Route:~#

con-name 指定连接名字,没有特殊要求,自定义
ifname 指定网卡设被名,既就是次配置所生效的网卡
type 指定连接的类型,ethernet为以太网(默认)


2. 配置网络信息
root@Route:~# nmcli connection modify ens38_1 ipv4.addresses 172.16.93.140/24 ipv4.getway 172.16.93.3 ipv4.dns 172.16.93.2

ipv4.addresses 指定IPv4地址
ipv4.getway 指定网关
ipv4.dns 指定dns
3. 启动和关闭连接
root@Route:~# nmcli connection up ens38_1
root@Route:~# nmcli connection down ens38_1
4. 删除网络
root@Route:~# nmcli connection delete ens38_1
修改网络
1. 修改IP地址及网关
root@Route:~# nmcli connection modify ens38_1 ipv4.addresses 200.100.100.100/24 ipv4.getway 200.100.100.1
2. 添加删除dns
root@Route:~# #nmcli connection modify ens38_1 +ipv4.dns 114.114.114.114

root@Route:~# nmcli connection modify ens38_1 -ipv4.dns 114.114.114.114
3. 添加删除ip
root@Route:~# nmcli connection modify ens38_1 +ipv4.addresses 10.10.10.10/24

root@Route:~# nmcli connection modify ens38_1 -ipv4.addresses 10.10.10.10/24
4. 修改连接配置后重新激活
root@Route:~# nmcli connecti reload

posted @ 2023-11-04 23:35  呼长喜  阅读(1026)  评论(0编辑  收藏  举报