Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

  • Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)已关闭评论
  • 212 次浏览
  • A+
所属分类:linux技术
摘要

背景:作为系统管理员,需要经常处理主机网络问题,而配置与管理网络的方法和工具也有好几种,这里整理分享一下网络配置与管理的几种方式。


Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

背景:作为系统管理员,需要经常处理主机网络问题,而配置与管理网络的方法和工具也有好几种,这里整理分享一下网络配置与管理的几种方式。

1、NetworkManager 概述

在 Red Hat Enterprise Linux 7 中,默认网络服务由 NetworkManager 提供,后者是一个动态网络控制和配置守护进程,在网络设备和连接可用时保持启动和激活。传统的 ifcfg 类型配置文件仍受支持。

1.1、NetworkManager 优点

  • 更轻松地进行网络配置: NetworkManager 确保网络连接正常工作。当发现系统中没有网络配置但存在网络设备时,NetworkManager 会创建临时连接以提供连接。
  • 提供与用户的简单连接设置:NetworkManager 通过不同的工具(GUI、nmtui、nmcli - )提供管理。
  • 支持配置灵活性。例如:配置 WiFi 接口,NetworkManager 会扫描并显示可用的 wifi 网络。选择一个接口,NetworkManager 会显示在重启过程后提供自动连接所需的凭证。
  • NetworkManager 可以配置网络别名、IP 地址、静态路由、DNS 信息和 VPN 连接,以及许多特定于连接的参数。您可以修改配置选项以反应您的需要。
  • 重启过程后保持设备状态,并接管在重启过程中将其设定为受管模式的接口。
  • 处理没有被显式设置但由用户或者其他网络设备手动控制的设备。

1.2、NetworkManager 工具和应用程序概述

应用程序或工具 描述
nmcli 命令行工具可让用户和脚本与 NetworkManager 交互。请注意,nmcli 可以在没有 GUI 的系统上使用,如服务器来控制 NetworkManager 的所有方面。它的功能与 GUI 工具相同。
nmtui NetworkManager的基于 curses 的简单文本用户界面(TUI)
nm-connection-editor

控制中心实用程序尚未处理的特定任务 (如配置绑定和成组连接)的图形用户界面工具。您可以添加、删除和修改 NetworkManager 存储的网络连接。要启动它,在终端中输入 nm-connection-editor :

~]$ nm-connection-editor

control-center GNOME Shell 提供的图形用户界面工具,可供桌面用户使用。它整合了网络设置工具。要启动它,请按 Super 键进入 Activities Overview,键入Network,然后按 Enter 键。此时会出现网络设置工具。
网络连接图标 GNOME Shell 提供的图形用户界面工具代表网络连接状态,如NetworkManager 报告。该图标有多种状态,充当您当前使用的连接类型的可视化指示。

1.3、NetworkManager的安装和使用

 (1)安装NetworkManager

yum install NetworkManager

 (2)启动NetworkManager

systemctl start NetworkManager

(3)关闭NetworkManager

systemctl stop NetworkManager

(4)重启NetworkManager

systemctl restart NetworkManager

(5)查看NetworkManager是否开机启动

systemctl is-enabled NetworkManager

(6)开机启动 NetworkManager

systemctl enable NetworkManager

(7)禁止开机启动 NetworkManager

systemctl disable NetworkManager

(8)检查 NetworkManager 的状态

systemctl status NetworkManager 注意: 当 NetworkManager 正在运行时,systemctl status 命令会显示Active: active (running) 当 NetworkManager 没有运行时,systemctl status 命令会显示 Active: inactive (dead)

2、配置IP网络

2.1、使用nmtui配置IP网络

这个步骤描述了如何使用文本用户界面工具 nmtui 配置网络。

2.1.1、启动 nmtui 工具

nmtui

NetworkManager 文本用户界面起始菜单(左英右中),使用箭头键键前进 ,然后按Esc后退浏览选项。按 Enter 键选择一个选项。Space 空格键切换复选框的状态。

选择“Edit a connection”

Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)     Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

选择网卡,按Enter进行编辑

Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

2.1.2、配置并保存ipv4信息(配置静态ip选择Manual模式)

Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

2.1.3、要在修改后已激活的连接后应用更改,需要重新激活连接。

a.选择 Activate a connection 菜单条目,激活连接。

Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

b.选择修改的连接。在右侧,单击取消激活按钮,取消激活修改的连接。(注意:此时网络会断,ssh连接的也会断)

Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

c.再次选择连接并单击激活按钮,重新激活修改的连接

Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

