news 2026/7/4 4:24:47

EVE-NG v7 重磅更新:付费功能全免费,流量可视化人人可用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
EVE-NG v7 重磅更新:付费功能全免费,流量可视化人人可用

前言

长期以来,EVE-NG 都是网络从业者公认的仿真利器,能够完整模拟华为、华三、思科、锐捷等多厂商硬件设备,是考证练习、网络架构调试验证的核心工具。早在 v6 版本,官方就上线了 Traffic Filters 流量可视化功能,依靠实时拓扑流量线条,把看不见的数据转发、故障切换过程直观呈现,大幅降低复杂组网实验的理解难度。但该功能仅对付费专业版开放,绝大多数普通用户只能望而却步。

近日,从 EVE-NG 亚太区独家代理商 EmulatedLab 社区获悉,即将正式发布的 EVE-NG v7 专业版大幅放宽权限,以往 v6 专业版必须购买授权才能使用的全部专属功能,如今无需付费授权即可免费使用,Traffic Filters 流量可视化也包含在内。该功能解决了复杂网络实验难以直观观测流量走向的痛点,在 @hbugs001 的协助下,我提前拿到 v7 体验版。本文以 Keepalived+LVS 高可用 Nginx 集群为例,完整实测 Traffic Filters,带你感受新版本的实操价值。

一、实验准备

1.1 环境要求

EVE-NG 平台
  • EVE-NGv7(即将发布,本实验基于 v7 测试版验证;v6 专业版亦可完成全部实验);
  • EVE-NG 建议配置:CPU ≥ 16 核、内存 ≥ 32 GB、SSD ≥ 500 GB(5 台 openEuler 24.03 节点同时运行);
  • 浏览器:Chrome / Edge 最新版(用于访问 EVE-NG Web 控制台)。
虚拟节点规划
主机名角色数量系统CPU 内存
lvs1LVS+Keepalived节点1openEuler 24.03 LTS2 VCPU 4GB
lvs2LVS+Keepalived节点1openEuler 24.03 LTS2 VCPU 4GB
nginx1后端 Nginx 节点 11openEuler 24.03 LTS2 VCPU 4GB
nginx2后端 Nginx 节点 21openEuler 24.03 LTS2 VCPU 4GB
client客户端测试节点1openEuler 24.03 LTS2 VCPU 4GB
网络规划
网段用途关键 IP
业务网段 192.168.10.0/24客户端访问、LVS 对外服务、VIP 漂移lvs1.ens4=192.168.10.11、lvs2.ens4=192.168.10.12、VIP=192.168.10.100、client=192.168.10.10
后端网段 172.29.129.0/24LVS 与 Nginx 内部通信、nginx 默认网关lvs1.ens3 / lvs2.ens3 / nginx1 / nginx2 全部为 DHCP 自动获取(实际:172.29.129.190 / 189 / 124 / 247),后端浮动 VIP=172.29.129.100

1.2 实验拓扑图

Cloud 用于 NAT 访问互联网,默认网段:172.29.129.0/24,具有 DHCP。

VRRP 心跳lvs1lvs2通过业务网段(Sw1)互发 VRRP 通告,协商主备,两个 VIP 都跟着 Master 漂移

  • 业务 VIP192.168.10.100漂在 lvs1 / lvs2 的ens4(拓扑图中标注于 lvs1 e1 旁);
  • 后端浮动 VIP172.29.129.100漂在 lvs1 / lvs2 的ens3(拓扑图中标注于 lvs1 e0 旁,作为 nginx 的稳定默认网关)。
  • Internet 是 EVE-NG 内置 nat0 类型的 Network 网络对象,采用 NAT 转发模式,为实验拓扑内所有设备提供外网访问通道,默认网段为 172.29.129.0/24。
    实验中 openEuler 虚拟机需要联网下载 yum 软件源,因此组网拓扑必须添加该 Internet 对象才能正常联网。

逻辑网段

  • 业务网段192.168.10.0/24:客户端与 LVS 业务网卡所在的对外服务网段,VIP192.168.10.100浮动在 lvs1 / lvs2 的ens4上;
  • 后端网段172.29.129.0/24:LVS 与 Nginx 节点之间的内部通信网段,172.29.129.100作为浮动 VIP 充当 nginx 的稳定默认网关(避免 lvs1/lvs2 切换时 nginx 还要手动改网关)。LVS 通过ens3将请求转发至 Nginx1 / Nginx2。

1.3 节点系统初始配置

