eNSP 启动 AR1 失败,错误代码 40 解决总结
eNSP及其配套程序下载地址: eNSP Download
演示系统版本
Windows11专业工作站版
版本号 24H2
操作系统版本 26100.7623
第一类现象
打开 eNSP 后,在拓扑图中添加路由器
AR1启动设备时持续提示:
启动设备 AR1 失败错误代码:40详细:启动失败
eNSP 日志文件:
C:\Users\<username>\AppData\Local\eNSP\Log\VBoxServer_2026-04-03.log
关键报错:
Failed to LookForVBox
这表示eNSP_VBoxServer在启动时没有找到可用的VirtualBox路径,因此后续设备启动全部失败,最终表现成错误代码 40。
本机实际环境
- VirtualBox 实际路径:
D:\app\virtualbox\
- VirtualBox 可执行文件:
D:\app\virtualbox\VBoxManage.exe
- eNSP 配置文件:
C:\Users\<username>\AppData\Local\eNSP\cfg\config_sys.ini
根因
config_sys.ini中的[pathVBox]原本是空的:
[pathVBox] path=虽然系统里存在VirtualBox 5.2.44,但 eNSP 没有正确读取到路径,导致它在启动 AR1 时直接失败。
已执行的修复
1. 修正 eNSP 的 VBox 路径
将配置文件改为:
[pathVBox] path=D:\app\virtualbox\对应文件:
C:\Users\<username>\AppData\Local\eNSP\cfg\config_sys.ini
可执行命令示例:
以下命令中的<VBOXDIR>为基于作者系统的实例,请按自己的实际 VirtualBox 安装目录调整并替换为真实路径。
$cfg="$env:LOCALAPPDATA\eNSP\cfg\config_sys.ini"(Get-Content$cfg)-replace'(?ms)(\[pathVBox\]\s*\r?\n\s*path=).*','$1<VBOXDIR>\'|Set-Content$cfg2. 修复安装 VirtualBox 5.2.44
已使用本机安装包重新修复:
C:\Users\<username>\Downloads\VirtualBox-5.2.44-139111-Win.exe
系统安装日志显示:
Oracle VM VirtualBox 5.2.44修复成功- Windows Installer 明确要求:
需要重新启动
可执行命令示例:
以下命令中的安装包路径为基于作者系统的实例,请按自己的实际下载位置调整。
Start-Process"C:\Users\<username>\Downloads\VirtualBox-5.2.44-139111-Win.exe"3. 注册ensp设备
重新启动AR1,ensp要求重新注册设备,请先将拓扑图中所有设备删除,再勾选弹出内所有选项,点击注册,待运行结束后退出。
第二类现象
AR1再次启动失败- 仍然报
错误代码 40 - 但这次不是
pathVBox丢失 - eNSP 日志:
C:\Users\<username>\AppData\Local\eNSP\Log\VBoxServer_2026-04-17.logC:\Users\<username>\AppData\Local\eNSP\Log\Conserver_2026-04-17.log
- 关键报错:
CAgentStaticCfgProcess::Startup - Failed to create pipe: 2Failed to upload resource cfg file
这说明这次的故障点已经不是 “找不到 VirtualBox”,而是设备资源上传和启动链在更早阶段断掉了。
本次实际根因
VirtualBox 的Host-Only网卡丢失了。
AR 设备资源文件里会固定使用:
192.168.56.1
如果本机没有对应的VirtualBox Host-Only Ethernet Adapter,则:
- eNSP 无法把资源配置正常下发到设备启动链
- AR 基准虚拟机无法绑定到正确的 Host-Only 网卡
- 最终界面仍然表现为
错误代码 40
本次执行的修复
1. 确认 VBox 路径和版本仍正常
pathVBox=D:\app\virtualbox\- VirtualBox 版本:
5.2.44r139111
说明这次复发不是 VBox 路径问题。
检查命令:
以下命令中的和路径为基于作者系统的实例,请按自己的实际安装路径调整并且在下述指令中将<…>替换为真实路径。<VBOX>=D:\app\virtualbox\VBoxManage.exe<ENSP>=D:\app\eNSP
Get-Content"$env:LOCALAPPDATA\eNSP\cfg\config_sys.ini"|Select-String'^\[pathVBox\]|^\s*path='&'<VBOX>'-v cmd/c reg query HKLM\SOFTWARE\Oracle\VirtualBox2. 重建 VirtualBox Host-Only 网卡
使用VBoxManage创建新的 Host-Only 网卡。
先执行下面命令查看自己机器当前真实的 Host-Only 网卡名称:
&'<VBOX>'list hostonlyifs作者机器本次创建后得到的是:
VirtualBox Host-Only Ethernet Adapter #2
执行命令:
以下命令中的 VBox 路径为基于作者系统的实例,请按自己的实际安装路径调整。
&'<VBOX>'hostonlyif create3. 将 Host-Only 网卡 IP 改回 eNSP 常用地址
设置为:
192.168.56.1/24
这是 eNSP 常见的 AR 资源配置所依赖的地址。
执行命令:
以下命令中的网卡名称和 VBox 路径为基于作者系统的实例,请按自己系统实际生成的 Host-Only 网卡名称调整。
&'<VBOX>'hostonlyif ipconfig"VirtualBox Host-Only Ethernet Adapter #2"--ip 192.168.56.1--netmask 255.255.255.04. 补齐 DHCP
给新的 Host-Only 网卡添加 DHCP:
192.168.56.100 - 192.168.56.254
执行命令:
以下命令中的网卡名称和 VBox 路径为基于作者系统的实例,请按自己系统实际生成的 Host-Only 网卡名称调整。
&'<VBOX>'dhcpserver add--ifname"VirtualBox Host-Only Ethernet Adapter #2"--ip 192.168.56.100--netmask 255.255.255.0--lowerip 192.168.56.101--upperip 192.168.56.254--enable5. 修改 eNSP 基准虚拟机模板中的 Host-Only 网卡名称
因为新建出来的网卡实际名称是:
VirtualBox Host-Only Ethernet Adapter #2
而 eNSP 基准虚拟机模板中原来写的是:
VirtualBox Host-Only Ethernet Adapter
所以需要把模板改为引用当前真实存在的网卡名称。
已修改的典型文件:
<ENSP>\VBoxServer\AR_Base\AR_Base.vbox<ENSP>\VBoxServer\ARBaseBackup\AR_Base\AR_Base.vbox<ENSP>\VBoxServer\WLAN_AC_Base\WLAN_AC_Base.vbox<ENSP>\VBoxServer\WLAN_AD_Base\WLAN_AD_Base.vbox<ENSP>\VBoxServer\WLAN_AP_Base\WLAN_AP_Base.vbox<ENSP>\VBoxServer\WLAN_SAP_Base\WLAN_SAP_Base.vbox
修改前后对照:
<HostOnlyInterfacename="VirtualBox Host-Only Ethernet Adapter"/>改为:
<HostOnlyInterfacename="VirtualBox Host-Only Ethernet Adapter #2"/>如果只想批量替换,可以参考 PowerShell 命令:
$files= @('<ENSP>\VBoxServer\AR_Base\AR_Base.vbox','<ENSP>\VBoxServer\ARBaseBackup\AR_Base\AR_Base.vbox','<ENSP>\VBoxServer\WLAN_AC_Base\WLAN_AC_Base.vbox','<ENSP>\VBoxServer\WLAN_AD_Base\WLAN_AD_Base.vbox','<ENSP>\VBoxServer\WLAN_AP_Base\WLAN_AP_Base.vbox','<ENSP>\VBoxServer\WLAN_SAP_Base\WLAN_SAP_Base.vbox')foreach($fin$files){(Get-Content$f)-replace'VirtualBox Host-Only Ethernet Adapter','VirtualBox Host-Only Ethernet Adapter #2'|Set-Content$f}修改后如何生效并验证
无论是第一类还是第二类,完成修改后都建议按下面顺序操作:
- 完全退出 eNSP
- 完全退出 VirtualBox 相关进程
- 如果刚修复或重装过 VirtualBox,先重启 Windows
- 重新打开 eNSP
- 如 eNSP 提示重新注册设备,按提示完成注册
- 再次启动
AR1验证