2.1.4、命令方式操作

nmtui edit connection-name    #connection-name是网卡名称,例如上面的ens33

注意:如果没有提供连接名称,则会显示选择菜单。如果提供了连接名称并正确识别,则会出现相关的Edit 连接屏幕。

nmtui connect connection-name

注意:如果没有提供连接名称,则会显示选择菜单。如果提供连接名称并正确识别,则会激活相关的连接。

 

2.2、使用 nmcli 配置 IP 网络

  • nmcli (NetworkManager 命令行界面)命令行工具用于控制 NetworkManager 和报告网络状态,nmcli 用于创建、显示、编辑、删除、激活和停用网络连接,以及控制和显示网络设备状态。
  • nmcli 命令的基本格式如下:
    nmcli [OPTIONS] OBJECT { COMMAND | help }
  • 连接文件::把一个网络设备的配置的集合放在一个文件内,就叫连接文件,比如网卡的配置文件。

     Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

2.2.1 nmcli networking

显示 NetworkManager 是否接管网络设置:

nmcli networking

networking 可以简写为 n、ne、net、netw…… 所以以上命令可以简写为:

nmcli n

查看网络连接状态:

nmcli n connectivity

网络连接状态共有五种:full、limited(连网,但无法上网)、portal(连网,但需要认证登录后才能上网)、none(没连网)和 unknown。

connectivity 可以简写为 c,所以以上命令可简写为:

nmcli n c

开启网络连接:

nmcli n on

关闭网络连接:

nmcli n off

2.2.2 nmcli general

显示系统网络状态:

nmcli general status

general 可以简写为 g、ge、gen、gene……

status 是 general 的默认项,可以省略不写。所以,以上命令可简写为:

nmcli g

命令返回结果如下:

Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

其中:

STATE 显示网络是否连接;

CONNECTIVITY 与前面介绍的 nmcli networking connectivity 相同;

WIFI-HW 表示 WIFI 硬件开关、WIFI 表示 WIFI 软件开关;

WWAN-HW 表示 WWAN 硬件开关、WWAN 表示 WWAN 软件开关。

HW 代表 HardWare,WWAN 代表 Wireless Wide Area Network。

显示主机名:

nmcli g hostname nmcli g h

更改主机名:

nmcli g hostname newHostName nmcli g h newHostName

newHostName是你设置的新主机名。

主机名存放在 /etc/hostname 文件中,修改主机名后,需要重启 NetworkManager。

2.2.3 nmcli connection

显示所有网络连接的信息:

nmcli connection show

connection 可以简写为 c、co、con、conn……

show 是 connection 的默认项,可以省略不写。所以,以上命令可简写为:

nmcli c

nmcli connection show 有一个 -active 参数,可以只显示当前启动的连接:

nmcli c s --active  # 或 nmcli c s -a        # 因为 show 后面有参数项,所以此时的 show 不能省

显示某一特定连接的详细信息(以 ens33 为例):

nmcli c s ens33

启动指定连接:

nmcli c up ens33

如果 ens33 本来就出于连接状态,那此命令会重启 ens33。

关闭指定连接:

nmcli c down ens33

关闭连接后,执行 nmcli c 命令, DEVICE 项将显示为 -- 。

修改连接文件:

nmcli c modify ens33  [ + | - ]选项 选项值  # 或 nmcli c m ens33  [ + | - ]选项 选项值

下面给出常用修改示例:

nmcli c m ens33 ipv4.address 192.168.80.10/24  # 修改 IP 地址和子网掩码 nmcli c m ens33 ipv4.method manual             # 修改为静态配置,默认是 auto nmcli c m ens33 ipv4.gateway 192.168.80.2      # 修改默认网关 nmcli c m ens33 ipv4.dns 192.168.80.2          # 修改 DNS nmcli c m ens33 +ipv4.dns 114.114.114.114      # 添加一个 DNS nmcli c m ens33 ipv6.method ignore            # 将 IPv6 禁用,针对CentOS 8,三个可选项:disabled、auto、manual nmcli c m ens33 connection.autoconnect yes     # 开机启动

注意,必须先修改 ipv4.address,然后才能修改 ipv4.method!

用空引号""代替选项的值,可将选项设回默认值(以 ipv4.method 为例):

nmcli c m ens33 ipv4.method ""

选项有很多,详细信息可以通过以下命令查看:

man 5 nm-settings-nmcli

主要可以看里面 connection setting 和 ipv4 setting 部分。

