1 EVE-NG桥接外网的5种方式:从"ping不通8.8.8.8"到全通
1.1 痛点引入
拓扑搭好了,设备起来了,CLI里show ip interface brief全绿------然后你试着ping 8.8.8.8,不通。
想从浏览器登录防火墙Web界面?打不开。想在实验设备里装个软件包?没网。折腾半天才发现,设备之间倒是通了的,但整个实验环境跟外部网络是隔离的。
问题出在哪?桥接没搞对。EVE-NG的网络模型和VMware不一样,不是"装上就通",而是要理解Cloud、pnet、Bridge三种网络类型各自的作用,选对方式才能把你的实验环境接入外部网络。
这篇把5种方式一次讲清。
1.2 核心知识:5种桥接方式
1.2.1 方式1:Bridge(实验内互联)
Bridge是EVE-NG的内部虚拟交换机,基于Linux Bridge实现。当你从左侧网络菜单添加"bridge"类型网络时,EVE-NG在后台创建一个Linux Bridge设备,接口命名规则为vnet<随机ID>。
- 用途:同一实验内多个节点之间的二层互联
- 关键特征:Bridge网络完全隔离于宿主机物理网络,不提供外网连通性
- 典型场景:两台路由器之间跑OSPF,中间接一台交换机,用Bridge连就行
注意:Bridge不是"桥接外网"的意思,它的名字容易误导新手。如果你要连外网,看方式2。
来源:03.3 节点与网络配置文档 5.1节 / Cloud网络映射源码分析文档 维度3
1.2.2 方式2:Cloud/pnet(直连物理网络)
这是最常用的外网连接方式。EVE-NG的Cloud网络底层绑定的是宿主机物理网口对应的Linux Bridge------pnet接口。
核心映射规则:
| 前端显示 | 后端标识 | 绑定对象 | 用途 |
|---|---|---|---|
| Management(Cloud0) | pnet0 | 管理网口 | 宿主机管理网络,设备可获取DHCP地址 |
| Cloud1 | pnet1 | 第二物理网口 | 连接第二张物理网卡所在网络 |
| Cloud2 | pnet2 | 第三物理网口 | 连接第三张物理网卡所在网络 |
| ... | ... | ... | ... |
| Cloud9 | pnet9 | 第十物理网口 | 连接第十张物理网卡所在网络 |
核心原则:Cloud网络是一个虚拟交换机,它桥接到宿主机的一个物理网口(pnet接口)。你可以将实验内任意设备的任意网卡连接到这个Cloud网络上,该网卡即可获得与宿主机物理网络相同的连通性。例如,将设备A的eth2连接到Cloud1,设备A的eth2就能访问宿主机pnet1所连接的网络。
关键操作注意------社区版限制:
社区版不支持开机状态下修改网络连接。添加或更改Cloud连接时,必须:
- 先关闭设备
- 断开该接口上所有连线
- 重新连接到Cloud网络
- 再开机
如果跳过"断线"步骤直接改,可能导致网络状态异常且无法自动恢复。
来源:网卡桥接教程 / Cloud网络映射源码分析文档 维度5-6 / 03.3文档6.3节
1.2.3 方式3:ESXi环境额外配置------混杂模式
如果你的EVE-NG跑在ESXi/ESX虚拟化环境里,方式2还不够,必须额外做一项配置:开启端口组混杂模式。
ESXi的vSwitch默认不允许虚拟机接收非自身MAC地址的流量。而EVE-NG内部的虚拟设备各有各的MAC地址,流量经过vSwitch时会被丢弃------表现为设备连了Cloud但ping不通任何外部地址。
操作步骤:
- 登录vSphere Client → 选择宿主机 → 配置 → 虚拟交换机
- 找到EVE-NG虚拟机所在的端口组 → 编辑
- 安全设置中,将"混杂模式"改为"接受"
- 建议"MAC地址变更""伪传输"也全部勾选为"接受"
- 安全提示:将"MAC地址变更"和"伪传输"设置为"接受"会降低端口组安全性,使其更容易受到MAC欺骗攻击。在生产环境的ESXi中,建议仅在EVE-NG虚拟机所在的特定端口组上开启这些选项,并确保该端口组是隔离的、可信的。对于纯实验环境,此设置是安全的。
- vSwitch建议只绑定一张物理网卡,避免多网卡捆绑导致流量混乱
来源:网卡桥接教程注意事项2-3
1.2.4 方式4:VXLAN隧道透传(跨网段二层打通)
这是多数人不知道的方式。当你有两台物理上分离的EVE-NG服务器(或一台EVE-NG + 一台远端Linux设备),需要让两边的交换机在同一VLAN内建立OSPF邻居时,VXLAN是答案。
原理:在两台Linux设备之间建立VXLAN隧道,隧道两端各创建一个Linux Bridge,将VXLAN接口和物理子接口(或VLAN接口)同时桥接进去,实现二层流量的跨三层透传。
配置要点:
bash
# 在两端Linux设备上分别执行
# 1. 创建VXLAN隧道接口
ip link add vxlan100 type vxlan id 100 remote <对端IP> local <本端IP> dstport 4789
# 2. 创建VLAN感知的网桥
ip link add br100 type bridge vlan_filtering 1
# 3. 将物理网卡和VXLAN接口加入网桥
ip link set eth0 master br100
ip link set vxlan100 master br100
# 4. 在网桥上配置VLAN
bridge vlan add dev eth0 vid 100
bridge vlan add dev vxlan100 vid 100
# 5. 启用所有接口
ip link set vxlan100 up
ip link set br100 up
ip link set eth0 up
验证要点:
- 底层IP连通性是前提------先ping对端物理IP确认可达
- 检查网桥MAC表:
bridge fdb show br br100,确认远端MAC已学习 - 交换机上配置Trunk允许VLAN 100通过,两端OSPF配置在同一区域
- 生产环境建议用NetworkManager或systemd-networkd做持久化,
ip link命令重启后失效
来源:VXLAN透传交换机VLAN建立OSPF邻居实验指南
1.2.5 方式5:SSL VPN远程接入
当你需要从外网(家里、咖啡厅、手机热点)访问EVE-NG内网设备的Web管理页面时,前4种方式都不够------它们解决的是EVE-NG到外网的连通,而你需要的是反向:从外网穿透进来。
SoftEtherVPN是社区验证过的方案,核心架构:
- VPN Server运行在EVE-NG宿主机上
- 创建一个Virtual HUB
- 用BridgeCreate命令将Virtual HUB桥接到pnet0(管理网络)
- 外网客户端通过SSL VPN拨号后,获得与EVE-NG内网同网段的IP地址
关键配置步骤:
bash
# 编译安装SoftEtherVPN后,进入vpncmd
vpncmd localhost /SERVER /PASSWORD:<密码> /HUB:DEFAULT
# 创建Virtual HUB
HubCreate VPN
# 桥接到pnet0
# /DEVICE:soft 告诉SoftEther创建一个名为soft的TAP接口,并将Virtual HUB VPN桥接到这个接口上
BridgeCreate VPN /DEVICE:soft /TAP:yes
# 之后需要将soft接口手动桥接到EVE-NG的pnet0网桥上,才能让VPN客户端访问管理网络
# brctl addif pnet0 soft
# 创建用户并设密码
UserCreate vpnuser /GROUP:none /REALNAME:none /NOTE:none
UserPasswordSet vpnuser /PASSWORD:<用户密码>
客户端连接后,可以直接在浏览器输入防火墙的内部IP地址访问Web管理界面。
注意:如果没有公网IP,可以用内网穿透工具(如frp)替代,将VPN端口映射出去。
来源:SSL VPN部署教程(SoftEtherVPN + BridgeCreate方案)
1.3 操作步骤:Cloud/pnet桥接实战(最常用方式)
以下以裸机部署的EVE-NG为例,将设备接入外网:
bash
# 第1步:确认pnet接口状态
# 登录EVE-NG CLI,执行以下命令确认pnet0网桥存在且状态为UP
# ip link show pnet0 或 brctl show pnet0
# 通常情况下,pnet0在系统安装时已自动配置好,并绑定了物理网口(如eth0),无需额外操作
# 第2步:在实验中添加Cloud网络
# Web界面 → 左侧网络菜单 → 拖拽"Management(Cloud0)"到画布
# 第3步:设备关机 + 断线
# 右键设备 → Stop
# 右键设备连线 → Delete
# 第4步:连接Cloud
# 从设备网卡拖线到Cloud0图标
# 第5步:开机验证
# 右键设备 → Start
# 进入设备CLI → ping 8.8.8.8
如果ping通了,说明桥接成功。设备也可以通过DHCP获取到管理网络的IP地址。
【待验证】部分设备需要手动配置IP地址和默认路由,不一定是DHCP自动获取。
1.4 常见报错及解决
| 报错现象 | 原因 | 解决方案 |
|---|---|---|
| 添加网络时Cloud选项灰色/不显示 | 管理界面未绑定pnet接口,或宿主机无可用物理网口 | 登录CLI → Network Settings → 将pnet0-pnet9绑定到对应物理接口 |
| 设备连了Cloud但ping不通外网 | ESXi环境未开启端口组混杂模式 | vSphere Client → 端口组安全设置 → 混杂模式改为"接受" |
| 修改Cloud连接后节点网络异常 | 社区版未关机就修改了网络连接 | 关机 → 断开所有连线 → 重新连接Cloud → 开机 |
来源:Cloud网络映射源码分析文档 维度7故障表 / 网卡桥接教程注意事项
1.5 总结升华:5种桥接方式速查表
| 方式 | 适用场景 | 是否需要额外配置 | 难度 |
|---|---|---|---|
| Bridge | 实验内节点互联 | 否 | 低 |
| Cloud/pnet | 直连物理网络(最常用) | 需确认pnet接口状态 | 中 |
| ESXi混杂模式 | ESXi环境下的Cloud桥接 | 需开启端口组混杂模式 | 中 |
| VXLAN隧道 | 跨网段二层透传(异地OSPF邻居等) | 需在两端Linux配置VXLAN+Bridge | 高 |
| SSL VPN | 从外网远程访问内网设备 | 需部署SoftEtherVPN并桥接pnet | 高 |
一句话选型:同一实验内互联用Bridge,连外网用Cloud,ESXi加开混杂模式,跨机房用VXLAN,远程管理上VPN。
本文为AI辅助生成草稿,标注【待验证】的技术细节请以实际环境验证为准。
1.6 内容来源
本文素材来自以下EVE-NG知识库文档,按章节索引:
1.6.1 痛点引入
- 社群高频问题整理("设备能互访但ping不通外网"类问题)
1.6.2 方式1 Bridge
- 03.3 节点与网络配置.md 5.1节:前端实际支持的网络类型及区别
- T-CLOUD-ADDMAP Cloud网络映射源码分析.md 维度3:网络类型判定
1.6.3 方式2 Cloud/pnet
- 网卡如何桥接?------EVE-NG亚太代理中文区独家合作伙伴:eth与pnet映射规则、Cloud命名对应关系、社区版关机断线操作要求
- T-CLOUD-ADDMAP Cloud网络映射源码分析.md 维度5-6:pnet接口扫描与Cloud虚拟交换机绑定机制、配置持久化
- 03.3 节点与网络配置.md 6.3节:Cloud网络操作流程
1.6.4 方式3 ESXi混杂模式
- 网卡如何桥接?------EVE-NG亚太代理中文区独家合作伙伴 注意事项2-3:ESXi端口组混杂模式配置、vSwitch单物理网卡绑定建议
1.6.5 方式4 VXLAN隧道透传
- Linux基于Vxlan透传交换机vlan建立ospf邻居------EVE-NG亚太代理中文区独家合作伙伴:VXLAN隧道配置、二层网桥、交换机Trunk与OSPF配置、验证与排错
1.6.6 方式5 SSL VPN远程接入
- EVE-NG裸机部署SSL VPN,实现外网连接裸机内网------EVE-NG亚太代理中文区独家合作伙伴:SoftEtherVPN安装配置、BridgeCreate绑定pnet0、客户端连接验证
1.6.7 操作步骤
- 综合引用:网卡桥接教程 + 03.3文档6.2节 + Cloud映射文档维度5
1.6.8 常见报错及解决
- T-CLOUD-ADDMAP Cloud网络映射源码分析.md 维度7:故障排查表
- 网卡如何桥接?------EVE-NG亚太代理中文区独家合作伙伴 注意事项
