在服务器管理和网络维护中,修改CentOS操作系统的内网IP地址是一项常见且基础的操作,无论是为了适应新的网络环境、解决IP冲突,还是为了规划网络架构,掌握正确的方法都至关重要,CentOS的不同版本在网络配置方式上存在差异,主要分为以CentOS 7为代表的传统配置文件法和以CentOS 8/9为代表的NetworkManager
命令行工具法,本文将详细介绍这两种主流方法,并提供必要的注意事项,确保您能够安全、准确地完成IP地址的修改。
准备工作
在开始修改IP地址之前,请确保您已经准备好以下信息:
- 新的IP地址:
168.1.100
。 - 子网掩码:
255.255.0
或CIDR表示法24
。 - 默认网关:
168.1.1
。 - DNS服务器:可以是公网DNS如
114.114.114
或8.8.8
,也可以是内网DNS。 - 管理员权限:您需要拥有
root
用户权限或sudo
权限来执行配置修改和网络服务重启操作。
强烈建议通过服务器的物理控制台(如KVM、iDRAC、iLO)进行操作,以防因配置错误导致SSH连接中断。
适用于 CentOS 7 及更早版本 (编辑网络配置文件)
在CentOS 7及其更早的版本中,网络配置主要通过编辑位于/etc/sysconfig/network-scripts/
目录下的脚本文件来完成。
第一步:定位并编辑配置文件
进入网络配置目录,查看当前网络接口的配置文件名,文件名通常格式为ifcfg-<接口名>
,例如ifcfg-eth0
或ifcfg-ens33
。
cd /etc/sysconfig/network-scripts/ ls
使用vi
或nano
等文本编辑器打开对应的配置文件,编辑ifcfg-ens33
:
vi ifcfg-ens33
第二步:修改配置参数
修改为静态IP配置,一个典型的静态配置文件如下所示:
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static # 将 dhcp 改为 static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=... # 保持原有UUID不变 DEVICE=ens33 ONBOOT=yes # 确保为 yes,开机启动此网卡 # 以下是新增或修改的静态IP配置 IPADDR=192.168.1.100 # 设置静态IP地址 NETMASK=255.255.255.0 # 设置子网掩码 GATEWAY=192.168.1.1 # 设置默认网关 DNS1=114.114.114.114 # 设置首选DNS服务器 DNS2=8.8.8.8 # 设置备用DNS服务器(可选)
下表对关键参数进行了解释:
参数 | 说明 | 示例值 |
---|---|---|
BOOTPROTO | 网卡启动协议,static 为静态,dhcp 为动态 | static |
ONBOOT | 是否在系统启动时激活此网卡,必须设为yes | yes |
IPADDR | 静态IP地址 | 168.1.100 |
NETMASK | 子网掩码 | 255.255.0 |
GATEWAY | 默认网关地址 | 168.1.1 |
DNS1/DNS2 | DNS服务器地址 | 114.114.114 |
第三步:重启网络服务并验证
保存并退出编辑器后,执行以下命令重启网络服务以使配置生效:
systemctl restart network
服务重启成功后,使用ip addr
命令查看新的IP地址是否已正确配置:
ip addr show ens33
适用于 CentOS 8/9 及 Stream 版本 (使用 nmcli 命令)
从CentOS 8开始,官方推荐使用NetworkManager
的命令行工具nmcli
来管理网络配置,这比直接编辑文件更为高效和不易出错。
第一步:查看当前网络连接
使用nmcli
命令列出所有网络连接:
nmcli connection show
输出结果中,NAME
列显示了连接的名称,例如Wired connection 1
或ens33
,请记下您要修改的连接名称。
第二步:修改连接配置
假设连接名称为ens33
,使用以下一系列命令来修改其IP配置:
# 1. 设置IP地址和子网掩码(使用CIDR表示法,24代表255.255.255.0) nmcli connection modify ens33 ipv4.addresses 192.168.1.100/24 # 2. 设置默认网关 nmcli connection modify ens33 ipv4.gateway 192.168.1.1 # 3. 设置DNS服务器 nmcli connection modify ens33 ipv4.dns "114.114.114.114,8.8.8.8" # 4. 将IP地址获取方式改为手动(manual) nmcli connection modify ens33 ipv4.method manual # 5. 重新应用配置,激活连接 nmcli connection up ens33
第三步:验证配置
同样,使用ip addr
命令验证IP地址是否已更新:
ip addr show ens33
您也可以使用nmcli
命令查看连接的详细信息:
nmcli connection show ens33 | grep ipv4
重要注意事项与故障排除
- 备份配置文件:在进行任何修改之前,务必备份原始的网络配置文件,对于方法一,可以执行
cp ifcfg-ens33 ifcfg-ens33.bak
。 - SSH连接风险:如果通过SSH远程操作,修改IP后当前的SSH连接会断开,请确保新IP地址可达,或者通过控制台操作。
- 防火墙设置:修改IP后,请检查防火墙(如
firewalld
)规则,确保新IP地址的相应端口(如SSH的22端口)已被允许通过。 - 配置不生效:如果配置重启后不生效,请检查配置文件语法是否正确(特别是方法一),
ONBOOT
是否为yes
,以及是否重启了正确的网络服务或连接。
相关问答 (FAQs)
如何将IP地址设置为通过DHCP动态获取?
解答:
- 对于CentOS 7:编辑
ifcfg-<接口名>
文件,将BOOTPROTO=static
修改为BOOTPROTO=dhcp
,并删除或注释掉IPADDR
、NETMASK
、GATEWAY
等静态配置行,然后执行systemctl restart network
。 - 对于CentOS 8/9:使用
nmcli
命令,将IPv4方法改为dhcp
,命令如下:nmcli connection modify <连接名称> ipv4.method dhcp nmcli connection up <连接名称>
系统会自动从DHCP服务器获取IP地址、网关和DNS等信息。
修改配置并重启网络后,IP地址没有生效怎么办?
解答:
这是一个常见问题,可以从以下几个方面排查:
:确保在CentOS 7的配置文件中 ONBOOT=yes
,否则网卡不会在启动时自动激活。- 配置文件语法错误:在CentOS 7中,检查
ifcfg
文件中是否有拼写错误、多余的空格或引号不匹配等问题,可以使用systemctl status network
查看网络服务启动时是否有报错信息。 - 服务或连接未正确重启:确保执行了正确的重启命令,CentOS 7是
systemctl restart network
,而CentOS 8/9是nmcli connection up <连接名称>
。 - NetworkManager工具冲突:在CentOS 7中,如果同时启用了
network
服务和NetworkManager
服务,可能会导致冲突,通常建议禁用其中一个,保持网络管理方式的一致性。 - SELinux限制:在极少数情况下,SELinux可能会阻止网络配置文件的读取或应用,可以临时将其设置为
permissive
模式(setenforce 0
)进行测试,如果解决问题,则需要调整SELinux策略而非长期禁用它。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复