从满屏 Error 到两台 PC 互 ping:我的 eNSP 基础命令入门笔记
记录:数据通信与网络技术实验课要用 eNSP 交作业的我、以及想学网络但买不起真设备的穷学生,和所有对着
Error: Unrecognized command发过呆的人。我的情况:本学期在啃《计算机网络》,实验全在 eNSP 里做。笔记持续更新中,有错欢迎评论区指正。
一、eNSP 是什么,为什么从它入门
eNSP 全称 Enterprise Network Simulation Platform,华为的企业网络仿真平台,免费。对穷学生来说这是决定性的优点:一台真路由器几千块,而 eNSP 里 AR 路由器、S 交换机随便拖,想搭多大拓扑搭多大。
更重要的理由是,仿真设备里跑的 VRP 系统(Versatile Routing Platform,华为的通用路由平台)和机房里的真机是同一套,命令一字不差。也就是说,在这里敲的每条命令,将来在公司机房里都直接能用在真设备上。思科那边有 Packet Tracer,也很优秀,但国内的政企网络里华为设备占比高,课堂作业和 HCIA→HCIP→HCIE 的认证体系也都绕着它转,选它不亏。
用法一句话就能说完:从左侧设备库把设备拖到画布上,用线连起来,双击任意设备,就进入了它的命令行。剩下的事,全靠敲命令。其实是要支持国产化,虽然他已经停更了。
二、视图看不懂,命令永远是玄学
双击路由器,看到的提示符是 <Huawei>。我当时的本能反应是照着教程敲 sysname R1(给设备改名),结果满屏报错,命令明明一个字母都没敲错。后来才明白,问题不在命令,在位置——VRP 把命令行分成一层层的"视图",每层视图只认自己那层的命令,提示符就是你的楼层指示牌。
新手必须认得的四层视图:
| 视图 | 提示符长这样 | 能干什么 | 怎么进去 |
|---|---|---|---|
| 用户视图 | <Huawei> | 查看状态、ping、保存配置 | 开机就在这层 |
| 系统视图 | [Huawei] | 改全局配置,比如设备名 | 用户视图敲 system-view |
| 接口视图 | [Huawei-GigabitEthernet0/0/0] | 配这个接口的 IP 等 | 系统视图敲 interface GigabitEthernet 0/0/0 |
| 协议视图 | [Huawei-rip-1] | 配某个具体协议 | 系统视图敲对应协议命令 |
以我的浅薄理解就是把它想成一栋楼:用户视图是大堂,只能东张西望;系统视图是办公层,能改大楼的招牌和规矩;接口视图是某个具体房间,进了这个房间,敲的命令只影响这个房间。上楼用 system-view,下楼用 quit(退一层),想从任何楼层一步回大堂,敲 return 或者直接按 Ctrl+Z。
我当初踩过的坑:我以为命令在哪儿敲都一样,于是在用户视图敲
sysname,系统回我一句Error: Unrecognized command,我对着这行字怀疑了十分钟人生。后来学到一招:报错的第一反应不是检查命令拼写,是瞄一眼提示符——尖括号<>说明你在大堂,方括号[]说明你在办公层。把"敲命令前先看提示符"练成本能之后,我的报错少了一大半。
三、先学会用问号问命令
在讲具体命令之前,必须先讲两个"元命令",因为它们能让你在没有搜索引擎的情况下自己查到一切。
第一个是问号 ?。单独敲一个 ?,列出当前视图下所有可用命令;敲 display ?,列出 display 后面能接的所有参数。第二个是 Tab 键,敲 int 按一下 Tab,自动补全成 interface,接口名也能补。配合方向键 ↑ 翻历史命令,这套组合基本覆盖了"命令记不全"的全部尴尬。
命令还支持简写:system-view 可以只敲 sys,display 敲成 dis,interface GigabitEthernet 0/0/0 敲成 int g0/0/0,效果完全一样。教程里的大神满屏缩写,不是记忆力好,是敲熟了自然就短。
而我的态度就是:记不住命令完全不是问题,不会查才是问题。真机上没有百度,? 就是随身携带的手册。
四、天天都要敲的高频命令
看状态:display 家族
display 是"查看"的意思,后面接不同参数能看到不同东西。最常用的三个:
<Huawei> display version # 看系统版本和运行时长
<Huawei> display current-configuration # 看当前全部配置,简写 dis cu
[R1] display ip interface brief # 看所有接口的 IP 和状态
其中 dis cu 是重中之重,你敲过的每条配置都会出现在里面:
[R1] display current-configuration
#
sysname R1
#
interface GigabitEthernet0/0/0
ip address 192.168.1.1 255.255.255.0
#
return
第一次看 dis cu 我愣了一下——原来"配置"不是什么神秘文件,就是我敲过的那些命令的合集。配置多了以后,输出会分页显示:按空格翻一页,回车走一行,Ctrl+C 直接退出。嫌翻页烦,可以在系统视图敲 screen-length 0 temporary,让输出一屏到底。
排故障时最值钱的是 display ip interface brief,它一眼告诉你每个接口"配没配 IP、通没通":
[R1] display ip interface brief
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 192.168.1.1/24 up up
GigabitEthernet0/0/1 unassigned down down
Physical 反映物理层(线插没插好),Protocol 反映协议层(链路协不协商得起来)。现在遇到 ping 不通,我的第一个动作永远是敲这条命令,比瞎猜快十倍。
改名字、配 IP:第一条真正的配置
现在把第一节的视图知识串起来用。给一台新路由器改名并配上 IP,完整流程是这样:
<Huawei> system-view
[Huawei] sysname R1
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ip address 192.168.1.1 24
[R1-GigabitEthernet0/0/0] display this
四行命令,穿越了三层视图,干了两件事:sysname R1 把设备改名为 R1(提示符立刻跟着变,反馈感十足);后面三行进入 G0/0/0 接口,给它配上 192.168.1.1/24。ip address 后面的 24 是掩码长度,等价于 255.255.255.0,懒人写法。最后那条 display this 是检查神器——显示"当前视图下生效的配置",敲完立刻能确认自己刚才的配置到底进没进去。
我当初踩过的坑:接口编号全凭感觉敲,路由器上敲
int e0/0/1死活进不去。后来才发现 AR 路由器的接口叫GigabitEthernet0/0/0起,S3700 交换机的才叫Ethernet0/0/1起,两种设备编号完全不同。解决办法很土但有效:先敲display ip interface brief,照着输出抄接口名;或者敲int g再按 Tab,让补全替你防手滑。另一个小坑:想给接口换 IP,直接敲新地址会报错——一个接口的主地址只能有一个,得先敲undo ip address删掉旧的,再配新的。
万能撤销:undo
华为命令行最贴心的设计是 undo:想让哪条配置消失,就在它前面加 undo。undo ip address 删掉接口地址,undo sysname 把名字改回默认,undo shutdown 把关掉的接口打开。
学会了 undo,我才敢放开手脚折腾——反正敲错了都能撤销,配置这件事从"小心翼翼怕弄坏"变成了"随便试,不行就 undo"。顺带一提,华为的物理接口默认是开启的,不像思科新接口默认关闭还要 no shutdown,这点写作业时少踩一个坑。但万一哪天手贱敲了 shutdown,记得 undo shutdown 能救回来。
保存配置:save 是新手头号血案
必须严肃讲这个。VRP 的配置跑在内存里,save 会把它写进存储,重启后依然生效;不 save 就重启设备,配置全部蒸发。保存操作要在用户视图敲:
<R1> save
The current configuration will be written to the device.
Are you sure to continue? (y/n)[n]: y
一路 y 加回车,看到 saved successfully 才算完事。注意 save 只认用户视图——在系统视图敲它同样报 Unrecognized command,这是"看提示符"本能的又一个用武之地。
我当初踩过的坑:第一次交实验作业,配完 ping 通、心满意足地关了 eNSP 睡觉。第二天重开工程准备截图,配置一片空白,作业当晚重做。从那以后我的流程末尾永远多一步:save,然后 Ctrl+Z 确认回到用户视图再关软件。同款悲剧还有 PC 版:双击 PC 改完 IP 忘了点右下角的"应用"按钮,配置根本没生效,我对着明明填好的地址 ping 不通,怀疑人生怀疑了半节课。
连通性验证:ping 和 tracert
配完不通等于白配,验证靠 ping 和 tracert:前者发几个探测包看对方回不回,后者显示包一路经过了哪些设备。eNSP 的 PC 双击后有个"命令行"页签,里面就能敲:
PC> ping 192.168.1.20
Ping 192.168.1.20: 32 data bytes, Press Ctrl_C to break
From 192.168.1.20: bytes=32 seq=1 ttl=128 time<1ms
看到连续几个 Reply 就是通了;全是 Request timeout 就是没通,回去查接口状态、IP 和掩码。路由器上也能 ping,用来分段排查问题出在哪一段。
附:新手速查表
| 命令 | 作用 | 备注 |
|---|---|---|
system-view | 进系统视图 | 简写 sys |
sysname 名字 | 改设备名 | 系统视图 |
interface 接口名 | 进接口视图 | 简写 int g0/0/0 |
ip address IP 24 | 配接口地址 | 24 等价 255.255.255.0 |
display current-configuration | 看全部配置 | 简写 dis cu |
display ip interface brief | 看接口状态 | 排障第一步 |
display this | 看当前视图配置 | 检查神器 |
undo 配置命令 | 撤销该配置 | 万能后悔药 |
save | 保存配置 | 只在用户视图 |
quit / return | 退一层 / 回用户视图 | return 可用 Ctrl+Z |
ping / tracert | 测连通 / 看路径 | PC 和设备都能敲 |
五、第一个实验:让两台 PC 互 ping
命令讲完了,来个完整的最小实验,全程十分钟。拓扑就三件东西:PC1、一台 S3700 交换机、PC2,摆成一条线。
第一步搭拓扑。从左侧设备库拖两台 PC(终端分类里)和一台 S3700 交换机到画布上;点工具栏的连线按钮,连线类型选"Copper(自动)",先点 PC1 的 Ethernet0/0/1,再点交换机的 Ethernet0/0/1,一根线就出来了;PC2 照样连到交换机的 Ethernet0/0/2。
第二步配 IP。双击 PC1,基础配置页签里 IPv4 选"静态",地址填 192.168.1.10,掩码 255.255.255.0,点应用;PC2 同理填 192.168.1.20。
第三步验证。双击 PC1 切到命令行页签,敲 ping 192.168.1.20,看到一串 Reply 就大功告成。
这个实验让我没反应过来的地方是:交换机从头到尾一行命令都没敲。网上解释说,华为交换机出厂时所有端口默认都在 VLAN 1 里,同网段的设备接上去天然互通。这个"什么都不用配就通"的拓扑,反而是理解后面 VLAN 划分为什么存在的最好起点:先体会默认,才懂得到底在改什么。

