在管理和维护基于CentOS系统的服务器时,网络地址配置是一项基础且至关重要的技能,无论是搭建Web服务、配置数据库,还是实现远程管理,一个正确且稳定的网络配置都是前提,本文将详细介绍在CentOS系统中配置IP地址的多种方法,涵盖临时配置与永久配置,并针对不同主流版本(如CentOS 7和CentOS 8/9)提供清晰的步骤说明。
理解网络配置基础
在开始配置之前,需要了解几个核心概念:
- IP地址:设备在网络中的唯一标识,如
168.1.100
。 - 子网掩码:用于区分网络地址和主机地址,通常用
255.255.0
或CIDR表示法/24
。 - 网关:局域网的出口,负责将数据包转发到其他网络。
- DNS服务器:负责将域名(如
www.google.com
)解析为IP地址。
CentOS的地址配置主要分为两种:临时配置和永久配置,临时配置在系统重启后会失效,适用于快速测试;永久配置则会将设置写入配置文件,重启后依然有效。
临时配置IP地址(适用于所有版本)
临时配置使用 ip
命令,它简单快捷,非常适合用于紧急的网络调试或临时任务。
查看当前网络接口
使用以下命令查看系统中有哪些网络接口及其状态:ip addr show
或者使用简写:
ip a
输出结果会列出类似
ens33
、eno1
或eth0
的接口名称,请记下您要配置的接口名称。分配IP地址
假设我们要为ens33
接口配置IP地址168.1.150
,子网掩码为255.255.0
(即/24
),命令如下:sudo ip addr add 192.168.1.150/24 dev ens33
启用接口
如果接口处于关闭状态,需要手动启用:sudo ip link set ens33 up
配置网关(可选)
如果需要访问其他网络,还需配置默认网关:sudo ip route add default via 192.168.1.1
168.1.1
是您的网关地址。
请注意:所有通过 ip
命令进行的配置在系统重启后都会丢失。
永久配置IP地址
永久配置是生产环境中的标准做法,根据CentOS版本的不同,配置方法有显著差异。
在CentOS 7中配置
CentOS 7及其更早版本主要通过编辑网络脚本文件进行配置。
定位配置文件
网络配置文件位于/etc/sysconfig/network-scripts/
目录下,文件名格式通常为ifcfg-<接口名称>
,ifcfg-ens33
。编辑配置文件
使用文本编辑器(如vi
或nano
)打开对应的配置文件:sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改为以下静态IP配置模式:
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static # 设置为static表示静态IP DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=ens33 UUID=... # 保持原有UUID不变 DEVICE=ens33 ONBOOT=yes # 设置为yes,表示开机启动此网卡 # 以下是静态IP的核心配置 IPADDR=192.168.1.150 # 您想设置的静态IP地址 NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.1.1 # 网关地址 DNS1=8.8.8.8 # 主DNS服务器 DNS2=114.114.114.114 # 备用DNS服务器
重启网络服务
保存并退出文件后,执行以下命令使配置生效:sudo systemctl restart network
在CentOS 8/9中配置
从CentOS 8开始,系统默认使用 NetworkManager
服务来管理网络,推荐使用其命令行工具 nmcli
进行配置,这种方法更加现代且不易出错。
查看网络连接
nmcli
管理的是“连接”,可以理解为配置文件,首先查看现有连接:nmcli connection show
输出中会看到一个与您接口同名的连接,
ens33
。修改连接为静态IP
使用nmcli connection modify
命令逐步修改连接属性,假设连接名为ens33
:# 设置IPv4地址和子网掩码 sudo nmcli connection modify ens33 ipv4.addresses 192.168.1.150/24 # 设置网关 sudo nmcli connection modify ens33 ipv4.gateway 192.168.1.1 # 设置DNS服务器(可以设置多个,用空格隔开) sudo nmcli connection modify ens33 ipv4.dns "8.8.8.8 114.114.114.114" # 将IPv4的获取方式从dhcp改为manual(手动) sudo nmcli connection modify ens33 ipv4.method manual # 确保连接开机自动启用 sudo nmcli connection modify ens33 connection.autoconnect yes
应用配置
修改完成后,需要重新激活连接以使配置生效:sudo nmcli connection down ens33 && sudo nmcli connection up ens33
或者直接重启连接:
sudo nmcli device reapply ens33
验证配置
无论使用哪种方法,配置完成后都应进行验证以确保一切正常。
查看IP地址:
ip addr show ens33
确认输出中显示了您设置的IP地址。
检查路由:
ip route show
确认输出中包含
default via <您的网关地址>
的条目。测试连通性:
# 1. 测试与网关的连通性 ping -c 4 192.168.1.1 # 2. 测试与外网的连通性 ping -c 4 8.8.8.8 # 3. 测试DNS解析 ping -c 4 www.baidu.com
如果以上命令都能成功,说明您的CentOS地址配置已经完成且网络通畅。
配置方法对比
为了更直观地理解不同版本的配置差异,下表小编总结了关键配置项的设置方法:
配置项 | CentOS 7 (ifcfg-文件) | CentOS 8/9 (nmcli命令) |
---|---|---|
静态IP | IPADDR=192.168.1.150 | nmcli con mod <conn> ipv4.addresses 192.168.1.150/24 |
子网掩码 | NETMASK=255.255.255.0 | 包含在 ipv4.addresses 的 /24 中 |
网关 | GATEWAY=192.168.1.1 | nmcli con mod <conn> ipv4.gateway 192.168.1.1 |
DNS | DNS1=8.8.8.8 | nmcli con mod <conn> ipv4.dns "8.8.8.8" |
启用DHCP | BOOTPROTO=dhcp | nmcli con mod <conn> ipv4.method auto |
相关问答FAQs
问题1:配置完静态IP后,服务器无法上网,应该从哪些方面排查?
解答:这是一个常见的网络故障问题,建议按照以下步骤进行排查:
- 检查配置文件:仔细核对您在
ifcfg
文件中或通过nmcli
输入的IPADDR
、NETMASK
、GATEWAY
和DNS
是否有拼写错误,任何一个微小的错误都可能导致网络不通。 - 检查网关连通性:使用
ping <您的网关IP>
命令,如果无法ping通网关,说明问题出在本地网络配置或物理连接上(如网线、交换机端口)。 - 检查外网IP连通性:如果能ping通网关,但无法ping通外网IP(如
8.8.8
),通常是网关配置错误或网关本身存在问题。 - 检查DNS解析:如果能ping通外网IP(如
8.8.8
),但无法ping通域名(如www.baidu.com
),则问题出在DNS配置上,请检查DNS服务器地址是否正确且可用。 - 检查防火墙:检查服务器自身的防火墙(
firewalld
)或网络环境中的硬件防火墙是否限制了相关流量,可以先临时关闭防火墙进行测试:sudo systemctl stop firewalld
。
问题2:如何将已经配置好的静态IP地址改回由DHCP自动获取?
解答:将静态IP改回DHCP同样需要区分CentOS版本:
对于CentOS 7:
- 编辑
/etc/sysconfig/network-scripts/ifcfg-<接口名称>
文件。 - 将
BOOTPROTO=static
修改为BOOTPROTO=dhcp
。 - 删除或注释掉(在行首加 )所有手动设置的静态IP相关行,包括
IPADDR
、NETMASK
、GATEWAY
和DNS1
等。 - 保存文件并重启网络服务:
sudo systemctl restart network
。
- 编辑
对于CentOS 8/9:
- 使用
nmcli
命令将IPv4的获取方式改为自动:sudo nmcli connection modify <连接名称> ipv4.method auto
- (可选)可以手动删除之前设置的静态地址、网关和DNS,
NetworkManager
在切换到auto
模式时通常会自动处理这些。 - 重新激活连接使配置生效:
sudo nmcli connection down <连接名称> && sudo nmcli connection up <连接名称>
执行完上述步骤后,您的服务器就会向网络中的DHCP服务器请求一个动态IP地址了。
- 使用
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复