学而实习之 不亦乐乎

CentOS 8 的网络管理

2023-04-06 22:14:48

一、 NM 简介

CentOS 8默认通过NetworkManager.service(简称NM)进行网络管理,当然 CentOS 8依然支持 network.service,只是默认没有安装,不过官方已明确在下一个大版本中,将彻底放弃 network.service,因此使用 NM 将使大势所趋。

NM服务是管理和监控网络设置的守护进程,它是一个动态的,事件驱动的网络管理服务。NM服务可以通过多种方式进行管理,如:命令行(nmcli)、文本界面(nmtui)、图形界面(nm-connection-editor)等,现在RedHat系、Suse系、Debian/Ubuntu系,均支持NM服务。

二、nmcli 命令 

1:nmcli connection (查看网络连接信息)

查看网卡的配置文件,可以简写为nmcli c

网络连接有2种状态:

  1.     活跃(带颜色字体):表示当前该connection生效
  2.     非活跃(正常字体):表示当前该connection不生效

2:nmcli device (查看接口信息)

查看存在的网卡(包括物理网卡和虚拟网卡)。可以简写为nmcli d

接口信息有4种常见状态:

  1. connected:已被NM纳管,并且当前有活跃的网络连接
  2. disconnected:已被NM纳管,但是当前没有活跃的网络连接
  3. unmanaged:未被NM纳管
  4. unavailable:不可用,NM无法纳管,通常出现于网卡link为down的时候

三、Nmcli常用配置命令

1、查看ip(类似于ifconfig、ip addr)

# nmcli

2、配置静态ip

# nmcli connection add type ethernet con-name connection-name ifname interface-name ipv4.addresses address ipv4.gateway address ipv4.method manual

注意

(1)ipv4.address和ipv4.gateway可以缩写成ip4和gw4

(2)注意:如果这是为网卡创建的第一个连接,则自动生效;如果此时已有连接存在,则该连接不会自动生效。需要通过nmcli connection up connection-name 使用配置生效。

3、修改ip地址(非交互式)

# nmcli connection modify [connection-name|uuid] [+|-]ipv4.addresses address

注意:
(1)ipv4.addresses前面的+和-代表增加或删除一个ip地址,配置时如果没有+和-,则表示修改ip地址。
(2)修改ip不会立即生效,需要通过nmcli connection up connection-name 使用配置生效。

4、修改ip地址(交互式)

进入交互式界面,如下:

# nmcli connection edit [connection-name|uuid] 

注意:在交互界面,如果只进行save,没有activate就直接退出的话,需要通过nmcli connection up connection-name 使用配置生效。

5、删除连接信息

# nmcli connection delete [connection-name|uuid]

6、启用网络连接

# nmcli connection up [connection-name|uuid]

注意:
(1)同一块网卡,只能启一个网络连接
(2)如手动修改过网卡配置文件后,可以通过启用网络连接,实现配置更新(类似systemctl restart network)

7、关闭网络连接

# nmcli connection down [connection-name|uuid]

8、手动修改ifcfg网卡配置文件,生效方法

因为 CentOS 8 默认没有 network.server,所以无法通过 systemctl restart network.server 重启服务,实现配置文件生效,可以通过 nmcli 命令操作。

(1)重载网络连接:

# nmcli connection reload

重载所有ifcfg文件

# nmcli connection load /etc/sysconfig/network-scripts/ifcfg

指定重载ifcfg文件

(2)生效网络连接

此三命令都可以生效网络连接

# nmcli connection up connection-name
# nmcl device connect interface-name
# nmcl device reapply interface-name