我当初踩过的坑:第一次自己做,我给两台 PC 配了 192.168.1.10 和 192.168.2.20,ping 不通还纳闷了半天。交换机是二层设备,只认 MAC 地址不带路由功能,不同网段的设备隔着它就像隔着一堵墙,必须靠路由器牵线。PC 必须配在同一网段——这个"显而易见"的常识,我是踩了坑才真正记住的。
顺手进阶半步:再拖一台 AR2220 路由器连上 PC1,按第四节的流程给路由器的 G0/0/0 配上 192.168.1.1/24,PC1 的网关填 192.168.1.1,然后从 PC1 去 ping 192.168.1.1。通了之后你就拥有了一个"PC—路由器"的最小骨架,以后学 DHCP、VLAN、静态路由,都是在这个骨架上往上长肉。这个不放了,哈哈哈哈。
写在最后
对了,安装阶段如果有坎——比如设备启动后命令行一直刷 #,或者提示设备注册失败——大概率是 VirtualBox 或 WinPcap 没装好、被防火墙或杀毒软件拦了。重装时退出杀毒软件、允许防火墙放行,基本都能解决,这类问题别硬扛,先搜华为云社区,前人踩得一塌糊涂。
这是我的eNSP系列第一篇,下一篇打算整理 VLAN 划分和跨交换机的配置,如果实验课不把我榨干的话。你第一次 ping 通是什么时候,踩过什么离谱的坑,大伙可以聊聊——坑这种东西,一个人踩是事故,一群人踩就是段子。嘿嘿。