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 属性,方便开发者设置和访…...

【48】Android通过libjpeg-turbo库实现图片压缩
(1)公司为节约图片占用服务器存储资源成本,需要对Android手机客户端所传递到云存储服务器中的图片进行压缩,在不影响图片失真程度的情况下,最大限度的压缩图片以节省图片所占用的存储空间。 (2)…...

Linux输入设备应用编程
本章学习输入设备的应用编程,首先要知道什么是输入设备?输入设备其实就是能够产生输入事件的设备就称为输入设备,常见的输入设备包括鼠标、键盘、触摸屏、按钮等等,它们都能够产生输入事件,产生输入数据给计算机系统。…...

【Vulkan入门】03-创建Device
目录 先叨叨git信息关键代码VulkanEnv::CreateDevice() 编译并运行程序题外话 先叨叨 在上篇已经选择了一个合适的PhysicalDevice。 本篇要为这个PhysicalDevice创将一个Device。Device可以理解为APP与PhysicalDevice之间的代理。 所有APP与PhysicalDevice之间交互的资源都通过…...

【jvm】C2编译器
目录 1. 说明2. 编译流程3. 使用与配置4. 性能优化与监控5. 局限性 1. 说明 1.JVM(Java虚拟机)C2编译器是Java编译过程中的重要环节,专门用于将Java字节码编译成高效的本地机器代码,以提升Java程序的执行效率。2.特点:…...

使用 Acme.sh 自动生成和续签免费 SSL 证书(含通配符支持)
Acme.sh 是一个开源的脚本,能够从 ZeroSSL、Let’s Encrypt 等证书颁发机构(CA)获取免费的 HTTPS 证书。该脚本特别简单易用,并且支持多种验证方式。下面将详细介绍使用 Acme.sh 生成、安装和更新证书的各个步骤。 Github地址 使用…...

Android 图形系统之四:Choreographer
Choreographer 是 Android 系统中负责帧同步的核心组件,它协调输入事件、动画和绘制任务,以确保界面以固定频率(通常是每 16ms,一帧)流畅渲染。通过管理 VSYNC 信号和调度任务,Choreographer 是实现流畅 UI…...

CAP定理和BASE理论
CAP定理 CAP定理,也称为布鲁尔定理(Brewer’s Theorem),是分布式系统设计中的一个基本原理。它指出在分布式系统中,一致性(Consistency)、可用性(Availability)和分区容…...

笔记软件:我来、思源笔记、Obsidian、OneNote
最近wolai的会员到期了,促使我更新了一下笔记软件。 首先,wolai作为一个笔记软件,我觉得有很多做得不错的方面(否则我也不会为它付费2年了),各种功能集成得很全(公式识别这个功能我写论文的时候…...

试探互联网如何工作?
Reading: How_does_the_Internet_workhow-does-internet-work Watching:How the Internet Works in 5 Minutes Outline: 互联网通过全球互联的计算机和服务器网络工作,通过标准化协议进行通信。数据被分解成数据包,并使用互联…...

【c++笔试强训】(第三十篇)
目录 爱丽丝的⼈偶(贪⼼构造) 题目解析 讲解算法原理 编写代码 集合(排序) 题目解析 讲解算法原理 编写代码 爱丽丝的⼈偶(贪⼼构造) 题目解析 1.题目链接:登录—专业IT笔试面试备考平…...