在 CentOS 系统管理员的工作中,修改 IP 地址是一项基础且至关重要的任务,无论是服务器迁移、网络拓扑调整还是临时测试,掌握如何通过命令行精确配置网络参数都是必备技能,值得注意的是,CentOS 不同版本间网络配置的方法存在显著差异,主要分为以 CentOS 6/7 为代表的传统 ifcfg
文件配置法和以 CentOS 8/9/Stream 为代表的 NetworkManager
工具配置法,理解并熟练运用这两种方法,将能高效应对各种网络环境下的配置需求。
传统方法:编辑网络配置文件(适用于 CentOS 6/7)
在较旧的 CentOS 版本中,网络接口的配置信息主要存储在 /etc/sysconfig/network-scripts/
目录下的 ifcfg-<interface_name>
文件中,通过手动编辑这些文件,可以实现对静态 IP 地址的永久性配置。
第一步:识别网络接口名称
需要确定要配置的网络接口名称,可以使用以下命令查看系统中所有活动的网络接口:
ip addr show
或者使用传统的 ifconfig
命令(如果已安装):
ifconfig
通常会看到类似 eth0
, ens33
, enp0s3
这样的名称,请记下您需要修改的接口名。
第二步:编辑配置文件
使用 vi
或 nano
等文本编辑器打开对应的配置文件,如果要配置 ens33
接口,则编辑:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
第三步:修改配置参数
决定了接口的行为,将 BOOTPROTO
设置为 static
以启用静态 IP,并填写相应的网络信息,以下是一个典型的静态 IP 配置示例:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=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=some-unique-identifier-here
DEVICE=ens33
ONBOOT=yes
# 静态 IP 配置核心部分
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
下表详细解释了这些关键参数的含义:
参数 | 说明 |
---|---|
BOOTPROTO | 设置 IP 获取协议。static 表示静态 IP,dhcp 表示动态获取。 |
ONBOOT | 设置是否在系统启动时激活此网络接口。yes 表示激活,no 表示不激活。 |
IPADDR | 指定静态 IP 地址。 |
NETMASK | 指定子网掩码。 |
GATEWAY | 指定默认网关地址。 |
DNS1 , DNS2 | 指定 DNS 服务器的地址,可以配置多个。 |
第四步:重启网络服务
保存并退出编辑器后,需要重启网络服务以使配置生效,在 CentOS 7 中,推荐使用 systemctl
命令:
systemctl restart network
执行完毕后,系统将应用新的 IP 配置。
现代方法:使用 NetworkManager(适用于 CentOS 8/9/Stream)
从 CentOS 8 开始,network-scripts
软件包被弃用,官方推荐使用 NetworkManager
来管理所有网络连接。NetworkManager
提供了两种主要的命令行工具:nmcli
(功能强大、适合脚本化)和 nmtui
(提供文本用户界面,更直观)。
使用 nmcli
命令行工具
nmcli
是与 NetworkManager
交互的首选工具,几乎所有网络配置任务都可以通过它完成。
第一步:查看网络连接
nmcli
中,“连接”是配置的集合,可以应用于“设备”(即物理网卡),首先查看现有的连接:
nmcli connection show
这将列出所有连接的名称、UUID、类型和设备,找到您想修改的连接名称(通常与接口名类似,如 ens33
或 Wired connection 1
)。
第二步:修改连接配置
假设我们要修改名为 ens33
的连接,为其设置一个静态 IP 地址 168.1.101
,子网前缀为 24
(等同于 255.255.0
),网关为 168.1.1
,DNS 为 8.4.4
。
# 将 IPv4 配置方法从 dhcp 改为 manual nmcli connection mod ens33 ipv4.method manual # 设置 IP 地址和子网前缀 nmcli connection mod ens33 ipv4.addresses 192.168.1.101/24 # 设置网关 nmcli connection mod ens33 ipv4.gateway 192.168.1.1 # 设置 DNS nmcli connection mod ens33 ipv4.dns "8.8.4.4 8.8.8.8" # 设置连接自动激活 nmcli connection mod ens33 connection.autoconnect yes
第三步:重新激活连接
配置修改后,需要将连接先停用再重新启用,以应用新设置。
nmcli connection down ens33 && nmcli connection up ens33
这条命令会依次执行停用和启用操作,确保新的网络参数被加载。
使用 nmtui
文本用户界面
对于不熟悉复杂命令的用户,nmtui
是一个绝佳的选择,它提供了一个基于文本的图形化菜单。
- 在终端中直接输入
nmtui
并回车。 - 使用方向键选择 “Edit a connection”,然后按回车。
- 在列表中选择您要编辑的连接,按回车。
- 在弹出的编辑界面中,使用方向键和回车键可以修改
<Automatic>
为<Manual>
,然后填写 IP 地址、网关和 DNS 服务器等信息。 - 编辑完成后,选择底部 “
” 保存。 - 返回主菜单,选择 “Activate a connection”,找到刚才修改的连接,选择 “Deactivate” 然后再 “Activate”,或者直接重启系统/网络服务即可。
验证网络配置
无论使用哪种方法修改 IP,最后一步都是验证配置是否成功并测试网络连通性。
检查 IP 地址:
ip addr show ens33
确认输出中
inet
后的地址是否为您新设置的 IP。检查路由:
ip route show
确认
default via
后的地址是否为您设置的网关。测试连通性:
# 测试网关是否可达 ping -c 4 192.168.1.1 # 测试外网是否可达 ping -c 4 baidu.com
如果都能成功
ping
通,说明 IP 地址、子网掩码、网关和 DNS 均配置无误。
相关问答FAQs
我按照步骤修改了 IP 地址,但是服务器无法上网,是什么原因?
解答: 这是一个常见的故障排查问题,请按以下顺序检查:
- 网关和 DNS:首先确认您设置的网关和 DNS 服务器地址是正确的,并且是可达的,使用
ping
命令测试网关 IP 是否能通,如果网关不通,物理连接或网关本身可能有问题。 - 子网掩码:检查子网掩码是否正确,错误的子网掩码会导致您无法与网络中的其他设备(包括网关)正常通信。
- 防火墙:检查服务器自身的防火墙(如
firewalld
或iptables
)以及网络上的防火墙是否阻止了您的访问,可以尝试临时关闭防火墙(systemctl stop firewalld
)进行测试,如果问题解决,说明是防火墙规则导致,需要添加相应的放行规则。 - SELinux:虽然不常见,但在某些特殊配置下,SELinux 可能会干扰网络服务,可以检查其状态(
getenforce
),如需排查可临时设置为permissive
模式。 - 配置未生效:确保您已经正确地重启了网络服务或重新激活了网络连接,并且没有语法错误。
DHCP 和静态 IP 有什么区别,我应该如何选择?
解答: DHCP(动态主机配置协议)和静态 IP 是两种分配 IP 地址的方式。
- DHCP:IP 地址是由网络中的 DHCP 服务器(通常是路由器)自动分配的,设备每次接入网络时,都可能获得一个不同的 IP 地址,这种方式配置极其简单,即插即用,非常适合客户端设备(如个人电脑、手机)或经常变动位置的设备。
- 静态 IP:IP 地址是手动固定配置在设备上的,除非再次手动修改,否则不会改变,这种方式配置相对复杂,但提供了稳定性和可预测性。
选择建议:
- 选择 DHCP 的场景:当您管理的设备是客户端,或者您不关心其具体 IP 地址,只希望它能联网时,在办公环境接入工作电脑。
- 选择静态 IP 的场景:当设备需要被其他设备或服务稳定访问时。
- 服务器:Web 服务器、数据库服务器、文件服务器等,必须有一个固定的 IP 地址,客户端才能准确地连接到它。
- 网络设备:路由器、打印机、网络存储(NAS)等,通常需要固定的 IP 以便于管理和访问。
- 需要端口转发的设备:如果您在路由器上设置了端口转发,目标设备必须使用静态 IP,否则 IP 变化后转发规则就会失效。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复