新增连接:

nmcli c add type 连接类型 选项 选项值  # 或 nmcli c a type 连接类型 选项 选项值

type 为必选项,我们通常用到的是 802-3-ethernet(别名 ethernet)。

选项与前面介绍的“修改连接”中的选项一样,其中重要的几个选项:

connection.id(别名 con-name):连接名;

connection.interface-name(别名 ifname):设备名;

connection.autoconnect(别名 autoconnect):是否开机自启,其值只能是 yes 或 no,默认 yes。

下面给出一个示例:

nmcli c a type ethernet ifname ens37 con-name ens37

删除指定连接:

nmcli c delete ens33  # 或 nmcli c de ens33      # delete 不可简写为 d,否则与 down 冲突,但可以简写为 de

重载所有连接的配置文件:

nmcli c reload  # 或 nmcli c r

重载某一指定连接的配置文件:

nmcli c load ifcfg-ens33  # 或 nmcli c l ifcfg-ens33    

网络配置文件默认保存在 /etc/sysconfig/network-scripts/ 路径下,如果配置文件在其它位置,则需要填写完整路径。

网络配置文件的命名方式就是ifcfg-连接名,例如 ens33 的配置文件名为ifcfg-ens33

网络配置文件说明:

TYPE=Ethernet           # 以太网 PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none          # 静态配置,等同于 ipv4.method manual DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no NAME=ens33              # 连接名 UUID=16862343-b55e-4248-b05d-a3ea662a84a4 DEVICE=ens33            # 设备名 ONBOOT=yes              # 开机自启 IPADDR=192.168.80.10    # IP 地址 PREFIX=24               # 子网掩码 GATEWAY=192.168.80.2    # 网关 DNS1=192.168.80.2       # DNS1 DNS2=114.114.114.114    # DNS2

2.2.4 nmcli device

显示所有网络接口设备的状态:

nmcli device status

device 可以简写为 d、de、dev……

status 是 device 的默认项,可以省略不写。所以,以上命令可简写为:

nmcli d

显示所有设备的详细信息:

nmcli d show  # 或 nmcli d sh         # show 不可简写为 s,否则与 status 冲突,但可以简写为 sh

显示某一特定设备的详细信息:

nmcli d sh ens33

连接设备:

nmcli d connect ens33  # 或 nmcli d c ens33  

如果 ens33 本来就出于连接状态,那此命令会重启 ens33。

断开设备:

nmcli d disconnect ens33  # 或 nmcli d d ens33  

更新设备信息:

nmcli d reapply ens33  # 或 nmcli d r ens33  

只有在设备处于连接状态,才可以更新设备,更新设备相当于重启连接。

这部分引用:https://zhuanlan.zhihu.com/p/395236748

2.2.5 服务器新增网卡的配置和使用

ip addr show 查看网卡信息(ens37是我刚刚新增的网卡),但并没有连接。

Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

nmcli device status 查看所有网络接口设备的状态,可以看到ens37是disconnected状态

Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

修改新网卡连接的方式有两种

方式一:

nmcli device connect ensXXX:

disconnected→connected 自动创建连接文件(前提:DHCP启用)

Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

方式二:

手动添加连接对设备进行关联(在DHCP没有启用的时候可以用这个方法)

nmcli connection add type ethernet ifname ens37 con-name ens37    #或 nmcli c a type ethernet ifname ens37 con-name ens37

手动添加连接对设备进行关联后,/etc/sysconfig/network-scripts下会生成连接文件 ifcfg-ens37,但是此时连接文件还是不可用的。

Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

修改连接文件 ifcfg-ens37

Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

nmcli device status 再次查看网卡设备已处于connected状态。

Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

2.3、使用 GNOME GUI 配置 IP 网络

在 Red Hat Enterprise Linux 7 中,NetworkManager 本身没有图形用户界面(GUI)。桌面右上角的网络连接图标作为 GNOME Shell 的一部分提供,网络设置配置工具作为支持有线、无线和 vpn 连接的新 GNOME 控制中心 GUI 的一部分提供。nm-connection-editor 是 GUI 配置的主要工具。除了control-center 的功能外,它还应用并非由 GNOME 控制中心提供的功能,如配置绑定、团队、网桥连接。

