CentOS系统下如何为网卡创建子接口并配置IP地址详细教程?

在 CentOS 系统中,为单个物理网卡创建多个子接口是一项常见且重要的网络配置任务,这种技术通常用于实现 VLAN(虚拟局域网)标记,使得一台服务器能够同时与多个逻辑网络进行通信,而无需增加额外的物理网卡,这在服务器虚拟化、网络隔离和多网络环境部署中尤为实用,本文将详细介绍在 CentOS 系统上创建和管理子接口的两种主流方法,并提供清晰的步骤说明。

CentOS系统下如何为网卡创建子接口并配置IP地址详细教程?

准备工作

在开始之前,请确保您具备以下条件:

  • 拥有 root 权限或 sudo 权限。
  • 系统中已有一个正常工作的物理网络接口,eth0ens33,您可以使用 ip addr 命令来查看现有接口。
  • 明确您需要配置的 VLAN ID,VLAN ID 的范围通常是 1-4094。

使用 nmcli 命令行工具(推荐)

nmcli(NetworkManager Command-Line Interface)是 CentOS 7 及更高版本中推荐使用的网络管理工具,它功能强大,配置持久化,且能与 NetworkManager 服务无缝集成。

步骤 1:查看主接口
确定您要基于哪个物理接口创建子接口。

nmcli con show

假设主接口名称为 eth0

步骤 2:创建 VLAN 子接口
使用以下命令创建一个 VLAN ID 为 100 的子接口,我们将这个子接口命名为 eth0.100

nmcli con add type vlan con-name eth0.100 dev eth0 id 100
  • type vlan: 指定连接类型为 VLAN。
  • con-name eth0.100: 为这个新连接指定一个名称。
  • dev eth0: 指定物理设备为 eth0
  • id 100: 指定 VLAN ID 为 100。

步骤 3:配置 IP 地址
为新创建的子接口分配一个静态 IP 地址。

nmcli con modify eth0.100 ipv4.addresses 192.168.100.10/24 ipv4.method manual

这里将 eth0.100 的 IP 地址设置为 168.100.10,子网掩码为 255.255.0(即 /24),并指定为手动配置。

CentOS系统下如何为网卡创建子接口并配置IP地址详细教程?

步骤 4:启动子接口
激活刚刚配置的子接口。

nmcli con up eth0.100

步骤 5:验证配置
检查子接口是否已成功启动并获取了 IP 地址。

ip addr show eth0.100

您应该能看到 eth0.100 接口及其配置的 IP 地址信息。

手动编辑配置文件

这是一种传统方法,通过直接修改网络脚本文件来完成配置,虽然直接,但容易出错,且在 NetworkManager 管理下可能被覆盖。

步骤 1:创建子接口配置文件
进入网络脚本目录,并为子接口创建一个新的配置文件,文件名格式通常为 ifcfg-<主接口名>.<VLAN ID>

cd /etc/sysconfig/network-scripts/
vi ifcfg-eth0.100

步骤 2:编辑文件内容
ifcfg-eth0.100 文件中填入以下内容:

DEVICE=eth0.100
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
VLAN=yes
PHYSDEV=eth0
  • DEVICE: 定义子接口设备名。
  • BOOTPROTO: 设置为 static 表示静态 IP。
  • ONBOOT: 设置为 yes 确保开机自启。
  • IPADDR / NETMASK: IP 地址和子网掩码。
  • VLAN=yes: 明确指出这是一个 VLAN 接口。
  • PHYSDEV: 指定其依赖的物理设备。

步骤 3:重启网络服务
保存文件后,重启网络服务以使配置生效。

CentOS系统下如何为网卡创建子接口并配置IP地址详细教程?

systemctl restart network

或者,更安全的方式是重新加载配置并启动指定接口:

nmcli con reload
nmcli con up eth0.100

两种方法对比

特性 nmcli 方法 手动编辑方法
易用性 高,命令直观,不易出错 低,需熟悉文件格式和参数
推荐度 强烈推荐,现代标准 不推荐,仅作备用或特殊场景
持久性 自动持久化,与 NetworkManager 同步 持久化,但可能被 NetworkManager 覆盖
错误风险 低,命令有语法检查 高,拼写错误或格式问题可导致网络中断
灵活性 非常高,支持所有 NetworkManager 功能 较高,但管理复杂

相关问答FAQs

问题 1:子接口和 VLAN 是同一个概念吗?
解答:不是,子接口是操作系统层面(OSI 第 3 层及以上)的一个逻辑网络接口,它依附于一个物理接口,而 VLAN(虚拟局域网)是数据链路层(OSI 第 2 层)的技术,用于在物理交换机上划分不同的广播域,在 CentOS 中创建子接口的主要目的,就是为了给进出服务器的特定 VLAN 流量打上或剥去 VLAN 标签,从而使服务器能够处理来自不同 VLAN 的数据,简单说,子接口是处理 VLAN 流量的软件实现方式之一。

问题 2:如何删除一个已创建的子接口?
解答:删除子接口同样推荐使用 nmcli 命令,因为它会安全地移除配置。

  • 使用 nmcli 删除:
    nmcli con delete eth0.100

    执行此命令后,NetworkManager 会自动删除相关的配置文件并停止该接口。

  • 手动删除:
    1. 删除对应的配置文件:rm /etc/sysconfig/network-scripts/ifcfg-eth0.100
    2. 重启网络服务:systemctl restart network
      手动删除时请务必谨慎,确保文件名正确,以免误删其他重要配置。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-01 12:58
下一篇 2024-08-18 18:21

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信