如何检查 Linux 中是否设置了 VLAN

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本次实验中,你将学习如何检查 Linux 系统中是否设置了 VLAN。你将探索三种验证 VLAN 配置的方法:使用 ip link 命令列出 VLAN 接口,以识别已配置的 VLAN 接口;检查 /etc/network/interfaces 文件,以确认 VLAN 设置;查看 /proc/net/vlan 文件,获取详细的 VLAN 信息。通过完成这些步骤,你将掌握在 Linux 系统上识别和验证 VLAN 设置的实用技能。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/RemoteAccessandNetworkingGroup -.-> linux/ip("IP Managing") subgraph Lab Skills linux/cat -.-> lab-558777{{"如何检查 Linux 中是否设置了 VLAN"}} linux/ip -.-> lab-558777{{"如何检查 Linux 中是否设置了 VLAN"}} end

在这一步中,你将学习如何使用 ip link 命令列出 VLAN 接口。VLAN(虚拟局域网,Virtual Local Area Networks)是一种将物理网络划分为多个逻辑网络的方法。这通常用于提高网络性能、安全性和可管理性。

ip 命令是 Linux 中用于管理网络接口、路由和隧道的强大工具。link 子命令专门用于管理网络接口。

要列出系统上的所有网络接口,包括任何已配置的 VLAN 接口,请打开终端并输入以下命令:

ip link show

按下回车键。

你将看到类似以下的输出:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
3: eth0.10@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
4: eth0.20@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff

在这个输出中:

  • lo 是回环接口,用于系统内部的通信。
  • eth0 是你的主网络接口。
  • eth0.10@eth0eth0.20@eth0 是 VLAN 接口。interface.vlan_id@parent_interface 这种格式通常用于命名 VLAN 接口。这里,eth0.10 是父接口 eth0 上 ID 为 10 的 VLAN 接口,eth0.20 是父接口 eth0 上 ID 为 20 的 VLAN 接口。

eth0.10eth0.20 这样的接口的存在表明你的系统上已配置了 VLAN。

你还可以过滤输出,只显示特定的接口或接口类型,但目前,ip link show 足以查看所有接口,包括 VLAN 接口。

点击 继续 进入下一步。

验证 /etc/network/interfaces 中的 VLAN 配置

在这一步中,你将检查网络配置文件,了解 VLAN 接口是如何定义的。在许多基于 Debian 的系统(如 Ubuntu)中,网络接口的配置信息存储在 /etc/network/interfaces 文件中。

该文件包含了网络接口的定义,规定了系统启动时这些接口应如何配置。尽管现代系统通常使用 netplanNetworkManager,但 /etc/network/interfaces 仍然很重要,它能让你清晰地查看包括 VLAN 在内的接口配置。

要查看该文件的内容,你可以使用 cat 命令,它用于显示文件内容。

打开终端并输入以下命令:

cat /etc/network/interfaces

按下回车键。

你将看到类似以下的输出:

## interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth0.10
iface eth0.10 inet dhcp
    vlan-raw-device eth0

auto eth0.20
iface eth0.20 inet dhcp
    vlan-raw-device eth0

下面我们来分析一下与 VLAN 接口相关的部分:

  • auto eth0.10:这行代码告诉系统在启动时自动启用 eth0.10 接口。
  • iface eth0.10 inet dhcp:这行定义了 eth0.10 接口,并指定它应通过 DHCP 获取 IP 地址。
  • vlan-raw-device eth0:这是关键的一行,它将 eth0.10 标识为 VLAN 接口,并指定其父设备为 eth0。点号后面的数字(.10)就是 VLAN ID。

你会看到 eth0.20 也有类似的条目,这表明它是同一父设备 eth0 上 ID 为 20 的另一个 VLAN 接口。

检查这个文件有助于你了解 ip link show 命令列出的 VLAN 接口是如何在系统中进行持久配置的。

点击 继续 进入下一步。

使用 cat /proc/net/vlan 检查 VLAN 详细信息

在这最后一步中,你将查看 Linux 文件系统中另一个能提供已配置 VLAN 信息的位置:/proc/net/vlan

/proc 文件系统是一个虚拟文件系统,它提供有关进程和其他系统信息。/proc/net 中的文件通常包含网络栈的详细信息。/proc/net/vlan 文件专门列出了已配置的 802.1q VLAN 接口及其关联的父设备和 VLAN ID。

要查看该文件的内容,请再次使用 cat 命令。

打开终端并输入以下命令:

cat /proc/net/vlan

按下回车键。

你将看到类似以下的输出:

VLAN  ID TYPE     REORDER DEVICE
eth0.10  10 8021Q      0 eth0
eth0.20  20 8021Q      0 eth0

此输出简洁地总结了已配置的 VLAN 接口:

  • VLAN:VLAN 接口的名称(例如,eth0.10)。
  • ID:VLAN ID(例如,1020)。
  • TYPE:VLAN 协议类型(例如,8021Q)。
  • REORDER:表示是否启用了 VLAN 帧重新排序(通常为 0)。
  • DEVICE:VLAN 关联的父物理设备(例如,eth0)。

这个文件是快速确认系统上哪些 VLAN 处于活动状态以及它们与哪些物理接口相连的方法。

你现在已经成功使用了三种不同的方法(ip link showcat /etc/network/interfacescat /proc/net/vlan)来识别和验证 Linux 系统上的 VLAN 配置。

点击 继续 完成实验。

总结

在本次实验中,你学习了如何使用多种方法检查 Linux 系统中是否设置了 VLAN。首先,你使用 ip link show 命令列出所有网络接口,并识别 VLAN 接口,这些接口通常采用 interface.vlan_id@parent_interface 的格式命名。该命令能快速概览已配置的网络链接,包括 VLAN。

接下来,你通常会通过检查 /etc/network/interfaces 文件来验证 VLAN 配置,该文件存储了网络接口的配置信息。最后,你使用 cat /proc/net/vlan 命令查看已配置 VLAN 的详细信息,包括它们的 ID 和关联的父接口。这些步骤共同提供了一种全面的方法,用于确定 Linux 系统中是否设置了 VLAN 以及检查其配置细节。