/etc/sysconfig/network-scripts/ifcfg-eth0),设置IP地址、子网掩码、网关和DNS;最后重启网络服务生效。
物理机CentOS 7网络配置详细指南
重要提示:操作前请务必做好以下准备
- 物理访问或带外管理 (IPMI/iDRAC等): 网络配置错误可能导致服务器无法远程访问,物理访问或带外管理是最后的保障。
- 备份配置文件: 执行任何修改前,备份相关配置文件:
sudo cp /etc/sysconfig/network-scripts/ifcfg-ens192 /etc/sysconfig/network-scripts/ifcfg-ens192.bak sudo cp /etc/resolv.conf /etc/resolv.conf.bak sudo cp /etc/hosts /etc/hosts.bak
(将
ens192替换为你的实际网卡名称) - 权限: 你需要
root权限执行大部分命令 (sudo -i或sudo command)。
第一步:确定网络接口名称
CentOS 7 默认使用可预测的网络接口名称 (如 ens192, enp0s25),而非传统的 eth0。
ip link show
或
nmcli device status
在输出中找到物理网卡(通常以 en 开头,状态为 DOWN 或未连接),记下名称(如 ens192)。
第二步:配置网络(两种主流方法)
使用 NetworkManager 命令行工具 (nmcli) – 推荐(动态生效)nmcli 是管理 NetworkManager 服务的强大命令行工具,配置通常能立即生效。
-
查看现有连接:
nmcli connection show
-
配置静态 IP 地址:
- 修改现有连接 (推荐):
nmcli connection modify "ens192" ipv4.addresses 192.168.1.100/24 nmcli connection modify "ens192" ipv4.gateway 192.168.1.1 nmcli connection modify "ens192" ipv4.dns "8.8.8.8,8.8.4.4" nmcli connection modify "ens192" ipv4.method manual nmcli connection modify "ens192" connection.autoconnect yes nmcli connection up "ens192"
(将
"ens192"替换为你的连接名,IP地址、子网掩码(用CIDR/24表示)、网关、DNS根据你的网络环境修改) - 添加新连接:
nmcli connection add type ethernet con-name "MyStaticConn" ifname ens192 ip4 192.168.1.100/24 gw4 192.168.1.1 nmcli connection modify "MyStaticConn" ipv4.dns "8.8.8.8 8.8.4.4" nmcli connection modify "MyStaticConn" connection.autoconnect yes nmcli connection up "MyStaticConn"
- 修改现有连接 (推荐):
-
配置动态 IP (DHCP):

nmcli connection modify "ens192" ipv4.method auto nmcli connection up "ens192"
*修改传统网络配置文件 (`/etc/sysconfig/network-scripts/ifcfg-`)**
这种方法需要重启网络服务或接口才能生效,虽然传统,但在某些特定场景(如无 NetworkManager)下仍必要。
-
编辑网卡配置文件:
使用文本编辑器 (如vi,nano) 打开对应接口的配置文件:sudo vi /etc/sysconfig/network-scripts/ifcfg-ens192
-
配置静态 IP (示例内容):
TYPE=Ethernet BOOTPROTO=none # 静态IP设为none,DHCP设为dhcp DEFROUTE=yes NAME=ens192 DEVICE=ens192 ONBOOT=yes # 开机自动启用 IPADDR=192.168.1.100 PREFIX=24 # 或者使用 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4
-
配置动态 IP (DHCP):
TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=yes NAME=ens192 DEVICE=ens192 ONBOOT=yes
-
重启网络服务 (谨慎!可能导致当前连接断开):
sudo systemctl restart network
注意:在较新版本或使用 NetworkManager 的系统上,
systemctl restart network可能无效或被废弃,更推荐使用nmcli connection reload和nmcli connection down/up "ens192"或直接使用方法一。
第三步:配置主机名和本地解析
-
设置主机名:

sudo hostnamectl set-hostname your-server-name # 永久生效
立即生效(无需重启):
hostname your-server-name
-
检查/修改
/etc/hosts(确保本地解析正确):sudo vi /etc/hosts
确保包含一行指向本机 IP 和主机名:
0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.100 your-server-name # 添加这行,IP和主机名与你的设置匹配
第四步:验证网络配置
-
检查 IP 地址和路由:
ip addr show ens192 # 查看指定接口IP ip route show # 查看路由表,确认默认网关
-
测试网络连通性:
ping -c 4 192.168.1.1 # 测试网关 ping -c 4 8.8.8.8 # 测试外网IP
-
测试 DNS 解析:

nslookup www.baidu.com
或
dig www.baidu.com
-
检查 DNS 配置:
cat /etc/resolv.conf # 确认DNS服务器设置正确
第五步:防火墙考虑 (如果启用 firewalld)
默认防火墙 (firewalld) 可能阻止访问,如需开放服务端口:
sudo firewall-cmd --permanent --add-service=http # 例如开放HTTP sudo firewall-cmd --permanent --add-service=https # 例如开放HTTPS sudo firewall-cmd --permanent --add-port=8080/tcp # 例如开放自定义端口 sudo firewall-cmd --reload # 重载配置
故障排除关键点:
ip addr show无 IP: 检查网线/链路状态 (ip link show ens192)、配置文件是否正确 (ONBOOT=yes?)、是否激活连接 (nmcli con up或ifup ens192)。- 能
ping通网关但无法访问外网: 检查网关是否正确 (ip route)、网关设备是否允许转发、服务器防火墙是否阻止出站(通常默认允许)。 - 无法解析域名: 检查
/etc/resolv.conf中的 DNS 服务器是否正确且可访问 (ping DNS_IP)、防火墙是否阻止 DNS 查询 (UDP 53 端口)。 - 网络服务重启失败: 仔细检查配置文件语法(特别是
ifcfg-*文件中的拼写错误和引号)、冲突的配置(同时存在NetworkManager和传统脚本问题)。
安全与最佳实践建议:
- 最小权限: 避免长期使用
root登录,配置好sudo权限。 - 密钥认证: 禁用 SSH 密码登录,使用密钥对认证。
- 防火墙: 始终启用防火墙 (
firewalld),仅开放必要端口。 - 禁用未使用的服务: 关闭不需要的网络服务 (
telnet,rlogin等)。 - 禁用未使用的接口: 通过
ifdown或nmcli con down关闭不用的网卡。 - 禁用 IPv6 (如不需要): 在网卡配置文件中设置
IPV6INIT=no。 - 保持更新: 定期
yum update更新系统和网络工具。
重要提醒: 本文提供的方法适用于典型物理服务器环境,生产环境配置需结合具体网络架构、安全策略和高可用要求进行调整,修改关键配置前务必验证备份有效性。
参考资料说明:
- 本文核心方法基于 Red Hat Enterprise Linux (RHEL) 7 及兼容系统(如 CentOS 7)官方文档中关于网络配置的标准实践。
nmcli命令用法参考了 NetworkManager 官方手册页 (man nmcli,man nmcli-examples)。- 传统
ifcfg文件配置格式遵循/usr/share/doc/initscripts-*/sysconfig.txt中的规范。- 网络故障排查思路融合了 Linux 系统管理员社区广泛认可的经验和常见问题解决方案,安全建议综合了 CIS Benchmarks 等安全加固指南的基础原则。