所有 5 个节点都执行

# 关 firewalld / SELinux(避免拦截实验流量)systemctl disable--nowfirewalld setenforce0sed-i's/^SELINUX=enforcing/SELINUX=permissive/'/etc/selinux/config# 改主机名(对应节点执行对应命令)hostnamectl set-hostname lvs1# lvs2 / nginx1 / nginx2 / client

仅 lvs1 / lvs2 额外执行

# 启用 IP 转发(LVS NAT 模式必须)echo"net.ipv4.ip_forward = 1">>/etc/sysctl.confsysctl-p# 加载 IPVS 内核模块 + 开机自载modprobe ip_vs ip_vs_rr ip_vs_wrr ip_vs_shcat>/etc/modules-load.d/ipvs.conf<<'EOF' ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh EOF

1.4 业务软件安装

lvs1 / lvs2 执行

yuminstall-yipvsadm keepalived

nginx1 / nginx2 执行(此时默认网关还是 DHCP 分配的 172.29.129.254,够装 nginx):

yuminstall-ynginxecho"Nginx Node 1 by grbj.cn">/usr/share/nginx/html/index.html# nginx2 改 Node 2systemctlenable--nownginxcurl-shttp://127.0.0.1/# 验证:应该输出 "Nginx Node 1 by grbj.cn"

client 执行

yuminstall-ycurl

网关时序说明:nginx 节点装好后,默认网关仍是172.29.129.254(外网路由器),必须在后续步骤中将它改为浮动 VIP172.29.129.100,否则 nginx 回包会绕过 LVS,形成流量环路。

二、实验配置

2.1 节点网络配置

LVS 节点(lvs1 改成 .11,lvs2 改成 .12)
# ens3 后端网卡:DHCP 但屏蔽 .254 默认路由(避免 LVS 自身发出的包被外网路由器劫持)nmcli con mod ens3 ipv4.method auto ipv4.never-defaultyesautoconnectyesnmcli con up ens3# ens4 业务网卡:静态nmcli con mod ens4 ipv4.addresses192.168.10.11/24 ipv4.method manual ipv4.never-defaultyesnmcli con up ens4
Nginx 节点(nginx1 改成 .247)
# 静态 IP,网关指向 LVS 后端浮动 VIP(响应报文走浮动网关才能回 LVS,否则形成流量环路)nmcli con mod ens3 ipv4.addresses172.29.129.124/24 ipv4.gateway172.29.129.100\ipv4.method manual autoconnectyesnmcli con up ens3
Client 节点
# 网关必须指向业务 VIP 192.168.10.100,不能指 lvs1 物理 IP(.11),否则 lvs1 故障时 client 全断网nmcli con mod ens3 ipv4.addresses192.168.10.10/24 ipv4.gateway192.168.10.100\ipv4.method manual nmcli con up ens3

2.2 LVS 主/备 Keepalived 配置

(1) 网卡检测脚本(两台 LVS 都要)
cat>/usr/local/bin/check_intf.sh<<'EOF' #!/bin/bash IF=$1 [ -z "$IF" ] && { echo "Usage: $0 <iface>" >&2; exit 2; } [ "$(cat /sys/class/net/$IF/operstate 2>/dev/null)" = "up" ] && exit 0 || exit 1 EOFchmod755/usr/local/bin/check_intf.sh
(2)/etc/keepalived/keepalived.conf(主备共用,只改 3 行)
global_defs { router_id LVS_MASTER script_user root enable_script_security } vrrp_script check_ens3 { script "/usr/local/bin/check_intf.sh ens3" interval 2 weight -30 fall 3 rise 2 } vrrp_script check_ens4 { script "/usr/local/bin/check_intf.sh ens4" interval 2 weight -30 fall 3 rise 2 } # VI_1 业务 VIP 绑 ens4 vrrp_instance VI_1 { state MASTER interface ens4 virtual_router_id 51 priority 110 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.10.100/24 dev ens4 label ens4:1 } track_script { check_ens3 check_ens4 } notify_master "/bin/true" notify_backup "/bin/true" notify_fault "/bin/true" } # VI_2 后端浮动 VIP 绑 ens3(nginx 默认网关,必须和 VI_1 同步漂移) vrrp_instance VI_2 { state BACKUP interface ens3 virtual_router_id 52 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 2222 } virtual_ipaddress { 172.29.129.100/24 dev ens3 label ens3:1 } track_script { check_ens3 check_ens4 } notify_master "/bin/true" notify_backup "/bin/true" notify_fault "/bin/true" } virtual_server 192.168.10.100 80 { delay_loop 6 lb_kind NAT lb_algo rr persistence_timeout 50 protocol TCP real_server 172.29.129.124 80 { weight 1 TCP_CHECK { connect_timeout 3 connect_port 80 nb_get_retry 3 delay_before_retry 3 } } real_server 172.29.129.247 80 { weight 1 TCP_CHECK { connect_timeout 3 connect_port 80 nb_get_retry 3 delay_before_retry 3 } } }

