首页 > 系统相关 >红帽系Linux发行版本8版本以上的网络配置管理

红帽系Linux发行版本8版本以上的网络配置管理

时间:2023-02-12 19:56:02浏览次数:55  
标签:NM nmcli 配置管理 enp0s3 网卡 connection 版本 Linux 连接

网络管理(nmcli)

1、NetworkManager管理

在rhel8(含centos8)上,在/etc/sysconfig/network-scripts/里也看不到任何脚本文件,没有传统的network.service。因此只能通过其它方法进行网络配置,包括NM命令工具集。换言之,在rhel8上,必须开启NM,否则无法使用网络。

# 查看NM纳管状态

nmcli n

$ nmcli n
enabled

# 开启NM接管

nmcli n on

# 关闭NM纳管(谨慎执行)

nmcli n off

2、网络管理命令行工具nmcli

在nmcli中有2个命令最为常用:

  1. nmcli connection

    表示连接,可理解为配置文件,相当于ifcfg-ethX。可以简写为nmcli c

    $ nmcli connection 
    NAME    UUID                                  TYPE      DEVICE 
    enp0s3  d2e9c3bf-6440-4d0d-abe7-0431b69341de  ethernet  enp0s3 
    virbr0  fd4e79a8-e0c2-4cbe-b9af-c47c83c3a7fa  bridge    virbr0 
    

    connection有2种状态:

    ▷ 活跃(带颜色字体):表示当前该connection生效

    ▷ 非活跃(正常字体):表示当前该connection不生效

  2. nmcli device

    表示设备,可理解为实际存在的网卡(包括物理网卡和虚拟网卡)。可以简写为nmcli d

    在NM里,有2个维度:连接(connection)和设备(device),这是多对一的关系。想给某个网卡配ip,首先NM要能纳管这个网卡。设备里存在的网卡(即nmcli d可以看到的),就是NM纳管的。接着,可以为一个设备配置多个连接(即nmcli c可以看到的),每个连接可以理解为一个ifcfg配置文件。同一时刻,一个设备只能有一个连接活跃。可以通过nmcli c up切换连接。

    $ nmcli device 
    DEVICE      TYPE      STATE         CONNECTION 
    enp0s3      ethernet  已连接        enp0s3     
    virbr0      bridge    连接(外部)  virbr0     
    lo          loopback  未托管        --         
    virbr0-nic  tun       未托管        -- 
    

    device有4种常见状态:

    ▷ connected:已被NM纳管,并且当前有活跃的connection

    ▷ disconnected:已被NM纳管,但是当前没有活跃的connection

    ▷ unmanaged:未被NM纳管

    ▷ unavailable:不可用,NM无法纳管,通常出现于网卡link为down的时候(比如ip link set enp0s3 down)

3、nmcli connection配置

nmcli c show命令

输出中:

▪ 第一列是connection名字,简称con-name(注意con-name不是网卡名)

▪ 第二列是connection的UUID

▪ 最后一列才是网卡名(标准说法叫device名),可通过nmcil d查看device


对connection做操作时需要指定标识,标识可以是con-name、UUID、如果存在ifcfg文件则也可以用ifcfg的完整路径,即/etc/sysconfig/network-scripts/ifcfg-enp0s3

nmcli c show enp0s3

nmcli c show d2e9c3bf-6440-4d0d-abe7-0431b69341de

nmcli c show /etc/sysconfig/network-scripts/ifcfg-enp0s3

以上三种方式是同一个效果


下面命令是常见的一些操作:

  • 启用connection(相当于ifup)

    nmcli c up enp0s3

  • 停止connection(相当于ifdown)

    nmcli c down enp0s3

  • 删除connection(类似于ifdown并删除ifcfg)

    nmcli c delete enp0s3

  • 查看connection列表

    nmcli c show

  • 查看connection详细信息

    nmcli c show enp0s3

  • 重载配置文件(不会马上生效)

    nmcli c reload

  • 立即生效connection,有3种方法:

    nmcli c up ens32

    nmcli d reapply enp0s3 #专门用于刷新connection,前提是网卡的device处于connected状态,否则会报错。

    nmcli d connect enp0s3 #刷新该网卡对应的活跃connection

通过命令行来修改connection的配置

# 查看所有连接
$ nmcli c
NAME    UUID                                  TYPE      DEVICE 
enp0s3  d2e9c3bf-6440-4d0d-abe7-0431b69341de  ethernet  enp0s3 


# 修改某个连接的配置  后面接的是连接名,并不是设备名
$ nmcli c edit enp0s3 


# 进入编辑界面
===| nmcli 交互式连接编辑器 |===

正在编辑已有的连接 "802-3-ethernet":"enp0s3"

输入 "help" 或 "?" 查看可用的命令。
输入 "print" 来显示所有的连接属性。
输入 "describe [<设置>.<属性>]" 来获得详细的属性描述。

您可编辑下列设置:connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, hostname, tc, proxy



# 输入print可以打印当前界面的所有配置
nmcli> print
===============================================================================
                            连接配置集详情 (enp0s3)
