菜鸟科技网

CentOS修改IP地址命令是什么?

在CentOS系统中修改IP地址是日常运维中常见的操作,尤其是在网络配置、服务器部署或故障排查场景下,CentOS 7及更高版本默认使用NetworkManager管理网络,而CentOS 6及更早版本则使用传统的网络脚本(如ifcfg文件),以下将详细说明不同版本下修改IP地址的命令及操作步骤,涵盖静态IP和动态IP(DHCP)的配置方法,并补充网络服务重启、配置验证等关键操作。

CentOS修改IP地址命令是什么?-图1
(图片来源网络,侵删)

CentOS 7/8/9(使用NetworkManager)

CentOS 7及以上版本推荐使用nmcli(NetworkManager命令行工具)或nmtui(文本界面工具)配置网络,相比传统ifcfg文件更高效且支持实时生效。

查看当前网络连接信息

使用nmcli查看系统中的网络连接(通常为eno16777736eth0ens33等,具体名称根据网卡标识而定):

nmcli connection show

输出示例中,NAME列即为连接名称,DEVICE列为对应的网卡设备名。

修改静态IP地址

假设连接名称为ens33,需配置静态IP地址为168.1.100,子网掩码为24(即255.255.0),网关为168.1.1,DNS为8.8.8114.114.114,执行以下步骤:

CentOS修改IP地址命令是什么?-图2
(图片来源网络,侵删)

(1)修改连接配置

sudo nmcli connection modify ens33 \
ipv4.method manual \
ipv4.addresses 192.168.1.100/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns "8.8.8.8 114.114.114.114" \
connection.autoconnect yes

参数说明:

  • ipv4.method manual:指定IPv4配置方法为静态IP(默认为auto,即DHCP)。
  • ipv4.addresses:IP地址及子网掩码(/24表示掩码长度,等同于255.255.0)。
  • ipv4.gateway:默认网关地址。
  • ipv4.dns:DNS服务器地址,多个DNS用空格分隔。
  • connection.autoconnect yes:设置开机自动连接该网络。

(2)重启网络连接使配置生效

sudo nmcli connection down ens33 && sudo nmcli connection up ens33

或使用nmcli connection reload重新加载配置后重启网络服务:

sudo nmcli connection reload && sudo systemctl restart NetworkManager

(3)验证配置

使用ip addr查看IP地址是否生效:

ip addr show ens33

使用ping测试网络连通性:

CentOS修改IP地址命令是什么?-图3
(图片来源网络,侵删)
ping -c 4 192.168.1.1
ping -c 4 www.baidu.com

修改为DHCP动态获取IP

若需切换回DHCP自动获取IP,执行:

sudo nmcli connection modify ens33 ipv4.method auto
sudo nmcli connection down ens33 && sudo nmcli connection up ens33

验证方式同上,此时ip addr show中IP地址应为DHCP服务器分配的动态地址。

CentOS 6及更早版本(使用ifcfg文件)

CentOS 6及更早版本通过编辑网卡配置文件(位于/etc/sysconfig/network-scripts/)实现IP修改,配置后需重启网络服务。

定位网卡配置文件

网卡配置文件命名规则为ifcfg-网卡名,例如ifcfg-eth0,使用以下命令查看:

ls /etc/sysconfig/network-scripts/

根据文件名确定目标网卡配置文件(如ifcfg-eth0)。

修改静态IP地址

使用vinano编辑文件:

sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

修改或添加以下关键参数(以静态IP为例):

DEVICE=eth0          # 网卡设备名
TYPE=Ethernet        # 网络类型
BOOTPROTO=static      # 配置方法:static(静态)、dhcp(动态)
IPADDR=192.168.1.100  # 静态IP地址
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.1.1   # 默认网关
DNS1=8.8.8.8          # 主DNS
DNS2=114.114.114.114  # 备DNS
ONBOOT=yes            # 开机是否启动网卡

参数说明:

  • BOOTPROTOstatic表示静态IP,dhcp表示动态IP。
  • IPADDRNETMASKGATEWAYDNS需根据实际网络环境填写。
  • ONBOOT:设置为yes确保开机时自动加载网卡配置。

重启网络服务

保存文件后,执行以下命令重启网络服务:

sudo service network restart

或使用/etc/init.d/network restart(兼容旧版本)。

验证配置

ifconfig eth0          # 查看IP地址配置
ping -c 4 192.168.1.1  # 测试网关连通性
ping -c 4 www.baidu.com # 测试外网连通性

修改为DHCP动态获取IP

若需切换为DHCP,只需修改ifcfg文件中的BOOTPROTO参数为dhcp,并删除IPADDRNETMASKGATEWAYDNS等静态配置(保留DEVICETYPEONBOOT即可),然后重启网络服务:

sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 修改 BOOTPROTO=dhcp,删除静态IP相关参数
sudo service network restart

常见网络配置问题及解决

修改IP后无法上网

  • 原因:网关或DNS配置错误、网络服务未重启、网卡未激活。
  • 解决
    1. 检查/etc/sysconfig/network(CentOS 6)或nmcli connection show(CentOS 7+)中的网关配置是否正确。
    2. 确认DNS配置(CentOS 6需检查/etc/resolv.conf,CentOS 7+可通过nmcli查看)。
    3. 重启网络服务(CentOS 6用service network restart,CentOS 7+用nmcli connection down/up)。

多网卡IP冲突

  • 原因:多个网卡配置相同IP段或网关。
  • 解决:使用ip addr查看所有网卡IP,通过nmcliifcfg文件修改冲突网卡的IP地址,确保网关唯一且与IP段匹配。

不同版本修改IP命令对比

操作场景 CentOS 7/8/9(nmcli命令) CentOS 6(ifcfg文件操作)
查看网络连接 nmcli connection show ls /etc/sysconfig/network-scripts/
配置静态IP nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.1.100/24 ... 编辑ifcfg-eth0,设置BOOTPROTO=static及相关参数
切换DHCP nmcli connection modify ens33 ipv4.method auto 修改ifcfg-eth0BOOTPROTO=dhcp
重启网络服务 nmcli connection down ens33 && nmcli connection up ens33 service network restart
验证IP配置 ip addr show ens33 ifconfig eth0

相关问答FAQs

Q1:修改CentOS IP地址后,ping网关不通怎么办?
A:首先检查IP地址、子网掩码、网关配置是否正确(例如168.1.100的网关应为168.1.1,而非168.0.1),若配置正确,可尝试关闭防火墙(sudo systemctl stop firewalld)或检查SELinux是否阻止网络访问(getenforce查看状态,setenforce 0临时关闭),若仍不通,可能是网卡驱动问题或物理线路故障,需检查网线连接或更换网卡。

Q2:CentOS 7使用nmcli修改IP后,重启服务器IP配置丢失怎么办?
A:通常是因为未设置connection.autoconnect yes,执行sudo nmcli connection modify <连接名> connection.autoconnect yes确保开机自动加载配置,若仍无效,可能是NetworkManager服务异常,可通过sudo systemctl restart NetworkManager重启服务,或检查/etc/sysconfig/network-scripts/目录下是否存在冗余的ifcfg文件(旧版本配置可能与新配置冲突)。

分享:
扫描分享到社交APP
上一篇
下一篇