所有托管服务节省 15%

测试技能,享折扣

使用代码: Skills 开始使用
China
Linux 管理

如何在 CentOS 中配置网络:完整分步指南

在 CentOS 中配置网络是任何系统管理员最基本的任务之一。无论您是在设置新部署的 VPS Hosting 环境还是管理裸机 Dedicated Server,正确配置网络接口是实现稳定、连接和生产就绪服务器的关键第一步。

本综合指南将引导您了解所需的一切:识别网络接口、分配静态 IP 地址、配置 DHCP、重启网络服务、验证连接性以及解决 CentOS 系统上遇到的最常见网络问题。

1. 在 CentOS 中理解网络接口

在 CentOS(版本 7 和 8)中,网络接口通过存储在以下目录中的配置文件进行管理:

/etc/sysconfig/network-scripts/

每个网络接口都有一个专用配置文件,命名约定如下:

ifcfg-<interface_name>

其中 <interface_name> 是操作系统分配给接口的标识符。常见示例包括:

接口名称描述
eth0传统以太网接口命名
ens33可预测的网络接口名称(VMware/虚拟)
ens3在基于 KVM 的虚拟机中常见
enp0s3基于 PCI 的以太网(VirtualBox、裸机)

> 注意:CentOS 7 及更高版本默认使用”可预测的网络接口名称”(例如 ens33enp3s0),而不是传统的 eth0 命名约定。这提高了重启和硬件更改时的一致性。

在进行任何配置更改之前,理解这个结构至关重要。编辑错误的文件或使用不正确的参数可能导致网络连接丧失——这在管理远程服务器时是一个特别关键的问题。

2. 识别可用网络接口

在修改任何配置之前,您必须首先识别系统上存在哪些网络接口及其当前状态。

步骤 1:访问终端

通过 SSH 连接到您的服务器,或者如果您有物理或控制台访问权限,直接访问终端:

ssh user@your-server-ip

步骤 2:列出所有网络接口

运行以下命令以显示所有可用网络接口及其 IP 地址和状态:

ip addr

示例输出:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
    link/ether 00:0c:29:ab:cd:ef brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.105/24 brd 192.168.1.255 scope global dynamic ens33

或者,您可以使用较旧的 ifconfig 命令(需要 net-tools 软件包):

ifconfig -a

或仅列出接口名称:

ip link show

在继续下一部分之前,请记下您要配置的接口名称(例如 ens33)。

3. 配置静态IP地址

分配静态IP地址是服务器的推荐方法,因为它确保IP地址永远不会意外更改——这对DNS记录、防火墙规则和远程访问稳定性至关重要。

步骤1:打开网络接口配置文件

使用文本编辑器(如nanovi)打开接口的配置文件。将ens33替换为您的实际接口名称:

sudo nano /etc/sysconfig/network-scripts/ifcfg-ens33

步骤2:添加或修改配置参数

该文件可能已包含一些参数。更新或添加以下行以配置静态IP地址:

DEVICE=ens33
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4

参数说明:

