物理机CentOS7如何设置网络详细步骤?
- 物理机
- 2025-06-14
- 3255
/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 等安全加固指南的基础原则。