主备差异(只改这 3 行):

位置lvs1(主)lvs2(备)
router_idLVS_MASTERLVS_BACKUP
VI_1.stateMASTERBACKUP
VI_1.priority110100

VI_2 主备都state BACKUP+priority 100,靠 IP 大小决出(192.168.10.12>192.168.10.11,lvs2 抢得)。

2.3 启动

lvs1 / lvs2 执行

# 关掉 keepalived 自动重启(故障测试时 stop 不会被立刻拉起)sed-i's/^Restart=.*/Restart=no/'/usr/lib/systemd/system/keepalived.service systemctl daemon-reloadtouch/etc/sysconfig/ipvsadm systemctlenable--nowkeepalivedsleep8# 等 VRRP 协商

验证 lvs1(主)

ipvsadm-Lnip-4addr show|grep-E"192.168.10.100|172.29.129.100"

三、EVE-NG 启用 Traffic Filters 流量可视化

  1. 在 EVE-NG 实验拓扑界面,点击左侧“Traffic Filters”。

  2. 点击“NEW FILTER”,添加过滤规则。

  3. 配置两个过滤参数。

    Filter 1(端口 80 + 包大小 > 80 字节 = HTTP 业务流量)

    • Filter Title:tcp port 80 and greater 80
    • Filter Expression:tcp port 80 and greater 80
    • Timeout (milliseconds): 500
    • Filter Color:#00ff00(绿色)

    Filter 2(端口 80 + 包大小 < 80 字节 = TCP 握手/挥手):

    • Filter Title:tcp port 80 and less 80
    • Filter Expression:tcp port 80 and less 80
    • Timeout (milliseconds): 500
    • Filter Color:#0000FF(蓝色)

    要点greater 80/less 80是 EVE-NG Traffic Filters 扩展 BPF,针对链路层 packet size(总字节数)。两条规则分开,可以把 HTTP 业务包(>80 字节,带 payload)和 TCP 控制包(<80 字节,SYN/FIN/ACK)用不同颜色区分,让流量视图更清晰。

四、实验验证

4.1 正常业务调度验证

  1. 客户端循环访问 VIP,看后端轮询。
foriin$(seq110);doecho"--- request #$i---"curl-shttp://192.168.10.100/sleep0.5done

  1. 观察 Traffic Filters 视图。

  • 流量路径:客户端(192.168.10.0/24) → SW1 → LVS-MASTER(ens4 持 192.168.10.100,ens3 持 172.29.129.100) → Nginx1(172.29.129.124)/Nginx2(172.29.129.247)。
  • 流量线条交替闪烁,直观体现轮询调度;
  • 统计面板展示数据包数量。

4.2 主LVS节点故障切换验证

  1. 手动将 Sw1 到 lvs1 的链路停止,模拟 lvs1 故障。

  2. 等 5-10s 让 VRRP 协商完成

  3. 客户端验证业务不中断。

# 在 client 执行foriin12345;docurl-s--max-time3-w"code=%{http_code} time=%{time_total}s\n"http://192.168.10.100/sleep0.5done
  1. Traffic Filters 现象:

  • 业务 VIP192.168.10.100与后端浮动 VIP172.29.129.100同步漂移至 lvs2(因为两个 VIP 都在 VI_1/VI_2 的 track_script 里跟踪同一对 ens3/ens4);
  • 流量自动切换至client → Sw1 → lvs2(ens4 持 192.168.10.100) → Sw2 → nginx1/2链路,业务无中断;
  • Nginx 默认网关指向 172.29.129.100(后端浮动 VIP),始终跟随主节点切换,确保响应报文回程路径正确(nginx → 172.29.129.100(lvs2 ens3) → lvs2 ens4 → client)。
  1. 恢复主节点服务(高 priority 110 会自动抢回):