参数说明
DEVICE网络接口的名称
TYPE接口类型(通常为Ethernet
BOOTPROTO设置为none以进行静态IP分配
ONBOOT设置为yes以在启动时激活接口
IPADDR您所需的静态IP地址
NETMASK您的网络子网掩码
GATEWAY默认网关(您的路由器IP地址)
DNS1主DNS服务器(Google:8.8.8.8
DNS2辅助DNS服务器(Google:8.8.4.4)——可选

> 重要提示:将示例值(192.168.1.100192.168.1.1等)替换为您的网络或托管提供商提供的实际值。

您也可以使用CIDR表示法与PREFIX参数,而不是NETMASK

PREFIX=24

这等同于NETMASK=255.255.255.0

步骤3:保存并退出

如果使用nano,按以下键保存文件:

CTRL + X → Y → Enter

如果使用vivim

:wq → Enter

4. 配置 DHCP(动态 IP 寻址)

如果您的环境使用 DHCP 服务器自动分配 IP 地址(在开发环境、云平台或内部网络中很常见),请按如下方式配置接口:

步骤 1:打开配置文件

sudo nano /etc/sysconfig/network-scripts/ifcfg-ens33

步骤 2:设置 DHCP 参数

用以下最小 DHCP 配置替换现有内容:

DEVICE=ens33
TYPE=Ethernet
BOOTPROTO=dhcp
ONBOOT=yes

步骤 3:保存并退出

使用上一部分中描述的相同方法保存文件。

> 何时使用 DHCP 与静态 IP:对工作站、开发 VM 或临时环境使用 DHCP。对生产服务器、Web 服务器、数据库服务器以及任何需要一致、可预测地址的系统使用静态 IP。如果您在共享 Web 托管计划或 VPS 上托管网站或应用程序,强烈建议使用静态 IP。

5. 重启网络服务

保存配置更改后,必须重启网络服务以应用这些更改。根据您的 CentOS 版本,有几种方法。

方法 1:重启整个网络服务 (CentOS 7)

sudo systemctl restart network

方法 2:关闭并重新启动接口

此方法仅重启特定接口,最大限度地减少对其他接口的中断:

sudo ifdown ens33 && sudo ifup ens33

方法 3:使用 NetworkManager (CentOS 7/8)

如果您的系统上 NetworkManager 处于活跃状态,请使用 nmcli

sudo nmcli connection reload
sudo nmcli connection up ens33

方法 4:重启 NetworkManager 服务

sudo systemctl restart NetworkManager

> 警告:如果您通过 SSH 连接,重启网络服务将暂时断开您的连接。请确保您有另一种方式访问服务器(例如控制台或 KVM),以防新配置包含错误。

6. 验证您的网络配置

网络服务重启后,验证您的配置是否已正确应用。

检查分配的 IP 地址

ip addr show ens33

输出应在 inet 行下显示您配置的 IP 地址:

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
    inet 192.168.1.100/24 brd 192.168.1.255 scope global ens33

验证默认网关

ip route show

您应该看到类似的一行:

default via 192.168.1.1 dev ens33

检查 DNS 解析

cat /etc/resolv.conf

确认您的 DNS 服务器已列出:

nameserver 8.8.8.8
nameserver 8.8.4.4

测试互联网连接

Ping 外部主机以确认端到端连接:

ping -c 4 google.com

预期输出:

PING google.com (142.250.185.46) 56(84) bytes of data.
64 bytes from lga34s32-in-f14.1e100.net: icmp_seq=1 ttl=117 time=12.4 ms
64 bytes from lga34s32-in-f14.1e100.net: icmp_seq=2 ttl=117 time=11.9 ms
...
4 packets transmitted, 4 received, 0% packet loss

如果接收到全部四个数据包且数据包丢失率为 0%,则您的网络配置工作正常。

单独测试 DNS 解析

nslookup google.com

dig google.com

7. 常见网络问题故障排除

即使是经验丰富的管理员也会遇到网络问题。以下是最常见的问题以及如何在 CentOS 上解决它们。

问题 1:网络接口在启动时不启动

症状:服务器重启后失去网络连接。

原因:ONBOOT 参数设置为 no 或在配置文件中缺失。

解决方案:打开接口配置文件并确保以下行存在并设置正确:

ONBOOT=yes

然后重启网络服务:

sudo systemctl restart network

问题 2:配置后没有互联网连接

症状:接口有 IP 地址,但无法访问外部主机。

可能的原因和解决方案:

  • 网关不正确:验证 GATEWAY 是否与您的路由器或网络网关 IP 匹配。
  • DNS 配置错误:确保 DNS1DNS2 设置为有效的 DNS 服务器。
  • 路由问题:使用 ip route show 检查路由表,并确认默认路由存在。
  • 物理连接:如果使用物理服务器,请验证网络电缆是否正确连接。

问题 3:IP 地址冲突

症状:网络连接间歇性中断或网络上的另一台设备报告 IP 冲突。

解决方案:选择一个在路由器 DHCP 池范围之外的静态 IP 地址,或与网络管理员协调以保留该 IP。

问题 4:防火墙阻止流量

症状:服务器有连接,但特定服务(HTTP、HTTPS、SSH 等)无法从外部主机访问。

检查当前防火墙规则:

sudo firewall-cmd --list-all

永久允许特定服务:

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload

允许特定端口:

sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

检查 firewalld 是否正在运行:

sudo systemctl status firewalld

问题 5:NetworkManager 与静态配置冲突

症状:静态 IP 设置被忽略或在重启后被覆盖。

解决方案:如果您通过配置文件手动管理接口而不使用 NetworkManager,您可以禁用 NetworkManager 或通过将以下行添加到 ifcfg 文件来配置它忽略特定接口:

NM_CONTROLLED=no

或者,通过 NetworkManager 的 nmcli 工具管理接口,以获得更集成的方法。

问题 6:systemctl restart network 在 CentOS 8 上失败

症状:network 服务不存在或在 CentOS 8 上重启失败。

说明:CentOS 8 已弃用旧版 network 服务,改用 NetworkManager。请改用以下方法:

sudo systemctl restart NetworkManager

或使用 nmcli 管理连接:

nmcli connection show
nmcli connection up <connection-name>

结论

在 CentOS 中配置网络是每个 Linux 系统管理员必须掌握的基础技能。无论您是为生产 Web 服务器分配静态 IP、为开发环境配置 DHCP,还是排查远程机器上的连接问题,本指南中概述的步骤都提供了一个坚实、可靠的框架。

总结关键步骤:

  1. 识别您的网络接口,使用 ip addr
  2. 编辑相应的 ifcfg-<interface> 配置文件
  3. 设置 BOOTPROTO=none 用于静态 IP 或 BOOTPROTO=dhcp 用于动态寻址
  4. 重启网络服务,使用 systemctlnmcli
  5. 验证连接,使用 ip addrip routeping
  6. 排查故障,使用防火墙命令、路由检查和 DNS 验证

正确的网络配置在管理云基础设施时尤为重要。如果您正在寻找具有完全 root 访问权限和灵活网络选项的可靠托管环境,请探索 AlexHost 的 VPS 托管计划 — 非常适合需要稳定、高性能连接的 CentOS 部署。对于需要专用资源的关键任务工作负载,请考虑 AlexHost 的 专用服务器。如果您的服务器托管 Web 应用程序,不要忘记使用受信任的 SSL 证书来保护您的域,以加密流量并保护您的用户。

定期审查您的网络配置,监控接口状态,并保持防火墙规则最新,以维持最佳的服务器性能和安全性。