CentOS7网络配置全解析,从基础设置到故障排查 附静态IP命令
本文围绕CentOS7静态IP网络配置展开全解析,兼具实用性与全面性,基础设置环节,核心梳理命令行配置方式:先通过nmcli con show或ip addr确认网卡名;再以vi编辑/etc/sysconfig/network-scripts/ifcfg-xxx文件,将BOOTPROTO设为static,添加IPADDR、NETMASK、GATEWAY、DNS1等必要参数;最后重启网络(nmcli con up或systemctl restart NetworkManager)即可生效,故障排查部分涵盖ping、traceroute、ip addr等命令,助力快速定位问题。
CentOS7作为广泛使用的Linux服务器发行版,网络配置是系统管理的基础技能,与CentOS6不同,CentOS7默认使用 NetworkManager 作为主要网络管理工具,同时保留了传统的 network 服务作为备选,本文将从查看网络接口、配置静态/动态IP、设置DNS,到故障排查,一步步带你掌握CentOS7的网络配置。
前置准备:认识CentOS7的网络管理
在开始配置前,先了解两个核心工具:
- NetworkManager:默认启用,适合桌面和动态网络环境,支持图形化(
nmtui)和命令行(nmcli)配置。 - network服务:传统的网络管理方式,适合服务器静态网络环境,通过修改配置文件实现。
你可以根据需求选择其一,但建议优先使用NetworkManager(除非特殊场景需要禁用它)。
第一步:查看网络接口信息
首先需要知道系统中有哪些网络接口,以及它们的当前状态,常用命令如下:
查看所有网络接口
使用 ip addr 或 ifconfig(需先安装 net-tools 包):
# 推荐使用ip addr(CentOS7默认支持) ip addr
输出示例中,常见的接口有:
lo:回环接口(127.0.0.1),用于本地通信。ens33/enp0s3:物理网卡接口(CentOS7使用“一致网络设备命名”,ens表示PCI-E网卡,enp表示主板集成网卡)。
查看接口连接状态
使用 nmcli 查看NetworkManager管理的接口状态:
nmcli device status
输出会显示接口是否“连接”(connected)、“断开”(disconnected)等。
配置静态IP地址(两种常用方法)
服务器通常需要静态IP,避免重启后IP变化,以下两种方法任选其一。
方法1:修改网络配置文件(适合network服务)
CentOS7的网络接口配置文件位于 /etc/sysconfig/network-scripts/ 目录下,文件名格式为 ifcfg-接口名(如 ifcfg-ens33)。
步骤1:备份原配置文件(防止出错)
cd /etc/sysconfig/network-scripts/ cp ifcfg-ens33 ifcfg-ens33.bak
步骤2:编辑配置文件
用 vi 或 vim 打开文件:
vi ifcfg-ens33
修改或添加以下参数(根据实际网络环境调整):
TYPE=Ethernet # 网络类型(以太网) BOOTPROTO=static # 静态IP(动态则为dhcp) NAME=ens33 # 连接名称(通常与接口名一致) DEVICE=ens33 # 物理接口名 ONBOOT=yes # 开机自动启用 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
步骤3:重启network服务
# 若使用network服务,重启生效 systemctl restart network
方法2:使用nmcli命令行(适合NetworkManager)
nmcli 是NetworkManager的命令行工具,配置更快捷且持久。
步骤1:添加新的网络连接
# 语法:nmcli connection add type ethernet con-name 连接名 ifname 接口名 nmcli connection add type ethernet con-name static-ens33 ifname ens33
步骤2:设置静态IP、网关和DNS
# 设置IP和子网掩码 nmcli connection modify static-ens33 ipv4.addresses 192.168.1.100/24 # 设置网关 nmcli connection modify static-ens33 ipv4.gateway 192.168.1.1 # 设置DNS nmcli connection modify static-ens33 ipv4.dns "8.8.8.8 114.114.114.114" # 设置为手动配置(非DHCP) nmcli connection modify static-ens33 ipv4.method manual # 开机自动连接 nmcli connection modify static-ens33 connection.autoconnect yes
步骤3:激活连接
nmcli connection up static-ens33
配置动态IP(DHCP)
如果网络中有DHCP服务器,只需将接口设置为自动获取IP即可。
方法1:修改配置文件
编辑 ifcfg-ens33,将 BOOTPROTO 改为 dhcp,并删除静态IP相关参数:
TYPE=Ethernet BOOTPROTO=dhcp NAME=ens33 DEVICE=ens33 ONBOOT=yes
重启network服务生效。
方法2:nmcli命令
# 修改现有连接为DHCP nmcli connection modify static-ens33 ipv4.method auto nmcli connection up static-ens33
DNS配置的注意事项
CentOS7的DNS解析受NetworkManager影响,直接修改 /etc/resolv.conf 可能会被覆盖,因此推荐以下两种方式:
在接口配置文件中设置(最稳定)
如上文静态IP配置中,在 ifcfg-ens33 里添加 DNS1 和 DNS2,NetworkManager会自动同步到 /etc/resolv.conf。
使用nmcli设置
nmcli connection modify 连接名 ipv4.dns "8.8.8.8 114.114.114.114" nmcli connection up 连接名
设置完成后,可查看 /etc/resolv.conf 验证:
cat /etc/resolv.conf
测试网络连接
配置完成后,需验证网络是否正常:
测试网关连通性
ping 192.168.1.1 # 替换为你的网关IP
测试外网连通性
ping 8.8.8.8
测试DNS解析
ping baidu.com # 或使用nslookup(需安装bind-utils) nslookup baidu.com
常见故障排查
如果网络不通,按以下步骤排查:
检查接口是否启用
ip link show ens33 # 若状态为DOWN,启用它 ip link set ens33 up
检查路由表
ip route # 确认是否有默认网关(default via 192.168.1.1)
检查防火墙
CentOS7默认启用firewalld,可能阻止流量:
# 查看防火墙状态 systemctl status firewalld # 临时关闭防火墙(测试用) systemctl stop firewalld
查看NetworkManager日志
journalctl -u NetworkManager -f # 实时查看日志
CentOS7的网络配置核心在于选择合适的管理工具(NetworkManager或network服务),并通过配置文件或nmcli设置IP、网关和DNS,配置时注意 ONBOOT=yes 确保开机生效,完成后务必测试连通性,遇到问题时,从接口状态、路由表、DNS和防火墙入手排查,通常能快速定位问题。
希望本文能帮你快速掌握CentOS7的网络配置!

