在日常的服务器运维工作中,为虚拟机中的CentOS系统修改IP地址是一项基础且关键的技能,无论是为了适应新的网络环境,还是进行服务器迁移或网络规划,掌握正确的配置方法都至关重要,本文将详细介绍在VMware虚拟机环境中,为CentOS 7及CentOS 8系统修改IP地址的两种主流方法:使用传统的NetworkManager服务配置静态IP,以及使用功能更现代的nmcli命令行工具。
理解网络服务:NetworkManager与network
在开始操作之前,我们需要对CentOS系统中的网络服务有一个基本的了解,较新版本的CentOS(7和8)默认使用NetworkManager服务来管理网络连接,它是一个动态的网络控制和配置系统,能够保持网络设备和连接处于正常工作状态,系统也保留了传统的network服务,但在实际应用中,NetworkManager因其强大的功能和对复杂网络场景的良好支持,已成为首选。
在修改IP前,最好先确认当前系统使用的网络服务,以避免配置冲突。
通过修改网络配置文件设置静态IP
这是一种直接且持久有效的方法,通过编辑网卡配置文件来实现,其优势在于配置一次即可永久生效,非常适合服务器环境。
第一步:定位网络接口与配置文件
我们需要确定要修改哪个网络接口,虚拟机中主要的网络接口名为 ens33 或 ens160,具体名称可能因系统版本和VMware配置而异,您可以通过 ip addr 或 ifconfig(需安装net-tools)命令查看。
ip addr
在命令输出中,找到状态为 UP 且非lo(本地回环)的接口,记下其名称。
进入网络配置脚本目录 /etc/sysconfig/network-scripts/,您会看到名为 ifcfg-ens33 或类似名称的文件(ens33 替换为您的实际接口名)。
第二步:编辑网络配置文件
使用文本编辑器(如vi或nano)打开该文件,您需要具备root权限。
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
通常如下所示:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
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=your-uuid-here
DEVICE=ens33
ONBOOT=yes 我们需要对关键参数进行修改:
BOOTPROTO:将此参数的值从dhcp修改为static,这告知系统我们将为该接口配置静态IP地址。ONBOOT:确保其值为yes,以保证系统启动时自动激活该网络接口。- 添加静态IP参数:在文件末尾或合适位置,添加以下行:
IPADDR=192.168.1.100 # 您希望设置的静态IP地址
NETMASK=255.255.255.0 # 子网掩码,或使用PREFIX=24
GATEWAY=192.168.1.1 # 默认网关地址
DNS1=8.8.8.8 # 主DNS服务器地址
DNS2=114.114.114.114 # 备DNS服务器地址 请务必将示例IP地址、子网掩码、网关和DNS服务器替换为您实际网络环境中的值,子网掩码也可以使用 PREFIX=24 这种CIDR格式来表示。
修改完成后的配置文件应类似于:
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=114.114.114.114 编辑完成后,保存并退出编辑器。
第三步:重启网络服务
为了使新的配置生效,我们需要重启网络服务,在CentOS 7和8中,可以使用以下命令:
# 如果使用传统network服务 sudo systemctl restart network # 如果确认使用NetworkManager,推荐使用以下命令 sudo systemctl restart NetworkManager
通常情况下,重启任一服务均可生效,如果遇到问题,可以尝试两个服务都重启一次。
第四步:验证配置
使用 ip addr show ens33 命令检查指定的网络接口,确认其是否已成功获取到我们设置的静态IP地址,可以尝试 ping 一个外网地址(如 ping 8.8.8.8)或网关,以测试网络连通性。
ip addr show ens33 ping -c 4 8.8.8.8
使用nmcli命令行工具
nmcli 是NetworkManager提供的强大命令行工具,它允许用户无需手动编辑文件即可快速地管理和配置网络,这种方法在脚本化和远程管理中尤其方便。
查看当前连接
列出所有网络连接。
nmcli connection show
找到与您要修改的物理接口(如ens33)相关联的连接名称。
修改连接配置
假设连接名为“有线连接 1”或类似,我们可以使用以下命令一次性完成静态IP的配置:
sudo nmcli connection modify "有线连接 1" \ ipv4.addresses 192.168.1.100/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns "8.8.8.8,114.114.114.114" \ ipv4.method manual \ connection.autoconnect yes
参数解释:
ipv4.addresses: 设置IP地址和CIDR格式的子网掩码。ipv4.gateway: 设置默认网关。ipv4.dns: 设置DNS服务器,多个DNS用逗号分隔。ipv4.method manual: 设置为手动配置(即静态IP),与之相对的是auto(DHCP)。connection.autoconnect yes: 确保开机自动连接。
重新激活连接
配置修改后,需要将连接下线再上线以应用更改。
sudo nmcli connection down "有线连接 1" sudo nmcli connection up "有线连接 1"
验证配置
同样,使用 ip addr 和 ping 命令验证新的IP地址和网络连通性是否正常。
个人观点
在实际生产环境中,我更倾向于使用方法一(编辑配置文件),原因在于,配置文件本身就是一个清晰、永久的记录,它独立于任何临时性的命令行工具,当需要回顾网络配置、进行系统备份或通过自动化工具(如Ansible)批量配置时,处理一个静态的文本文件远比解析和模拟一系列交互命令要简单可靠得多,虽然nmcli功能强大且灵活,但对于需要固化和审计的服务器基础配置而言,直接管理配置文件提供了更强的确定性和可追溯性,无论选择哪种方法,修改前后的测试与验证都是不可或缺的环节,它能有效避免因配置失误导致的服务器失联。
