千家信息网

详解Centos8 配置静态IP的实现

发表于:2024-12-04 作者:千家信息网编辑
千家信息网最后更新 2024年12月04日,安装centos 8之后,重启启动网络时,会出现以下报错报错信息如下:Failed to start network.service: Unit network.service not found.意
千家信息网最后更新 2024年12月04日详解Centos8 配置静态IP的实现

安装centos 8之后,重启启动网络时,会出现以下报错

报错信息如下:

Failed to start network.service: Unit network.service not found.

意思为无法重启网络服务,原因是无法找到network.service网络服务。

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

手动配置静态IP

cat /etc/sysconfig/network-scripts/ifcfg-ens32TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens32UUID=066b4926-b40c-4c28-a5b4-2310d2b96613DEVICE=ens32ONBOOT=yesIPADDR=192.168.1.200NETMASK=255.255.255.0GATEWAY=192.168.1.254DNS1=223.5.5.5PREFIX=24

使用nmcli重新回载网络配置

nmcli c reload

查看

nmcli cNAME UUID                 TYPE DEVICEens32 066b4926-b40c-4c28-a5b4-2310d2b96613 ethernet ens32  

补充nmcli命令

nmcli使用方法

nmcli使用方法非常类似linux ip命令、cisco交换机命令,并且支持tab补全(详见本文最后的Tips),也可在命令最后通过-h、--help、help查看帮助。

nmcli --helpUsage: nmcli [OPTIONS] OBJECT { COMMAND | help } OPTIONS-o[verview] overview mode (hide default values)-t[erse] terse output-p[retty] pretty output-m[ode] tabular|multiline output mode-c[olors] auto|yes|no whether to use colors in output-f[ields] |all|common specify fields to output-g[et-values] |all|common shortcut for -m tabular -t -f-e[scape] yes|no escape columns separators in values-a[sk] ask for missing parameters-s[how-secrets] allow displaying passwords-w[ait]  set timeout waiting for finishing operations-v[ersion] show program version-h[elp] print this help OBJECTg[eneral] NetworkManager's general status and operationsn[etworking] overall networking controlr[adio] NetworkManager radio switchesc[onnection] NetworkManager's connectionsd[evice] devices managed by NetworkManagera[gent] NetworkManager secret agent or polkit agentm[onitor] monitor NetworkManager changes

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

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

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

connection有2种状态:

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

device有4种常见状态:

  • connected:已被NM纳管,并且当前有活跃的connection
  • disconnected:已被NM纳管,但是当前没有活跃的connection
  • unmanaged:未被NM纳管
  • unavailable:不可用,NM无法纳管,通常出现于网卡link为down的时候(比如ip link set ens32 down) 

nmcli常用命令一览

# 查看ip(类似于ifconfig、ip addr)nmcli # 创建connection,配置静态ip(等同于配置ifcfg,其中BOOTPROTO=none,并ifup启动)nmcli c add type ethernet con-name ens32 ifname ens32 ipv4.addr 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.method manual # 创建connection,配置动态ip(等同于配置ifcfg,其中BOOTPROTO=dhcp,并ifup启动)nmcli c add type ethernet con-name ens32 ifname ens32 ipv4.method auto
# 修改ip(非交互式)nmcli c modify ens32 ipv4.addr '192.168.1.200/24'nmcli c up ens32
# 修改ip(交互式)nmcli c edit ens32nmcli> goto ipv4.addressesnmcli ipv4.addresses> changeEdit 'addresses' value: 192.168.1.200/24Do you also want to set 'ipv4.method' to 'manual'? [yes]: yesnmcli ipv4> savenmcli ipv4> activatenmcli ipv4> quit
# 启用connection(相当于ifup)nmcli c up ens32
# 停止connection(相当于ifdown)nmcli c down
# 删除connection(类似于ifdown并删除ifcfg)nmcli c delete ens32
# 查看connection列表nmcli c show
# 查看connection详细信息nmcli c show ens32
# 重载所有ifcfg或route到connection(不会立即生效)nmcli c reload
# 重载指定ifcfg或route到connection(不会立即生效)nmcli c load /etc/sysconfig/network-scripts/ifcfg-ens32nmcli c load /etc/sysconfig/network-scripts/route-ens32
# 立即生效connection,有3种方法nmcli c up ens32nmcli d reapply ens32nmcli d connect ens32 
# 查看device列表nmcli d
# 查看所有device详细信息nmcli d show
# 查看指定device的详细信息nmcli d show ens32
# 激活网卡nmcli d connect ens32
# 关闭无线网络(NM默认启用无线网络)nmcli r all off
# 查看NM纳管状态nmcli n
# 开启NM纳管nmcli n on
# 关闭NM纳管(谨慎执行)nmcli n off
# 监听事件nmcli m
# 查看NM本身状态nmcli
# 检测NM是否在线可用nm-online

提及的ifcfg均指代/etc/sysconfig/network-scripts/ifcfg-ens32及/etc/sysconfig/network-scripts/route-ens32

nmcli connection重点

nmcli c showNAME UUID TYPE DEVICEens32 066b4926-b40c-4c28-a5b4-2310d2b96613 ethernet ens32
  • 第一列是connection名字,简称con-name(注意con-name不是网卡名)
  • 第二列是connection的UUID
  • 最后一列才是网卡名(标准说法叫device名),可通过nmcil d查看device 

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

nmcli c show ens32nmcli c show cae3f1ef-e79a-46c3-8e0c-946b91a65e11nmcli c show /etc/sysconfig/network-scripts/ifcfg-ens32

nmcli c的con-name

同时对应ifcfg的文件名以及内容中的NAME=,该参数表示连接(connection)的名字,无需和网卡名相同,可以为一个设备(device)创建多个连接,但同一时刻只能有一个连接生效。当有多个连接时候,nmcli c delete删除当前连接,就会自动选择同一个设备的其他连接来顶替生效。可以通过nmcli c up来将指定连接切换生效。
注意:通过nmcli c modify修改con-name,只会对应修改ifcfg文件中的NAME,而不会更改ifcfg文件名。

nmcli c的ipv4.method

对应ifcfg文件内容的BOOTPROTO,ipv4.method默认为auto,对应为BOOTPROTO=dhcp,这种时候如果指定ip,就可能导致网卡同时有dhcp分配的ip和静态ip。设置为manual表示BOOTPROTO=none,即只有静态ip。

例子:创建一个连接(connection)

nmcli c add type ethernet con-name ens32-test ifname ens32 ipv4.addresses '192.168.1.100/24,192.168.1.101/32' ipv4.routes '10.0.0.0/8 192.168.1.10,192.168.0.0/16 192.168.1.11' ipv4.gateway 192.168.1.254 ipv4.dns '8.8.8.8,4.4.4.4' ipv4.method manual
  • type ethernet:创建连接时候必须指定类型,类型有很多,可以通过nmcli c add type -h看到,这里指定为ethernet。
  • con-name ens32 ifname ens32:第一个ethX表示连接(connection)的名字,这个名字可以任意定义,无需和网卡名相同;第二个ethX表示网卡名,这个ethX必须是在nmcli d里能看到的。
  • ipv4.addresses '192.168.1.100/24,192.168.1.101/32':配置2个ip地址,分别为192.168.1.100/24和192.168.1.101/32
  • ipv4.gateway 192.168.1.254:网关为192.168.1.254
  • ipv4.dns '8.8.8.8,4.4.4.4':dns为8.8.8.8和4.4.4.4
  • ipv4.method manual:配置静态IP

对应的ifcfg和dns就是

# /etc/sysconfig/network-scripts/ifcfg-ens32-testTYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=noneIPADDR=192.168.1.100PREFIX=24IPADDR1=192.168.1.101PREFIX1=32GATEWAY=192.168.1.254DNS1=8.8.8.8DNS2=4.4.4.4DEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens32-testUUID=9a10ad89-437c-4caa-949c-a394a6d28c8dDEVICE=ens32ONBOOT=yes # /etc/resolv.confnameserver 8.8.8.8nameserver 4.4.4.4

此时,通过nmcli c应该可以看到增加了一条连接

注意:如果这是为ethX创建的第一个连接,则自动生效;如果此时已有连接存在,则该连接不会自动生效,可以执行nmcli c up ethX-test来切换生效

nmcli device重点

nmcli d connect ens32
由NM对指定网卡进行管理,同时刷新该网卡对应的活跃connection(如果之前有修改过connection配置);如果有connection但是都处于非活跃状态,则自动选择一个connection并将其活跃;如果没有connection,则自动生成一个并将其活跃。

nmcli d disconnect ens32
让NM暂时不管理指定网卡,此操作不会变更实际网卡的link状态,只会使对应的connection变成非活跃。若重启系统则又会自动connect。另外,如果手工将该网卡的connection全部删掉,该网卡状态也会自动变为disconnected。

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

nmcli d set ens32 autoconnect yes|no managed yes|no
可以设置是否自动连接和是否自动管理,但经测试只能用于当前开机状态, 如果这2个参数都设置为no,然后重启系统,又会自动恢复成connected和managed yes的状态。所以该命令用途不大。注意事项:如果managed设置为no,那么nmcli c reload会读取配置文件,但是不会立即生效,接着如果执行nmcli c up ethX,就会立即生效,同时managed自动变为yes。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

网卡 配置 状态 文件 命令 网络 设备 静态 信息 同时 名字 方法 时候 内容 可以通过 多个 就是 切换 管理 相同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库原理关系模式考试题 登陆网络服务器显示没有创建 java读取数据库表的名字 电脑幻灯片模板无法连接服务器 应用在软件开发云 北京网络软件开发平台 数据库数据类型说明 qq免费电子邮箱发信服务器 手机app软件开发编程实例 数据库打开显示不存在 编译数据库文件 疾控网络安全建设保障方案 河间市九吉网络技术 数据库用什么表示 国内的高科技互联网公司排名 基因芯片数据库有哪些 怎么取消网络安全教育平台 lol手游一般是什么服务器 色情站点都是用的什么服务器 网易我的世界租赁服重置服务器 烟草管理系统怎么打开数据库 晨鹰服务器管理密码 宁国进口软件开发服务销售厂 数据库开发与维护的基本过程 石化党建服务器错误怎么办 北京国家网络安全大学 jsp中如何获取服务器根路径 徐州小型软件开发流程 抢的快软件开发 四大网络安全会议记录
0