下载好 HCL 模拟器后,网络设备启动常见问题与解决
在本机系统版本 Win11 家庭版环境下,启动设备(显示"启动失败")通常是由虚拟化冲突引起的:
- 关闭 Hyper-V 相关功能:在"启用或关闭 Windows 功能"中,取消勾选"虚拟机平台"和"适用于 Linux 的 Windows 子系统 (WSL)"。
- 禁用内核隔离:进入"Windows 安全中心"->"设备安全性"->"内核隔离",关闭"内存完整性"开关并重启。
- 强制关闭 Hypervisor :若上述无效,以管理员身份运行 CMD,执行命令
bcdedit /set hypervisorlaunchtype off并重启电脑。 - CLI 窗口无响应 :如果启动后命令行只有绿色方块,通常是因为设备还在加载内核,需等待 1~2 分钟并多次敲击回车键激活交互界面。
网络设备设置与配置
本实验采用两台 MSR36-20 路由器、一个 Host 主机、一个 PC 机组成的拓扑。

右键设备-启动-启动成功-打开命令端口(在 HCL 模拟器内,非本机 cmd 窗口)
各设备配置命令记录如下:
路由器 1 (MSR36-20_1) - 模拟内网网关
powershell
<H3C> system-view #进入系统视角,权限更高
[H3C] sysname MSR1 #更改名称,方便区分
[MSR1] interface GigabitEthernet 0/1 # 进入0/1接口连接MSR3
[MSR1-GigabitEthernet0/1] ip address 10.0.0.1 255.255.255.0 #设置0/1接口的ip,前ip,后子网掩码
路由器 3 (MSR36-20_3) - 模拟中间跳板
powershell
<H3C> system-view
[H3C] sysname MSR3
[MSR3] interface GigabitEthernet 0/0 # 进入0/0接口连接MSR1
[MSR3-GigabitEthernet0/0] ip address 10.0.0.2 255.255.255.0 # 提醒:即使是连接在同一条线上的不同路由器的两个接口,也拥有不一样的ip地址
[MSR3] interface GigabitEthernet 0/1 # 进入0/1接口连接物理主机 Host_1
[MSR3-GigabitEthernet0/1] ip address 192.168.56.10 255.255.255.0 # 192.168.56.10为MSR3接口0/1的ip地址,并不等于Host_1的ip地址
⚠️注意:若查看虚拟网卡(本机)IP地址
- 方法一:可以搜索栏搜索"查看网络连接",找到虚拟网卡,双击并点击"详细信息"查看
- 方法二:打开本机 cmd 命令行(管理员身份),输入
ipconfig即可查看各个网卡的 ip

物理主机接入点 Host_1
接口绑定 :双击 Host_1,在网卡绑定中选择 VirtualBox Host-Only Ethernet Adapter。
验证设备间的连通性(Ping)
在配置完成后,通过以下步骤验证虚拟链路是否畅通
- 验证 MSR1 与 MSR3 互通 : 在 MSR3 的命令行输入
ping 10.0.0.1,若收到回复说明两台路由器间链路正常。 - 验证层级逻辑 : 若要执行
ip address或ping命令,必须确保处于正确的视图(如接口视图或用户视图),否则会提示Unrecognized command。
验证物理主机连接情况
- **查看物理机 IP **: 通过上面已陈述的方法,得到
VirtualBox Host-Only Network网卡的 IP 为192.168.56.1,掩码255.255.255.0。 - 桥接测试 : 打开物理机的命令提示符 (CMD),输入
ping 192.168.56.10(MSR3 接口 0/1 的 ip)。 - 渗透实验准备 : 一旦 Ping 通,物理机即可通过该虚拟网卡,利用 Nmap 扫描
192.168.56.10或直接 Telnet 登录虚拟路由器,从而完成"本地电脑对虚拟设备"的渗透测试 Demo。
常用命令
- 查看拓扑中各个网络设备和接口的 ip 地址:display ip interface brief
测试 demo
- 将写好的脚本 demo_1.py 保存至 E:\python_workspace\information_center\demo_1
python
import socket
def check_ip_port_reachable(ip,port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(2)
try:
sock.connect((ip, port)) # 尝试连接端口判断可达性
print(f"{ip} 可达")
sock.close()
return True
except:
print(f"{ip} 不可达")
return False
if __name__ == "__main__":
switch_ip = "192.168.56.10"
port=23
check_ip_port_reachable(switch_ip, port)
- 确认连通性 :在物理机(Host_1)终端(cmd)中确认可以
ping通192.168.56.10 - 执行脚本 :执行脚本
python demo_1.py

发现未有端口开放。 因为:未开放端口通信。我们以开放Telnet 服务做测试 。Telnet 是一种"远程登录服务/协议" ,Telnet 默认使用 23 端口通信 ,故开启 Telnet 后,设备内部会启动: 一个"监听 23 端口的程序"。 我们再次运行脚本扫描,就会看到,23 号端口是开放状态 。
网络通信里:
- IP 地址决定:
👉 "找到哪台设备"- 端口决定:
👉 "找到设备里的哪个服务"- 所以 192.168.1.10:23 表示------》连接这台设备(MSR3)上的 Telnet 服务
- 开放路由 MSR3 的端口:开启 Telnet 远程登录,并设置登录密码和权限。 打开 MSR3 终端,输入以下命令:
开启 Telnet 远程管理 → 设置密码 h3c123456 → 登录后给管理员权限
powershell
<MSR3> system-view
[MSR3] telnet server enable # 开启这台设备的 Telnet 服务(允许别人通过 Telnet 远程连进来管理这台设备)
[MSR3] user-interface vty 0 4 # 进入 VTY 虚拟终端线路 0 到 4 的配置界面,0 4 表示一共配置 5 个远程登录口
[MSR3-line-vty0-4] authentication-mode password # 把远程登录方式设置为:密码认证。也就是说,别人想 Telnet 进来,要先输入密码
[MSR3-line-vty0-4] set authentication password simple h3c123456 # 密码需至少包含两种字符,simple 表示密码以明文方式直接设置
[MSR3-line-vty0-4] user-role network-admin # 给通过 Telnet 登录上来的人分配:network-admin 权限。意思是登录后拥有网络管理员级别的管理能力
来自:华为配置指南 _通过Telnet登录设备-配置VTY用户界面的认证方式
- 再次运行脚本得到结果:
