CentOS7物理机网络如何配置?
- 物理机
- 2025-06-17
- 5
CentOS 7 物理机网络配置详细指南
前言:理解物理机网络配置的核心
在 CentOS 7 物理服务器上进行网络配置是系统管理的基础任务,与虚拟机不同,物理机直接操作硬件网卡(如 eno1, ens33),配置的可靠性直接影响服务器对外服务能力,CentOS 7 默认使用 NetworkManager 服务结合传统的 ifcfg 脚本来管理网络,提供了灵活且强大的配置方式。
核心配置方法:nmcli 与配置文件
*方法 1:使用 nmcli 命令行工具 (推荐)**
nmcli 是 NetworkManager 的命令行客户端,功能强大且能动态生效配置。
-
查看现有网络连接与设备:
nmcli connection show nmcli device status记录下你要配置的连接名(如 ens33)或设备名。
-
配置静态 IP 地址 (示例配置):
sudo nmcli connection modify "ens33" ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8, 8.8.4.4" ipv4.method manual connection.autoconnect yes- "ens33": 替换为你的实际连接名或设备名。
- 168.1.100/24: 静态 IP 地址和子网掩码 (CIDR 格式)。
- 168.1.1: 默认网关。
- "8.8.8.8, 8.8.4.4": DNS 服务器地址,用逗号分隔。
- ipv4.method manual: 设置为静态 IP。
- connection.autoconnect yes: 确保开机自动连接。
-
配置 DHCP 获取 IP 地址:
sudo nmcli connection modify "ens33" ipv4.method auto connection.autoconnect yes -
应用并激活配置:
sudo nmcli connection down "ens33" && sudo nmcli connection up "ens33" # 或者使用 reload 命令(CentOS 7.9 及更新版本更推荐) sudo nmcli connection reload sudo nmcli connection up "ens33"
*方法 2:编辑网络配置文件 (传统方法)**
配置文件位于 /etc/sysconfig/network-scripts/,命名规则为 ifcfg-<连接名> (如 ifcfg-ens33)。
-
备份原始配置 (重要!):

-
编辑配置文件:
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33 -
静态 IP 配置示例:
TYPE=Ethernet BOOTPROTO=none # 静态设置为 none, DHCP 设置为 dhcp DEFROUTE=yes NAME=ens33 DEVICE=ens33 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
-
DHCP 配置示例:
TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=yes NAME=ens33 DEVICE=ens33 ONBOOT=yes -
重启网络服务 (或使用 nmcli):
sudo systemctl restart network注意:在远程连接中直接重启 network 服务可能导致连接中断,使用 nmcli connection up/down 更安全。
-
设置主机名:
sudo hostnamectl set-hostname your-server-name # 瞬时生效且永久 # 检查 hostnamectl status -
配置 DNS 解析 (/etc/resolv.conf):
通常由 NetworkManager 根据连接配置自动管理,如需手动设置(不推荐,可能被覆盖),可编辑此文件,但优先使用 nmcli 或 ifcfg 文件中的 DNS1/DNS2 选项。
-
管理 NetworkManager 服务:
sudo systemctl enable NetworkManager # 开机自启 sudo systemctl start NetworkManager # 立即启动 sudo systemctl status NetworkManager # 查看状态 -
检查 IP 地址与路由:
-
测试网络连通性:
ping -c 4 192.168.1.1 # 测试网关 ping -c 4 8.8.8.8 # 测试外部 IP ping -c 4 www.baidu.com # 测试 DNS 解析与外网
-
检查 DNS 解析:
nslookup www.baidu.com dig www.baidu.com - 防火墙 (firewalld): 确保所需端口开放(如 SSH 的 22 端口)。 sudo firewall-cmd --permanent --add-service=ssh # 开放 SSH sudo firewall-cmd --reload sudo firewall-cmd --list-all # 查看规则
- SELinux: 在绝大多数标准网络配置场景下,SELinux 默认策略不会阻止网络功能,如遇特殊问题,可先尝试 setenforce 0 (临时禁用) 测试,但生产环境应调查具体原因并调整策略而非直接禁用。
- 物理层: 网线是否插好?网卡指示灯是否正常?交换机端口状态?
- 驱动: lspci | grep -i ethernet 查看网卡型号,dmesg | grep -i eth 检查驱动加载信息。
- 服务状态: systemctl status NetworkManager, systemctl status network。
- 配置错误: 仔细检查 IP、子网掩码、网关、DNS 是否输入正确,配置文件语法无误(尤其 ifcfg 文件)。
- 冲突: 是否同时激活了 network 和 NetworkManager 服务?CentOS 7 建议主要使用 NetworkManager,确保 ifcfg 文件中的 ONBOOT=yes。
- 日志: 查看日志获取线索:journalctl -xe, /var/log/messages。
- Q:修改配置后网络没反应?
A:确保执行了 nmcli connection up <连接名> 或 sudo systemctl restart network (谨慎使用) 使配置生效,检查 ip addr 看新 IP 是否分配。
- Q:ping 通网关但 ping 不通外网?
A:检查网关配置是否正确 (ip route),检查防火墙是否阻止出站 (firewall-cmd --list-all),检查 DNS 解析 (nslookup)。
- Q:如何彻底禁用 NetworkManager?
A:一般不推荐,但如需使用纯 network 服务: sudo systemctl stop NetworkManager sudo systemctl disable NetworkManager sudo systemctl enable network sudo systemctl start network
- Q:多网卡如何配置?
A:为每个物理网卡(ens33, ens34 等)创建独立的连接配置文件(ifcfg-ens33, ifcfg-ens34)或使用 nmcli 分别配置,明确各网卡的用途(如业务、管理、存储网络)并设置正确的 IP 和路由。
- 在远程配置物理机网络时,务必确保有物理控制台访问权限(如 iDRAC, iLO, KVM over IP),或在操作前设置好备用连接(如多网卡配置一个管理口),避免配置错误导致失联。
- 修改关键配置文件前必须备份。
- 本文所述方法基于 CentOS 7 及兼容发行版(如 RHEL 7)的标准网络管理机制。
- 核心工具与概念参考 Red Hat Enterprise Linux 7 官方文档:NetworkManager (nmcli), ifcfg 文件格式, firewalld。
- 故障排查思路结合了 Linux 网络管理通用实践与常见问题解决方案。
关键辅助配置
验证网络配置
防火墙与 SELinux 注意事项
故障排查要点
常见问题解答 (FAQ)
重要安全提示:
掌握 CentOS 7 物理机的网络配置 (nmcli 和 ifcfg 文件) 是 Linux 系统管理的核心技能,理解 NetworkManager 的工作原理,熟练使用验证命令 (ip, ping, nslookup),并重视防火墙和物理访问权限,能确保服务器网络的稳定可靠,配置后务必进行多维度测试验证。
引用说明:
