Linux nmcli 网络管理
RHEL 和 CentOS 系统默认使用 NetworkManager 来提供网络服务,这是一种动态管理网络配置的守护进程,能够让网络设备保持连接状态。可以使用 nmcli 命令来管理 NetworkManager 服务。nmcli 是一款基于命令行的网络配置工具,功能丰富,参数众多。它可以轻松地查看网络信息或网络状态:
[root@linuxprobe ~]# nmcli connection show NAME UUID TYPE DEVICE eno33554968 da2d8781-c673-40b6-aa34-72fdf99af1cf 802-3-ethernet eno33554968 eno16777728 36644a00-01b9-4fcb-a765-748bc7b42672 802-3-ethernet eno16777728 [root@linuxprobe ~]# nmcli con show eno16777728 connection.id: eno16777728 connection.uuid: 36644a00-01b9-4fcb-a765-748bc7b42672 connection.interface-name: -- connection.type: 802-3-ethernet connection.autoconnect: yes connection.timestamp: 1577620101 connection.read-only: no connection.permissions: connection.zone: -- connection.master: -- connection.slave-type: -- connection.secondaries: connection.gateway-ping-timeout: 0 ………………省略部分输出信息………………
nmcli自带图形网络接口配置工具
[root@linuxprobe ~]# nmtui
[root@linuxprobe ~]# nm-connection-editor
常用操作
查询操作
- # 查询服务器所有网卡
- nmcli connection show
- # 查看正在使用的网卡
- nmcli connection show -active
- # 查看指定网卡信息详情
- nmcli connection show 设备名称
- # 查看所有网络设备状态
- nmcli device status
- # 查看所有网络设备状态详情
- nmcli device show
- # 查看指定网络设备状态详情
- nmcli device show 设备名称
修改操作
- # 创建DHCP类型网络设备、新建配置文件
- nmcli connection add con-name "连接名" type 设备类型 ifname 设备名称
- 实例:nmcli connection add con-name "dhcp" type ethernet ifname eno16777728
- # 创建静态类型网络设备、新建配置文件、添加IP地址、添加网关。
- nmcli connection add con-name "连接名" ifname 设备名称 autoconnect no type 设备类型 ip4 IP地址 gw4 网关地址
- 实例:nmcli connection add con-name "static" ifname eno16777728 autoconnect no type ethernet ip4 192.168.10.10/24 gw4 192.168.10.1
- 注:autoconnect 为是否开启网络设备。
- 对应配置文件: autoconnect no/yes | ONBOOT=no/yes
- # 修该模式为手动(static)
- nmcli connection modify 设备名称 ipv4.method manual ipv4.addresses IP地址/网关
- 实例:nmcli connection modify eno16777728 ipv4.method manual ipv4.addresses 192.168.10.10/24
- 注:原本DHCP模式需要手动添加IP地址,不然会报错。
- 对应配置文件:ipv4.method manual/auto | BOOTPROTO=static/dhcp
- # 修该模式为自动(dhcp)
- nmcli connection modify 设备名称 ipv4.method auto
- 实例:nmcli connection modify eno16777728 ipv4.method auto
- 对应配置文件:ipv4.method manual/auto | BOOTPROTO=static/dhcp
- # 修该IP地址
- nmcli connection modify 设备名称 ipv4.addresses IP地址/网关
- 实例:nmcli connection modify eno16777728 ipv4.addresses 192.168.10.10/24
- 对应配置文件:ipv4.addresses x.x.x.x/x | IPADDR=x.x.x.x 、PREFIX=x
- # 修该网关
- nmcli connection modify 设备名称 ipv4.gateway 网关地址
- 实例:nmcli connection modify eno16777728 ipv4.gateway 192.168.10.1
- 对应配置文件:ipv4.gateway x.x.x.x | GATEWAY=x.x.x.x
- # 已创建静态网络设备、添加DNS
- nmcli connection modify 设备名称 ipv4.dns DNS地址
- 实例:nmcli connection modify eno16777728 ipv4.dns 8.8.8.8
- 对应配置文件:ipv4.dns x.x.x.x | DNS=x.x.x.x
- # 已创建静态网络设备、添加第二个DNS
- nmcli connection modify 设备名称 +ipv4.dns DNS地址
- 实例:nmcli connection modify eno16777728 +ipv4.dns 9.9.9.9
- 对应配置文件:ipv4.dns x.x.x.x | DNS2=x.x.x.x
- # 修该模式为手动(static)、IPV6
- nmcli connection modify 设备名称 ipv6.addresses 'IPV6地址/掩码' ipv6.method 手动
- 实例:nmcli connection modify eno16777728 ipv6.addresses '2001:ac18::132/64' ipv6.method manual
- 注:原本DHCP模式需要手动添加IP地址,不然会报错。
删除操作
- # 删除指定网络设备、DNS地址
- nmcli connection modify 设备名称 -ipv4.dns 已存在DNS地址
- 实例:nmcli connection modify eno16777728 -ipv4.dns 8.8.8.8
- # 删除网络连接配置文件
- nmcli connection delete 设备名称
- 实例:nmcli connection delete eno16777728
其他操作
- # 启用网络设备连接
- nmcli connection up 设备名称
- 实例:nmcli connection up eno16777728
- # 停用网络连接、可以被自动激活
- nmcli connection down 设备名称
- 实例:nmcli connection up eno16777728
- # 停用网络连接,禁止被激活
- nmcli device disconnect 设备名称
- 实例:nmcli device disconnect eno16777728
- # 重新加载网络配置文件
- nmcli connection reload