===============================================================================
connection.id:                          enp0s3
connection.uuid:                        d2e9c3bf-6440-4d0d-abe7-0431b69341de
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              enp0s3
connection.autoconnect:                 是
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0(default)
........
proxy.browser-only:                     否
proxy.pac-url:                          --
proxy.pac-script:                       --
-------------------------------------------------------------------------------


# 问好可以查看当前可使用的命令
nmcli> ?
------------------------------------------------------------------------------
---[ 主菜单 ]---
goto     [<设置> | <属性>]        :: 转到设置或属性
remove   <设置>[.<属性>] | <属性> :: 移除设置或重置属性值
set      [<设置>.<属性> <值>]     :: 设置属性值
describe [<设置>.<属性>]          :: 描述属性
print    [all | <设置>[.<属性>]]  :: 输出连接
verify   [all | fix]              :: 验证连接
save     [persistent|temporary]   :: 保存连接
activate [<接口名>] [/<ap>|<nsp>] :: 激活连接
back                              :: 转到上层(返回)
help/?   [<命令>]                 :: 输出此帮助
nmcli    <配置选项> <值>          :: nmcli configuration
quit                              :: 退出 nmcli
------------------------------------------------------------------------------


# goto可以转单下一级                 
nmcli> goto 
有效设置:connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, hostname, tc, proxy
# 转到ipv4相关设置
设置名称? ipv4
您可以编辑下列属性:method, dns, dns-search, dns-options, dns-priority, addresses, gateway, routes, route-metric, route-table, routing-rules, ignore-auto-routes, ignore-auto-dns, dhcp-client-id, dhcp-iaid, dhcp-timeout, dhcp-send-hostname, dhcp-hostname, dhcp-fqdn, dhcp-hostname-flags, never-default, may-fail, dad-timeout, dhcp-vendor-class-identifier, dhcp-reject-servers


# 转到ipv4的dns设置
nmcli ipv4> goto dns

# 修改
nmcli ipv4.dns> change 
编辑 "dns" 值: 8.8.8.8,114.114.114.114

# 保存配置
nmcli> save 
成功地更新了连接 "enp0s3" (d2e9c3bf-6440-4d0d-abe7-0431b69341de)。

# 激活配置
nmcli> activate 
正在监视连接激活(按任意键继续)
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)

# 退出
nmcli> quit

通过修改配置文件来修改

vim /etc/sysconfig/network-scripts/ifcfg-enp0s3

然后生效配置

nmcli c reload

如果没有立即生效,需要执行up一下

nmcli c up enp0s3

标签:NM,nmcli,配置管理,enp0s3,网卡,connection,版本,Linux,连接
From: https://www.cnblogs.com/guangdelw/p/17114556.html

相关文章

  • Efinity更新版本可能遇到的问题
    今天用新版本2022.2打开2022.1版本的工程进行编译,结果出现以下错误。    Efinity用新版本的软件打开老工程时,可能会出现编译不能通过的情况,并且打不开interface......
  • dremio 24 版本对于表优化的处理
    dremio24版本开始支持表优化,主要是对于iceberg的表优化机制简单说明dremio认为256M是一个很不错的优选大小,其他的认为就是过小后者过大参考图  额外的能力支......
  • 嵌入式Linux—浅析Makefile
    Makefile文档组织管理程序不使用Makefile的缺点-otesta.cb.c执行过程:a.c文件通过预处理、编译、汇编得到a.o文件b.c文件通过预处理、编译、汇编得到b.o文件a.......
  • 新版本固件不支持24口万兆电口LSU1TGT24SF0板卡
    一、停产公告官网信息二、两块24口万兆电口板卡LSU1TGT24SF0,在7596P07固件版本下能被正确识别两块24口万兆电口板卡LSU1TGT24SF0,在7596P10固件及之前的版本下能被正确识别,......
  • 嵌入式Linux—Framebuffer应用编程
    Framebuffer应用编程Frame的意思是帧,buffer的意思是缓冲区。Framebuffer就是一块内存(硬件设备),里面保存着一帧图像。ioctl()函数解析ioctl()函数非常强大。不同的驱......
  • linux驱动架构
    linux驱动演化过程:从04年到现在,linux驱动进行了两次大的演变,从基于linux-v2.4的原始架构---到基于linux-v2.6的平台总线---再到现在的基于linux-v3.x的设备树。这个演变过......
  • Linux基础命令-history历史记录
    前言    在工作中,经常会需要多次重复某一个命令,或者需要查看之前执行过什么命令,那么都少不了history这个命令,下面一起来看看吧。一、history命令介绍    hi......
  • Linux基础命令-date设置时间
    前言    服务器上的时间往往要用到这个命令,而date命令能修改的不仅仅是时间,还可以修改时区,同步大厂的时间等。一、date命令的介绍    date命令来自于英文单......
  • Linux文件管理命令(4)-cat查看文件内容
     前言    cat主要是用来查看文件内容的,一般也搭配管道符一起来使用,比如有时候要计算文件有多少行或者要截取里面的内容,都还是很实用的。一、cat命令介绍   ......
  • Linux文件管理命令-head显示文件开头的内容
    前言    head命令在日常比较常用的一个命令,如果只想查看文件的前几行内容,就可以用这个命令,还可以自定义选择要查看多少行,一起来看看这个命令的使用吧。一、head命令......