4.3 后端Nginx节点故障验证

  1. 将 Sw2 到 nginx1 的链路停止,模拟下线 Nginx1 服务。
  2. 等 6s 让 LVS TCP_CHECK 判定故障delay_loop 6× 1 轮 = 6s)。
  3. Traffic Filters 现象。

  • LVS 健康检测判定 Nginx1(172.29.129.124) 失效,该节点链路流量线条消失;
  • 所有请求统一转发至 Nginx2(172.29.129.247);
  • 客户端 curl 全部返回Nginx Node 2

五、实验总结

在此之前,Traffic Filters 一直是 EVE-NG 专业版的专属特权,不少想做可视化实验的爱好者、学生、中小企业只能放弃,或是额外承担授权成本。而 EVE-NG v7 直接取消付费门槛,让所有人都能零成本使用流量可视化,这一次更新彻底拓宽了模拟器的使用边界。

很多人固化认为 EVE-NG 只是网工刷题、调试交换路由的工具,但 Traffic Filters 免费开放后,它早已不再局限于传统网络场景。后端开发可以直观看懂负载均衡调度逻辑,安全从业者能够搭建低成本流量分析靶场,运维新人可快速理解集群故障漂移,甚至产品、测试等非技术人员,也能依托动态拓扑快速听懂底层业务流转逻辑。

过去想要复现集群故障、流量切换流程,要么采购昂贵商用可视化平台,要么冒险在线上环境测试,成本与风险双双拉满。如今仅靠一台普通服务器部署 EVE-NG v7,就能搭建完整可视化实验环境。本次 LVS+Keepalived 高可用集群只是其中一个典型案例,借助 Traffic Filters,我们还能拓展微服务链路追踪、渗透流量溯源、多区域业务容灾等大量跨界实验。

如果你还在用传统方式反复刷新页面、翻查日志判断流量走向,不妨试试新版 EVE-NG 的 Traffic Filters。曾经收费解锁的可视化能力现在人人可用,也让这款老牌模拟器拥有了完全不一样的使用方式,挖掘出远超网络仿真之外的全新价值。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/4 4:24:31

我用PyQt5手搓了一款小米车机软件系统(详细图文说明)

文章目录一&#xff0e;前言二&#xff0e;技术介绍1.PyQt52.QSS3.QThread多线程技术4.QRC资源管理5.黑白主题切换三&#xff0e;效果展示1.主界面2.APP页面3.空调控制页面4.导航页面5.电话页面6.360全景页面7.设置页面1.基本设置2.车辆控制3.灯光设置4.辅助驾驶5.显示设置6.声…

作者头像 李华
网站建设 2026/7/4 4:23:31

23. 【C语言】共用体与枚举类型:当数据需要“变脸”

前面我们用结构体把不同数据打包在一起&#xff0c;一个 struct Student 里同时有姓名、学号、成绩&#xff0c;各占各的空间&#xff0c;互不干扰。 但有时候&#xff0c;我们需要的恰恰相反&#xff1a;同一个存储空间&#xff0c;在不同时刻存放不同类型的数据。 比如一个变…

作者头像 李华
网站建设 2026/7/4 4:20:30

WWDC 最大赢家不是苹果,是一个你看不见的 AI 模式

WWDC 2026 最让我意外的不是 Siri 终于变聪明了&#xff0c;是苹果选的人。今年 1 月&#xff0c;苹果和谷歌联合宣布了一项多年 AI 合作协议&#xff1a;苹果每年向谷歌支付约 10 亿美元授权费&#xff0c;把 Gemini 模型作为 Siri AI 的底层引擎。WWDC 上这事正式落地——Sir…

作者头像 李华
网站建设 2026/7/4 4:19:40

Linux cpio命令详解:高效备份与性能优化指南

1. cpio命令概述与核心价值cpio作为Linux系统中经典的备份工具&#xff0c;其设计哲学体现了Unix"小而美"的理念。与常见的tar命令相比&#xff0c;cpio在处理大量小文件时具有明显的性能优势&#xff0c;这也是为什么许多Linux发行版的initramfs仍然采用cpio格式的原…

作者头像 李华
网站建设 2026/7/4 4:13:20

TVA对具身智能领域的核心技术支撑(17)

前沿技术介绍&#xff1a;AI智能体视觉&#xff08;TVA&#xff0c;Transformer-based Vision Agent&#xff09;是依托Transformer架构与“因式智能体”理论所构建的颠覆性工业视觉技术&#xff0c;属于“物理AI” 领域的一种全新技术形态&#xff0c;完成了从“虚拟世界”到“…

作者头像 李华