CentOS 9 配置静态IP

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 migrate

This 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 管理网络,而nmcliNetworkManager 命令行接口的缩写,是一个用来进行网络配置、管理网络连接的命令工具,可以简化网络设置,尤其是在无头(没有图形界面)环境下。

所以,我们可以尝试用它来设置一个静态 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 1500
        inet 192.168.150.145  netmask 255.255.255.0  broadcast 192.168.150.255
        inet6 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 0
        TX 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,可以使用ifconfignmcli 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 1000
    link/ether 00:0c:29:a4:42:bd brd ff:ff:ff:ff:ff:ff
    altname enp2s1
    inet 192.168.150.145/24 brd 192.168.150.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 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.查看设备的详细信息

显示特定设备的详细信息(如网络接口 eth0wlan0):

nmcli device show <设备名称>

示例:

nmcli device show ens33

10.断开 Wi-Fi 连接

nmcli device disconnect wlan0

nmcli 选项和常见子命令说明
device管理网络设备(如启用/禁用设备、查看设备状态等)。
connection管理网络连接(如激活、停用、修改连接等)。
general显示系统网络管理的基本信息(如版本、状态等)。
wifi用于管理无线网络连接,扫描、连接等。
monitor实时监控网络状态、连接和设备事件。

### 配置静态IP地址 在 CentOS 9 中,默认采用 `NetworkManager` 来管理网络配置,这使得其与早期版本(如 CentOS 7 及之前)在网络设置方面存在差异[^2]。 #### 确定网络接口名称 要找到当前系统的网络接口名称,可以执行命令: ```bash nmcli device status ``` 这条命令会列出所有可用设备及其状态,从中识别出用于连接互联网的物理或虚拟网卡名,比如常见的有 `eth0`, `ens33` 或者其他命名形式。 #### 修改网络配置文件 对于大多数情况而言,在 CentOS 9 上推荐通过编辑由 `NetworkManager` 控制下的特定于接口的配置文件来进行静态 IP 的设定。这些文件通常位于 `/etc/NetworkManager/system-connections/` 目录下,并且是以 `.nmconnection` 结尾[^4]。 假设目标接口名为 `ens33`,那么对应的配置文件将是 `/etc/NetworkManager/system-connections/ens33.nmconnection`。如果该文件不存在,则可能需要先创建它;而如果是修改现有动态分配的 DHCP 连接为静态 IP,则可以直接编辑此文件。 为了简化操作并确保正确无误地完成更改,建议使用如下方法之一来更新配置: ##### 方法A:图形界面工具 (适用于桌面环境) 如果有 GUI 访问权限的话,可以通过点击右上角的小电脑图标进入网络设置窗口,选择相应的以太网适配器后切换到 IPv4 设置标签页,将方法更改为手动输入所需的 IP 地址、子网掩码以及默认网关等信息保存即可生效[^1]。 ##### 方法B:命令行方式 如果没有图形化界面或者偏好 CLI 方式工作,也可以直接利用文本编辑器打开上述提到过的 .nmconnection 文件进行必要的调整。下面是一个典型的静态 IP 配置实例: ```ini [connection] id= ens33 uuid=<自动生成> type=ethernet interface-name=ens33 [ipv4] method=manual address1=192.168.1.100/24,192.168.1.1 dns=8.8.8.8;8.8.4.4; gateway=192.168.1.1 ``` 请注意替换其中的具体数值部分以匹配实际需求,例如 IP 地址 (`192.168.1.100`) 和子网前缀长度 (`/24`) 应当依据所在局域网的情况适当调整。 最后一步是重启 NetworkManager 服务使新的配置立即起效: ```bash sudo systemctl restart NetworkManager ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

duration~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值