/etc/sysconfig/network-scripts/ifcfg-网卡名
文件,设置IP地址、子网掩码、网关和DNS服务器,最后重启network
服务使配置生效。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 cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak
-
编辑配置文件:
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 地址与路由:
ip addr show ens33 # 查看指定网卡 IP ip route show # 查看路由表
-
测试网络连通性:
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
防火墙与 SELinux 注意事项
- 防火墙 (
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
。
常见问题解答 (FAQ)
- 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 物理机的网络配置 (nmcli
和 ifcfg
文件) 是 Linux 系统管理的核心技能,理解 NetworkManager 的工作原理,熟练使用验证命令 (ip
, ping
, nslookup
),并重视防火墙和物理访问权限,能确保服务器网络的稳定可靠,配置后务必进行多维度测试验证。
引用说明:
- 本文所述方法基于 CentOS 7 及兼容发行版(如 RHEL 7)的标准网络管理机制。
- 核心工具与概念参考 Red Hat Enterprise Linux 7 官方文档:NetworkManager (
nmcli
),ifcfg
文件格式,firewalld
。- 故障排查思路结合了 Linux 网络管理通用实践与常见问题解决方案。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/28341.html