CentOS 9 配置静态IP
文章目录
- 1_问题原因
- 2_nmcli 配置静态IP
- 3_使用配置文件固定IP
- 4_重启后存在的问题
- 5_nmcli 补充
1_问题原因
CentOS 7 于 2014年6月发布,基于 RHEL 7,并在 2024年6月30日 结束维护。
CentOS 9 作为目前的最新版本,今天闲来闲来无事下载下来后研究研究。
为了方便日后学习使用,第一步就是配置静态IP,方便ssh服务远程连接。
所以我按照以往配置静态ip的经验进行了如下操作:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
但是发现,并没有 NAT 网络的这个配置文件:

进入该配置文件所在目录下,查看详细信息:
cd /etc/sysconfig/network-scripts
ls
发现如下文件:

文件内容如下:
[shenyang@localhost network-scripts]$ cat readme-ifcfg-rh.txt
NetworkManager stores new network profiles in keyfile format in the
/etc/NetworkManager/system-connections/ directory.Previously, NetworkManager stored network profiles in ifcfg format
in this directory (/etc/sysconfig/network-scripts/). However, the ifcfg
format is deprecated. By default, NetworkManager no longer creates
new profiles in this format.Connection profiles in keyfile format have many benefits. For example,
this format is INI file-based and can easily be parsed and generated.Each section in NetworkManager keyfiles corresponds to a NetworkManager
setting name as described in the nm-settings(5) and nm-settings-keyfile(5)
man pages. Each key-value-pair in a section is one of the properties
listed in the settings specification of the man page.If you still use network profiles in ifcfg format, consider migrating
them to keyfile format. To migrate all profiles at once, enter:# nmcli connection migrateThis command migrates all profiles from ifcfg format to keyfile
format and stores them in /etc/NetworkManager/system-connections/.Alternatively, to migrate only a specific profile, enter:# nmcli connection migrate <profile_name|UUID|D-Bus_path>For further details, see:
* nm-settings-keyfile(5)
* nmcli(1)
大致意思就是老版本的配置文件已被弃用,迁移到了
/etc/NetworkManager/system-connections/目录中。
要一次迁移所有配置文件可以使用nmcli connection migrate命令,详细信息参考nmcli。
2_nmcli 配置静态IP
那么这个nmcli又是什么呢?经过查阅资料得知:
CentOS 9 默认使用 NetworkManager 管理网络,而nmcli是 NetworkManager 命令行接口的缩写,是一个用来进行网络配置、管理网络连接的命令工具,可以简化网络设置,尤其是在无头(没有图形界面)环境下。
所以,我们可以尝试用它来设置一个静态 IP:
sudo nmcli con mod "ens33" ipv4.addresses 192.168.150.145/24 # IP地址,自己设置,要匹配网络范围
sudo nmcli con mod "ens33" ipv4.gateway 192.168.150.2 # 网关,要和VMware中配置的虚拟网卡一致
sudo nmcli con mod "ens33" ipv4.dns "192.168.150.2" # DNS服务器,和网关一致即可 8.8.8.8 也可以
sudo nmcli con mod "ens33" ipv4.method manual # IPv4配置方法设置为手动,也就是启用静态IP配置
sudo nmcli con up "ens33" # 使配置生效
查看是否配置成功:
[shenyang@localhost network-scripts]$ ifconfig
ens33: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500inet 192.168.150.145 netmask 255.255.255.0 broadcast 192.168.150.255inet6 fe80::20c:29ff:fea4:42bd prefixlen 64 scopeid 0x20<link>ether 00:0c:29:a4:42:bd txqueuelen 1000 (Ethernet)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[shenyang@localhost network-scripts]$ ping www.baidu.com
PING www.baidu.com.localdomain (198.18.1.175) 56(84) 比特的数据。
64 比特,来自 198.18.1.175 (198.18.1.175): icmp_seq=1 ttl=128 时间=0.582 毫秒
64 比特,来自 198.18.1.175 (198.18.1.175): icmp_seq=2 ttl=128 时间=0.683 毫秒
64 比特,来自 198.18.1.175 (198.18.1.175): icmp_seq=3 ttl=128 时间=0.591 毫秒
64 比特,来自 198.18.1.175 (198.18.1.175): icmp_seq=4 ttl=128 时间=0.386 毫秒
nmcli配置到此完成!
另外在配置前一定要注意自己的网络接口名称是否是
ens33,可以使用ifconfig或nmcli d命令查看,如果不一致别忘了进行替换。
3_使用配置文件固定IP
还记得我们上面提到过的/etc/NetworkManager/system-connections/目录吗 ?
编辑该目录下的配置文件也可以达到相同的效果:
cd /etc/NetworkManager/system-connections/
ls
可以看到对应的ens33.nmconnection文件,修改内容如下:
sudo vim ens33.nmconnection
[connection]
id=ens33
uuid=2c1fb13d-391d-4add-9919-7cebb1f76782
type=ethernet
autoconnect=false
interface-name=ens33[ethernet][ipv4]
address1=192.168.150.145/24,192.168.150.2
dns=192.168.150.2;
method=manual[ipv6]
addr-gen-mode=eui64
method=auto[proxy]
修改配置文件后,需要重启网络服务以使更改生效。
sudo systemctl restart NetworkManager
或者重启网卡:
sudo nmcli connection reload # 重新加载配置文件, 并使网络连接生效
sudo nmcli con up ens33 # 重新启用网络接口并应用新的配置
验证配置:
ip a show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:a4:42:bd brd ff:ff:ff:ff:ff:ffaltname enp2s1inet 192.168.150.145/24 brd 192.168.150.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fea4:42bd/64 scope link noprefixroute valid_lft forever preferred_lft forever
可以看到看到
ens33接口已经使用了配置的静态 IP 地址192.168.150.145。
4_重启后存在的问题
部分版本可能出现重启后发现配置没有生效,使用ifconfig命令也没有查看到对应的IP地址,但是/etc/NetworkManager/system-connections/配置文件中的内容确实是我们配置之后的。
这是由于配置的网卡(比如ens33)没有设置自动连接造成的,如果使用nmcli connection up ens33后再查看会发现配置生效了。
使用如下命令解决:
sudo nmcli connection modify "ens33" connection.autoconnect yes
sudo systemctl restart NetworkManager
还可以通过修改配置文件的方式确保网卡开机后自动连接:
sudo vim /etc/NetworkManager/system-connections/ens33.nmconnection
在文件中找到 [connection] 部分,确保 autoconnect 设置为 true:
[connection]
id=ens33
uuid=2c1fb13d-391d-4add-9919-7cebb1f76782
type=ethernet
autoconnect=true # 确保这一行设置为 true
interface-name=ens33
使更改生效,重新启动 NetworkManager:
sudo systemctl restart NetworkManager
确保 NetworkManager 服务在系统启动时自动启动:
sudo systemctl enable NetworkManager
配置完毕后, ens33 在系统启动时就能自动连接了。
5_nmcli 补充
nmcli 的功能和作用
nmcli 允许用户执行以下常见的网络管理任务:
- 配置有线和无线网络
- 查看网络接口和连接的状态
- 启动、停止、重新连接网络
- 设置静态或动态 IP 地址
- 管理 VPN 连接
- 配置网络的代理设置等
nmcli 通常在需要通过命令行进行网络管理时非常有用,尤其是在没有图形界面的服务器环境中。
基本语法:nmcli [选项] <命令> [参数]
常用命令和用法
1.查看当前网络连接的状态,包括接口、IP 地址等信息
nmcli device status
示例输出:
DEVICE TYPE STATE CONNECTION
ens33 ethernet 已连接 ens33
lo loopback 连接(外部) lo
2.查看所有连接
列出所有网络连接(包括有线、无线、VPN 等):
nmcli connection show
示例输出:
NAME UUID TYPE DEVICE
ens33 2c1fb13d-391d-4add-9919-7cebb1f76782 ethernet ens33
lo 4b7c1923-16d8-4f53-90f0-e17b9a6519e0 loopback lo
3.激活网络连接
激活特定的网络连接(例如连接到一个 Wi-Fi 网络):
nmcli connection up <连接名称>
例如,连接到 ens33:
nmcli connection up ens33
4.停用网络连接
停止一个网络连接(断开 Wi-Fi、以太网等):
nmcli connection down <连接名称>
例如,断开 ens33:
nmcli connection down ens33
5.配置无线网络
连接到一个无线网络:
nmcli device wifi connect <SSID> password <密码>
示例:
nmcli device wifi connect MyNetwork password MyPassword
6.配置静态 IP 地址
设置静态 IP 地址:
nmcli connection modify <连接名称> ipv4.addresses <IP地址>/<子网掩码> ipv4.method manual
nmcli connection up <连接名称>
示例:
nmcli connection modify Wired connection 1 ipv4.addresses 192.168.1.100/24 ipv4.method manual
nmcli connection up Wired connection 1
7.配置 DNS 服务器
设置 DNS 服务器:
nmcli connection modify <连接名称> ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection up <连接名称>
8.查看当前活动的 IP 地址
nmcli device show
这将显示设备的详细信息,包括当前的 IP 地址。
9.查看设备的详细信息
显示特定设备的详细信息(如网络接口 eth0 或 wlan0):
nmcli device show <设备名称>
示例:
nmcli device show ens33
10.断开 Wi-Fi 连接
nmcli device disconnect wlan0
| nmcli 选项和常见子命令 | 说明 |
|---|---|
| device | 管理网络设备(如启用/禁用设备、查看设备状态等)。 |
| connection | 管理网络连接(如激活、停用、修改连接等)。 |
| general | 显示系统网络管理的基本信息(如版本、状态等)。 |
| wifi | 用于管理无线网络连接,扫描、连接等。 |
| monitor | 实时监控网络状态、连接和设备事件。 |
相关文章:
CentOS 9 配置静态IP
文章目录 1_问题原因2_nmcli 配置静态IP3_使用配置文件固定IP4_重启后存在的问题5_nmcli 补充 1_问题原因 CentOS 7 于 2014年6月发布,基于 RHEL 7,并在 2024年6月30日 结束维护。 CentOS 9 作为目前的最新版本,今天闲来闲来无事下载下来后…...
深入解析 Webhook:从原理到实践的全面指南
1. 引言 1.1 什么是 Webhook? Webhook 是一种基于 HTTP 回调的轻量级通信机制,它允许一个系统实时向另一个系统发送数据。当特定事件发生时,Webhook 会主动向指定的 URL 发送 HTTP 请求,通常携带事件相关的数据。这种被动接收通…...
基于springboot+vue实现的创新创业学分管理系统 (源码+L文+ppt)4-111
4 系统总体设计 4.1系统功能结构设计图 根据需求说明设计系统各功能模块。采用模块化设计方法实现一个复杂结构进行简化,分成一个个小的容易解决的板块,然后再将小的板块继续分化成功能单一的更小模块。模块化设计方法使测试调试、维护更容易ÿ…...
如何高效地架构一个Java项目
引言 Java是企业级应用开发的主流语言之一,而我们作为使用Java语言的程序员,职称有初级、中级、高级、资深、经理、架构,但我们往往只是慢慢通过经验的积累迭代了自己的等级,如果没有保持学习的习惯,大多数程序员会停留…...
Scala的模式匹配(8)
package hfdobject Test35_1 { //需求:现在有一个数组Array(1,2,3,4)。我希望能定义三个变量,他们的值分别是数组中的第1,2,3个元素的值 def main(args: Array[String]): Unit {val arr Array(1,2,3,4,5)//第一个元素的值:arr(0…...
nodejs30: CSS 剪辑路径clip-path导致伪元素不可见问题及解决方法
相关问题 应用圆角裁剪时无法显示::after 取消clip-path设置: 完整问题代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, i…...
Git分布式版本控制工具 Git基本概念、Git工作流程、Git常用命令、Git远程仓库、IDEA操作Git
目录 1.Git基本概念 1.1 概述 1.1.1 开发中的实际场景 1.1.2 版本控制器的方式 1.1.2.1 集中式版本控制工具(SVN) 1.1.2.2 分布式版本控制工具(Git) 2.概述git工作流程 3.Git常用命令 3.1 Git环境配置 3.1.1 下载与安装 3.1.2 基本配置 3.1.3 为常用指令配置别名&…...
十,[极客大挑战 2019]Secret File1
点击进入靶场 查看源代码 有个显眼的紫色文件夹,点击 点击secret看看 既然这样,那就回去查看源代码吧 好像没什么用 抓个包 得到一个文件名 404 如果包含"../"、"tp"、"input"或"data",则输出"…...
Android 获取数字键盘和输入类型
在Android中,获取数字键盘可以通过为EditText设置输入类型为number或numberPassword来实现。以下是一个简单的例子: <!-- 在XML布局文件中 --> <EditText android:id"id/editTextNumber" android:layout_width"match_parent…...
8. 一分钟读懂“代理模式”
8.1 模式介绍 代理模式是一种结构型设计模式,它通过提供一个代理对象来替代对另一个对象(真实对象)的访问。代理对象与真实对象实现相同的接口,并通过代理类对真实对象的访问进行控制,可以在调用前后执行附加操作&…...
【实战攻略】如何从零开始快速实现深度学习新想法?——四步走战略
标题 【实战攻略】如何从零开始快速实现深度学习新想法?——四步走战略 【核心结论】 通过四步走战略,即找到baseline论文、深入baseline代码、搭建自己的pipeline、融入核心算法,新手也能快速实现深度学习新想法。 【通俗解释࿰…...
Creating Server TCP listening socket *:6379: bind: No error
启动redis报错:Creating Server TCP listening socket *:6379: bind: No error 解决方案: 1、直接在命令行中输入 redis-cli.exe 2、输入shutdown,关闭 3、输exit,退出 4、重新输入 redis-server.exe redis.windows.conf&…...
Go热加载工具air-使用说明-win11问题解决指南
写web程序 每次都要ctrlc 然后go run .非常但疼 用一下这个热加载工具air Live reload for Go apps 贴个github地址:https://github.com/air-verse/air 1. go版本1.23先install一下 go install github.com/air-verse/airlatest下载完发现输入air windows还是报…...
华为HarmonyOS 让应用快速拥有账号能力 -- 2 获取用户头像昵称
场景介绍 如应用需要完善用户头像昵称信息,可使用Account Kit提供的头像昵称授权能力,用户允许应用获取头像昵称后,可快速完成个人信息填写。以下只针对Account kit提供的头像昵称授权能力进行介绍,若要获取头像还可通过场景化控…...
oracle表迁移至postgre
第一步: 导出表结构 进入脚本 第二步: 删除spool相关和prompt相关(不需要表空间的情况下) 类似以下语句 第三步: 修改数据类型 VARCHAR2 --> VARCHAR VARCHAR2(200 CHAR) --> VARCHAR(200) NUMBER(10,2) --> numeric(10,2…...
【PlantUML系列】类图(一)
目录 一、类 二、接口 三、抽象类 四、泛型类 五、类之间的关系 六、添加注释 七、包图 八、皮肤参数 一、类 使用class关键字定义类,类名后跟大括号,声明类的属性和方法。 属性:格式为{visibility} attributeName : AttributeType…...
Unity AssetBundles(AB包)
目录 前言 AB包是什么 AB包有什么作用 1.相对Resources下的资源AB包更好管理资源 2.减小包体大小 3.热更新 官方提供的打包工具:Asset Bundle Browser AB包资源加载 AB包资源管理模块代码 前言 在现代游戏开发中,资源管理是一项至关重要的任务。随着游戏内容…...
腾讯面试:如何解决哈希冲突?
我们面试时经常被问到HashMap是怎么解决哈希冲突的,很多同学对其含糊其词、一知半解。因此小编对相关知识进行了总结,希望帮助读者加深对其理解。 哈希表就是通过散列函数将键映射到定值,简单来说就是一个键对应一个值。 而通过散列函数映射…...
【动手学运动规划】 4.5 A*算法
我宁愿永远做我自己,也不愿成为别人,即使那个人比你更快乐。 —《成为简奥斯汀》 🏰代码及环境配置:请参考 环境配置和代码运行! 4.5.1 概述 Dijkstra算法是基于广度优先搜索策略来遍历空间内的所有节点,最终计算出…...
Spring Boot 3.4.0 发布:功能概览与示例
Spring Boot 3.4.0 带来了许多增强功能,使现代应用开发更加高效、便捷和强大。以下是最新功能的完整概述,以及一些帮助您快速入门的代码示例。 1. 应用程序版本管理 Spring Boot 引入了 spring.application.version 属性,方便开发者设置和访…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...
如何在Windows本机安装Python并确保与Python.NET兼容
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
