简介:这份资源是2021年全国职业院校技能大赛《网络搭建及应用》赛项的完整备赛资料,面向职业院校网络竞赛选手、指导教师以及备考网络搭建与安全部署方向的进阶学习者,帮助解决赛题理解不透、配置步骤难复现、答案缺少对照等问题。压缩包共收录60个文件,约225.42MB,以38个txt配置与运行结果说明、11个docx竞赛报告单与分解文档、8个Python脚本、2个pdf网络环境说明及1个mp4操作录屏为主,覆盖脚本型与文本型报告单、各设备参考答案及技能要求拆解。已有4160人学习下载,读者可据此还原竞赛环境,对照防火墙、路由器、交换机与无线控制器等设备的脚本与运行结果,结合录屏复盘关键配置流程,并借助报告单模板与要求分解梳理得分要点,适合系统备赛与查漏补缺。
1. 从一份 2021 年网络搭建赛项资源包说起:它到底能帮你解决什么
如果你正在准备职业院校技能大赛的网络搭建与应用赛项,或者带学生打这个比赛,大概率会遇到一个很现实的问题:官方给的只有赛题和评分标准,具体每一步怎么配、为什么这么配、配错了怎么排查,全靠自己啃。这份 2021 年全国职业院校技能大赛《网络搭建及应用》视频讲解及答案的资源包,恰好补上了这块空白。它不是一份简单的文档合集,而是包含了脚本型报告单、文本型报告单、操作参考答案、参考录屏讲解四个层次的完整复盘材料。脚本型报告单里有 FW-1.py、SW-2.py、RT-1.py 等针对不同设备的 Python 脚本,文本型报告单是 docx 格式的竞赛报告单,操作参考答案则给出了每台设备的运行输出和配置文档。换句话说,它把“赛题要求什么”“脚本怎么自动生成报告”“参考答案长什么样”“录屏里怎么一步步操作”串成了一条线。适合谁?备赛的学生、带赛的指导老师、以及想通过赛题反推企业级网络配置逻辑的从业者。下面我从资源结构、脚本用法、避坑点、进阶技巧几个层面,把这份包拆开讲清楚。
2. 资源包结构拆解:脚本型报告单与文本型报告单怎么配合用
2.1 脚本型报告单的文件命名逻辑与设备映射
拿到压缩包解压后,第一眼看到的是 FW-1.py、FW-2.py、SW-1.py、SW-2.py、SW-3.py、RT-1.py、RT-2.py、AC.py 这八个脚本文件。命名规则很直白:FW 代表防火墙,SW 代表交换机,RT 代表路由器,AC 代表无线控制器,后面的数字是设备编号。这种命名方式对应的是赛题里典型的拓扑结构——两台防火墙做冗余、三台交换机做接入汇聚核心、两台路由器做外联、一台 AC 管无线。每个脚本的作用是连接到对应设备,执行一系列 show 命令或 display 命令,把输出结果保存成 txt 文件。比如 FW-1.py 跑完之后会生成 FW-1-run.txt,SW-2.py 跑完生成 SW-2-run.txt。这些 run.txt 文件就是“脚本导出的答案”,也是你核对配置是否正确的第一手材料。
为什么用脚本而不是手动复制粘贴?因为比赛时间有限,手动登录每台设备、逐条敲 show 命令、再复制到报告单里,至少消耗 15 到 20 分钟,而且容易漏掉关键信息。脚本可以并行执行,或者按顺序自动跑完,把时间留给排错和验证。我一般会建议学生先把脚本跑通,再回头细看每台设备的输出,这样效率最高。
2.2 文本型报告单与脚本输出的对应关系
文本型报告单有两个 docx 文件:一个是《网络搭建及安全部署竞赛报告单》,另一个是《服务器竞赛报告单》。这两个文档是比赛时要求提交的正式报告模板,里面有空白的表格和填写项。脚本导出的 run.txt 文件,内容就是用来填这些表格的。比如 FW-1-run.txt 里会有防火墙的接口 IP、安全策略、NAT 配置、路由表等信息,你把这些内容摘出来填到报告单的对应位置就行。
操作参考答案文件夹里还有一套 docx 文件,FW-1.docx、FW-2.docx、SW-1.docx、SW-2.docx、SW-3.docx、RT-1.docx、RT-2.docx、AC.docx,这些是每台设备的完整配置文档,相当于“标准答案”。你可以拿自己跑出来的 run.txt 和这些 docx 做对比,快速定位哪条命令敲错了、哪个参数漏了。这种“脚本导出 + 文档对照”的方式,比单纯看录屏快得多,因为录屏是线性的,而文档可以搜索、可以 diff。
2.3 参考录屏与《技能要求》内容分解的定位
参考录屏讲解是一个 mp4 文件,2021操作录屏及脚本更新.mp4。这个视频的价值在于展示操作顺序和界面交互,比如怎么进入设备的 console 口、怎么在 eNSP 或真实设备上敲命令、怎么处理弹窗报错。但视频是线性的,不适合快速检索。我的习惯是:先看《技能要求》内容分解.docx,了解赛题的知识点分布;然后跑脚本、对答案;最后遇到卡住的地方,再去视频里找对应的时间段看操作演示。这样比从头到尾看视频节省大量时间。
《技能要求》内容分解.docx 和主要要求(更新).pdf 这两个文件,相当于赛题的考纲解析。它们把网络搭建、安全部署、服务器配置、无线管理这几个模块的得分点拆开了。你对照这两个文件,可以判断自己的复习是否覆盖了所有考点。比如安全部署部分可能涉及防火墙的 NAT、ACL、IPSec,服务器部分可能涉及 Windows Server 的 AD、DNS、DHCP、IIS。这些在脚本和参考答案里都有对应体现。
3. 脚本运行环境与实操步骤:从 Python 依赖到批量导出
3.1 Python 环境准备与依赖库安装
这些 .py 脚本大概率是基于 paramiko 或 netmiko 写的 SSH 连接脚本,也可能是基于 telnetlib 的。具体用哪个库,你打开脚本看 import 部分就知道。常见做法是先用 pip 装好依赖,再改脚本里的设备 IP、用户名、密码。我一般会建议在 Windows 上装 Python 3.8 或 3.9,兼容性比较稳,不会因为版本太新导致某些库报错。
# 先看脚本用了什么库,再决定装什么 pip install paramiko netmiko telnetlib3 # 如果脚本里有 import requests 或 openpyxl,也一并装上 pip install requests openpyxl这段命令的意思是:先安装网络设备连接常用的三个库。paramiko 是 SSH 的底层库,netmiko 是对 paramiko 的封装,更适合网络设备。telnetlib3 是 telnet 的异步版本。如果你不确定脚本用哪个,可以把这三个都装上,不会冲突。装完之后,用 python -c "import paramiko" 测试一下是否成功。
3.2 修改脚本中的设备连接参数
打开 FW-1.py,你会看到类似 hostname、username、password、device_type 这样的变量。这些就是需要你根据实际环境改的地方。比如:
# FW-1.py 里常见的连接参数段 hostname = '192.168.1.1' # 防火墙的管理 IP username = 'admin' # 登录用户名 password = 'Admin@123' # 登录密码 device_type = 'huawei' # 设备类型,华为用 huawei,思科用 cisco逻辑说明:hostname 填设备的带外管理地址或业务管理地址,username 和 password 填你实际配置的凭据。device_type 决定了 netmiko 用哪套命令集,华为设备用 huawei,思科用 cisco,华三用 hp_comware。如果填错,脚本会连上但敲命令报错。参数怎么改:如果你在 eNSP 里做实验,hostname 可能是 127.0.0.1 加端口映射,或者直接是 eNSP 里设备的 IP。如果在真实设备上,就填设备的管理 IP。改完一个脚本后,先跑一遍看能不能生成 run.txt,成功了再批量改其他脚本。
3.3 批量执行脚本与输出文件校验
八个脚本一个个跑太慢,可以写一个批处理或 shell 脚本一次性执行。Windows 下用 bat,Linux 下用 sh。
# run_all.sh:批量执行所有 py 脚本 for script in FW-1.py FW-2.py SW-1.py SW-2.py SW-3.py RT-1.py RT-2.py AC.py do echo "正在执行 $script ..." python $script if [ $? -eq 0 ]; then echo "$script 执行成功" else echo "$script 执行失败,请检查连接参数" fi done逻辑说明:for 循环遍历所有脚本文件名,依次执行。$? 是上一条命令的退出码,0 表示成功,非 0 表示失败。如果某个脚本失败,大概率是 IP 不通、密码错、或者设备类型填错。执行成功后,检查生成的 run.txt 文件数量是否和脚本数量一致。如果少了,说明某个脚本没跑成功。参数怎么改:如果你只想跑其中几个,把文件名列表改一下就行。如果脚本执行时间较长,可以在 python 前面加 timeout 命令限制单次执行时间。
3.4 用 diff 对比 run.txt 与参考答案 docx
run.txt 是纯文本,参考答案是 docx,不能直接 diff。常见做法是先把 docx 里的配置文本复制出来,存成 txt,再用 diff 或 Beyond Compare 对比。或者用 python-docx 库读取 docx 内容,转成文本后对比。
# docx2txt.py:把参考答案 docx 转成 txt,方便对比 from docx import Document def docx_to_txt(docx_path, txt_path): doc = Document(docx_path) with open(txt_path, 'w', encoding='utf-8') as f: for para in doc.paragraphs: f.write(para.text + '\n') for table in doc.tables: for row in table.rows: for cell in row.cells: f.write(cell.text + '\n') docx_to_txt('FW-1.docx', 'FW-1-ref.txt')逻辑说明:Document 读取 docx,paragraphs 是段落,tables 是表格。把段落和表格内容都写到 txt 里,这样就能和 run.txt 做文本对比了。参数怎么改:把 FW-1.docx 换成其他文件名,就能批量转换。注意编码用 utf-8,避免中文乱码。对比的时候重点关注接口 IP、路由条目、ACL 规则、NAT 映射这几类信息,这些是赛题的核心得分点。
4. 避坑与常见问题排查:脚本跑不通、答案对不上怎么办
4.1 脚本连接超时或拒绝连接
现象:运行 python FW-1.py 后,报错 timeout 或 connection refused。原因:设备管理 IP 不通,或者 SSH/Telnet 服务没开。解决:先在命令行 ping 一下设备 IP,确认网络可达。如果不通,检查 eNSP 的云设备映射或真实设备的物理连接。如果 ping 通但连不上,登录设备确认 ssh server enable 或 telnet server enable 是否配置。另外,有些设备默认只允许特定源 IP 登录,检查 ACL 是否限制了管理访问。
4.2 脚本执行后 run.txt 内容为空
现象:脚本显示执行成功,但生成的 run.txt 是空文件或只有几行。原因:脚本里的 show 命令或 display 命令在当前设备视图下不生效。比如在用户视图下敲 display current-configuration 可能没输出,需要先进系统视图。解决:打开脚本,看它发送命令前有没有先发送 system-view 或 screen-length 0 temporary。常见做法是在脚本里加一段:先发送 screen-length 0 temporary 关闭分屏,再发送 display current-configuration。如果脚本没写,手动补上。
4.3 参考答案 docx 与 run.txt 差异过大
现象:对比后发现大量配置不一致,比如接口 IP 不同、路由协议不同。原因:你的实验环境和赛题原始环境不一致,比如 VLAN 划分不同、IP 地址段不同。解决:先确认你的拓扑和赛题拓扑是否一致。如果拓扑一致但 IP 段不同,那是正常的,因为赛题可能允许自定义 IP。重点对比配置逻辑,而不是具体数值。比如 OSPF 的 area 号、ACL 的规则顺序、NAT 的地址池名称,这些逻辑层面的东西必须一致。
4.4 录屏视频无法播放或卡顿
现象:mp4 文件打开后黑屏、卡顿、或者没有声音。原因:编码格式不兼容,或者文件下载不完整。解决:用 VLC 或 PotPlayer 播放,这两个播放器兼容性好。如果还是不行,检查文件大小是否和压缩包里标注的一致。如果文件损坏,重新解压一次。注意:录屏文件通常较大,解压时确保磁盘空间充足。
4.5 报告单填写格式不符合要求
现象:填好的报告单提交后被判格式错误。原因:赛题对报告单的字体、字号、表格线、页码有明确要求。解决:打开《使用前说明.txt》,里面通常有格式要求。如果没有,参考文本型报告单的原始模板,不要改动模板的样式。填写时只填内容,不要调整表格结构。常见做法是先在 txt 里写好内容,再复制到 docx 的对应单元格,避免直接敲字导致格式错乱。
5. 进阶用法:把赛题脚本改造成日常巡检工具
这套脚本的价值不止于备赛。你完全可以把 FW-1.py、SW-1.py 这些脚本改造成日常网络巡检工具。比如把 show 命令换成 display interface brief、display cpu-usage、display memory-usage,然后加一个定时任务,每天自动收集设备状态,输出到带日期的 txt 文件。这样你就有了一套轻量级的巡检系统,不需要额外买网管软件。
具体怎么做?以 SW-1.py 为例,把原来的命令列表改成巡检命令列表:
# SW-1-inspect.py:交换机日常巡检脚本 import paramiko import time from datetime import datetime hostname = '192.168.1.2' username = 'admin' password = 'Admin@123' commands = [ 'screen-length 0 temporary', 'display interface brief', 'display cpu-usage', 'display memory-usage', 'display logbuffer | include ERROR', 'display mac-address count' ] client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(hostname, username=username, password=password, timeout=10) shell = client.invoke_shell() time.sleep(1) shell.recv(65535) today = datetime.now().strftime('%Y%m%d') with open(f'SW-1-inspect-{today}.txt', 'w', encoding='utf-8') as f: for cmd in commands: shell.send(cmd + '\n') time.sleep(2) output = shell.recv(65535).decode('utf-8', errors='ignore') f.write(f'===== {cmd} =====\n') f.write(output + '\n') client.close()逻辑说明:paramiko 建立 SSH 连接,invoke_shell 打开交互式会话。commands 列表里是巡检命令,screen-length 0 temporary 关闭分屏,避免输出被截断。每条命令发送后等 2 秒,让设备有时间返回结果。输出文件按日期命名,方便追溯。参数怎么改:hostname、username、password 改成你实际设备的。commands 列表按需增减,比如加 display power、display fan 检查硬件状态。timeout 设 10 秒,如果设备响应慢可以调大。
这个改造思路的关键在于:赛题脚本已经帮你解决了连接、认证、命令发送、输出保存这些通用问题,你只需要替换命令列表和输出格式。我一般会把这个巡检脚本放在跳板机上,用 crontab 每天早 8 点跑一次,输出文件自动归档。跑了半年多,发现过两次内存泄漏和一次端口 err-down,都是靠巡检日志提前定位的。
从那以后我每次拿到类似的赛题脚本包,都会先跑通原始脚本,再改一版巡检版,最后把两者都归档。这样既备了赛,也攒了一套能用的工具。希望帮到你。
本文还有配套的精品资源,点击获取