2.3.1、 使用 control-center GUI 连接到网络

  1. 单击屏幕右上角的 GNOME Shell 网络连接图标,以打开其菜单。

  Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

  当您点击 GNOME Shell 网络连接图标时,您会看到:

  • 当前连接的分类网络列表(如 Wired 和 Wi-Fi)
  • NetworkManager 检测到的所有可用网络的列表
  • 连接任何已配置的虚拟专用网络(VPN)的选项
  • 选择 Network Settings 菜单条目的选项

  2.如下图,打开 Network Settings 窗口

  Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

  单击加号按钮来添加新连接。

  • 有线连接,单击 Wired 条目旁边的加号按钮
  • VPN 连接,单击 VPN 条目旁边的加号按钮
  • 对于 Wi-Fi 连接,点 Settings 菜单中的 Wi-fi 条目

  3.使用 control-center 编辑现有连接

  点击 Network settings 窗口中现有连接配置集的 gear wheel 图标将打开 Details 窗口,从中可以执行大部分网络配置任务,如 IPv4、DNS 和路由配置。

  Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

  Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

  要在连接修改后应用更改,您可以点击连接窗口右上角的 Apply 按钮。

2.3.2、 使用 nm-connection-editor 配置新的和编辑现有连接

使用 nm-connection-editor GUI 应用程序,您可以使用 control-center 提供的附加功能来配置您想要的任何连接。此外,nm-connection-editor 应用并非由 GNOME 控制中心提供的功能,如配置绑定、网桥、VLAN 和组连接。

  1.使用 nm-connection-editor 添加或配置新连接

  在终端中输入 nm-connection-editor 

  Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

  • 添加,可以选择多种连接类型(Ethernet、wifi、Bluetooth、bond 等)
  • 删除,可以选择删除不需要的连接设备
  • 配置,与control-center GUI方式配置大同小异,功能要多一些。

  Redhat7/CentOS7 网络配置与管理(nmtui、nmcli、GNOME GUI、ifcfg文件、IP命令)

2.4、 使用 IFCFG 文件配置 IP 网络

  我们还可以通过编辑 ifcfg 文件手动配置网络接口。

  接口配置(ifcfg)文件可控制不同网络设备的软件接口。当系统引导时,它使用这些文件来决定启动哪些界面以及如何进行配置。这些文件通常命名为 ifcfg-name ,后缀名称指的是配置文件控制的设备的名称。按照惯例,ifcfg 文件的后缀与配置文件中 DEVICE 指令提供的字符串相同。

1.使用 ifcfg 文件配置带有静态网络设置的接口
例如,若要使用 ifcfg 文件配置带有静态网络设置的接口,请为名为 ens37 的接口,在/etc/sysconfig/network -scripts/ 目录中创建一个名为 ifcfg- ens37 的文件,该文件包含:

TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens37 UUID=0b7dff57-945d-4b63-bf53-69dd2e0f2e99 DEVICE=ens37 ONBOOT=yes IPADDR=192.168.8.26 PREFIX=24 GATEWAY=192.168.8.2 DNS1=114.114.114.114

2.应用配置

a.重新载入更新的连接文件:

nmcli connection reload

b.重新激活连接:

nmcli connection up connection_name

2.5、 使用 IP 命令配置 IP 网络

 我们还可以使用 ip 命令临时配置网络接口,但更改在重新引导后不会保留;重新引导后,将丢失任何更改。

ip 工具可以用来为接口分配 IP 地址,格式如下:
ip addr [ add | del ] address dev ifname

使用 ip 命令分配静态地址
要为接口分配 IP 地址,请执行以下操作:

~]# ip address add 10.0.0.3/24 dev ens37 You can view the address assignment of a specific device: ~]# ip addr show dev ens37 2: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether f0:de:f1:7b:6e:5f brd ff:ff:ff:ff:ff:ff inet 10.0.0.3/24 brd 10.0.0.255 scope global global enp1s valid_lft 58682sec preferred_lft 58682sec inet6 fe80::f2de:f1ff:fe7b:6e5f/64 scope link valid_lft forever preferred_lft forever

使用 ip 命令配置多个地址

由于 ip 实用程序支持将多个地址分配到同一接口,因此不再需要使用别名接口方法将多个地址绑定到
同一接口。分配地址的 ip 命令可以重复多次,以便能分配多个地址。例如:

~]# ip address add 192.168.2.223/24 dev ens37 ~]# ip address add 192.168.4.223/24 dev ens37 ~]# ip addr 3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:fb:77:9e brd ff:ff:ff:ff:ff:ff inet 192.168.2.223/24 scope global enp1s0 inet 192.168.4.223/24 scope global enp1s0

注意:命令行中给定的 IP 命令在系统重启后不会保留。