Linux如何配置VLAN虚拟网络_Linux VLAN虚拟网络配置方案

夜萱大大_9429

夜萱大大_9429

2026-04-04

511人浏览

原创

linux配置vlan需三步:加载8021q模块、用ip link创建子接口、按发行版持久化配置;未加载模块则操作失败,重启丢失因未持久化,交换机trunk和mtu适配同样关键。

linux如何配置vlan虚拟网络_linux vlan虚拟网络配置方案

Linux 上配置 VLAN 不是“装个包就能用”的事,核心在于三件事:模块加载、接口创建、配置持久化。临时配好 ip link add 之后发现重启就丢,是绝大多数人踩的第一个坑。

确认 8021q 内核模块已加载且自动启用

现代发行版虽默认支持 VLAN,但 8021q 模块未必已载入,更不会默认开机加载。

  • 运行 lsmod | grep 8021q,无输出即未加载
  • 临时加载:sudo modprobe 8021q
  • 永久启用:向 /etc/modules(Debian/Ubuntu)或 /etc/sysconfig/modules/vlan.modules(RHEL/CentOS)中写入 8021q,或在 /etc/modprobe.d/vlan.conf 中添加 install 8021q /sbin/modprobe --ignore-install 8021q && /sbin/modprobe --quiet --use-blacklist veth
  • 不加载该模块,ip link add ... type vlan 会报错 Operation not supported

用 ip link 创建 VLAN 子接口(临时生效)

这是最轻量、最通用的方式,适用于所有支持 iproute2 的系统(基本全覆盖),但仅限当前会话。

  • 语法必须严格:sudo ip link add link ens33 name ens33.200 type vlan id 200 —— link 后是物理口名,name 是子接口名,id 是 VLAN ID,三者缺一不可
  • 创建后默认 DOWN,必须显式启用:sudo ip link set ens33.200 up
  • 分配 IP:sudo ip addr add 172.168.10.51/24 dev ens33.200
  • 验证:ip -d link show ens33.200 会显示 vlan id 200;cat /proc/net/vlan/config 可查全局 VLAN 映射表
  • vconfig 已废弃,新内核下可能缺失,不要依赖

让 VLAN 配置在重启后依然存在

不同发行版路径和格式差异大,混淆会导致网络服务启动失败甚至无法 SSH 连入。

  • RHEL/CentOS/Rocky 8+:/etc/sysconfig/network-scripts/ifcfg-ens33.200 文件内容必须含 DEVICE=ens33.200、VLAN=yes、PHYSDEV=ens33、VID=200;父接口 ifcfg-ens33 中需设 BOOTPROTO=none 且不能配 IP
  • Debian/Ubuntu(netplan):vlans: 下级必须指定 link:(物理口名)、id:(数字)、addresses:;渲染器用 networkd,不用 NetworkManager,否则 VLAN 不生效
  • systemd-networkd 用户:在 /etc/systemd/network/10-ens33.netdev 中定义 [NetDev] 类型为 vlan,再通过 20-ens33.200.network 配地址 —— 注意 .netdev 和 .network 后缀不可互换
  • 漏掉 ONBOOT=yes 或 auto 声明,接口根本不会被拉起

交换机侧 Trunk 配置与链路状态联动

Linux 上 VLAN 接口 UP ≠ 能通。常见问题根源在物理链路协商或交换机配置不匹配。

  • ip link show ens33 中 state DOWN 表示物理口未连通或协商失败,此时所有子接口必 DOWN
  • 确保交换机端口设为 trunk 模式,并明确允许 VLAN ID 200、300 等(不是只设 trunk all,部分厂商默认不放行新增 VLAN)
  • 若使用 LACP 聚合口,VLAN 必须建在 bond 接口上(如 bond0.200),而非底层物理口(ens33.200)
  • 抓包验证:tcpdump -i ens33 -enn vlan 200 能看到带 802.1Q 标签的帧,说明链路层通;若无,问题一定在物理连接或交换机

真正容易被忽略的是:VLAN 接口的 MTU 默认继承物理口(通常 1500),但打上 4 字节标签后实际载荷变小。如果跑 NFS 或 iSCSI 等对 MTU 敏感的服务,需要手动在子接口设 MTU 1496 并同步调低上层应用的 MSS。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

2023.10.19

3108

3

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

2025.10.17

4689

12

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.12.29

3749

9

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

2026.01.19

426

15

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3970

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3393

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2553

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6170

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5822

7

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习