资讯动态

H3C交换机配置文件导入实战:备份、传输与恢复全流程

发布时间:2026/9/18 1:18:41 来源:尧图企业网站定制
前阵子帮一家客户恢复 H3C S5130 的配置设备被误执行了 reset 操作重启后只剩下默认配置。手头没有完整备份唯一能用的就是三个月前导出的一份 startup.cfg。最后就是靠这份配置文件导入把设备从“裸奔”状态恢复到了原来的业务状态。整个过程看起来就是“传文件 改启动文件 重启”这三步但真做起来里面值得注意的细节太多了。这篇东西主要写给两类人一类是已经在用 H3C 交换机、但还没系统搞过配置文件导入的运维另一类是准备批量给一批新交换机灌配置的网络工程师。核心无非三件事配置文件格式怎么搞、怎么传到设备上、怎么让它在开机时自动生效。下面我把每一步拆开讲透最后附上我踩过的坑和排查思路。1. 先搞清楚“导入配置文件”到底在解决什么问题1.1 需要导入配置文件的三种典型场景第一种是设备换新。旧设备用了五六年要退役新采购的同型号或同平台交换机不可能一台台手工敲命令直接把旧配置导出来灌进新设备是最快的。第二种是配置丢失恢复。就像我开头说的那个情况设备被误清空、误恢复出厂、或者 flash 里的启动配置文件损坏只要有一份以前的配置备份就能靠导入拉回来。第三种是批量交付。项目上新买几十台接入交换机配置模板高度一致无非是 IP、VLAN、接口描述略有差异这时候手工逐台敲不光效率低还容易敲错。另外还有一种场景你在测试环境里调好了一套配置想复制到生产环境的多台设备。这种也属于配置文件导入的范畴本质上是把“已经验证过的配置状态”迁移到另一台设备上。所以配置文件导入不是单指某一个命令而是一套“备份—传输—生效—验证”的完整操作链。1.2 运行配置、保存配置、启动配置文件的关系很多新手分不清这几个概念先在概念上对齐一下。交换机开机时BootWare 会从 flash 里读取一个启动配置文件也就是通常说的 startup.cfg把它加载成当前运行配置也就是 running-config。运行配置是内存里的东西设备重启后如果不保存就全没了。保存配置是存到 flash 里的文件掉电不丢。生活里好理解的方式运行配置像电脑内存里打开的文档启动配置文件像硬盘上保存的文档。你改了内存文档没按保存关电脑再打开还是旧内容。对应到交换机上就是改了配置但不执行 save重启后配置回到以前的状态。配置文件导入要做的其实就是把一份“硬盘文档”放到指定位置并告诉系统“下次开机就按这个文档来”甚至直接替换掉当前运行配置。1.3 Comware 版本不同别乱来H3C 设备目前常见两套系统老一些的 Comware 5新一些的 Comware 7。配置文件本身都是文本但命令体系有差异。比如部分接口命令、AAA 配置、文件系统操作命令在 Comware 5 和 Comware 7 上不完全一样。这意味着从一台 S5120Comware 5上导出的配置直接灌进 S5130Comware 7很大概率会出现“部分命令不识别”或者“某些配置没生效”的问题。最稳的做法是找同型号、同 Comware 版本、甚至同软件版本设备的配置文件。版本差太远的时候宁可花点时间手工改配置也不要硬灌。2. 动手前的准备文件、传输方式与模拟环境2.1 配置文件就是一段普通文本但格式有讲究H3C 的配置文件本质上是文本文件。默认启动文件名一般是 startup.cfg里面是一行一行的命令。举个例子一段最简单的配置长这样# vlan 10 # interface Vlan-interface10 ip address 192.168.10.254 255.255.255.0 # acl basic 2000 rule 0 permit source 192.168.10.0 0.0.0.255 #看起来很简单但注意这几个细节文件编码建议用 ASCII 或 UTF-8 无 BOM。用 Windows 记事本另存为 UTF-8 时容易在文件头写入 BOM也就是三个不可见字节。H3C 解析配置时第一行就可能带上乱码然后报错。换行符建议用 LF也就是 Unix 风格换行。Windows 记事本默认是 CRLF也就是回车加换行。有些 H3C 版本对 CRLF 兼容但有些老版本会出问题。文件名不要太怪尽量用英文字母、数字、下划线不要带空格和中文。很多 TFTP 服务端对中文文件名支持不好交换机端识别也容易出岔子。我自己的习惯是拿到一份配置后先用 Notepad 或 VS Code 打开右下角看一下编码和换行符确认是“UTF-8 无 BOM”和“LF”。如果是别人发的文件先转换再传。2.2 传输方式横向对比TFTP 是我的首选配置文件传到交换机常见方式有 TFTP、FTP、USB、Console 粘贴等。我日常用得最多的是 TFTP原因是 H3C 几乎所有设备都内置了 TFTP 客户端部署简单不需要登录认证文件传起来也快。下面这几个方式可以做个对比传输方式适用场景优点缺点Console 手工粘贴配置非常小、应急恢复不需要 PC 和交换机之间有 IP 通路逐段粘贴容易丢字符大配置不可行TFTP最常见、最通用轻量、设备支持好无认证PC 上要搭服务且必须同网段FTP文件较多或想用账号密码有认证能传目录部分设备型号的 FTP 客户端配置略麻烦USB现场没有网络环境直接插 U 盘拷贝最省事很多中低端 H3C 不支持或需要特定文件系统SCP/SFTP安全要求高的内网加密传输很多交换机的 SSH 实现仅支持 SCP配置要看型号如果你只是给一台交换机导配置文件TFTP 是性价比最高的方案。如果是很多台设备批量操作FTP 有账号认证稍微安全一点点但控制台命令里会有账号密码明文也要小心。不管用哪种都建议在内网操作不要把 TFTP 服务暴露到公网。2.3 Windows 上快速搭一个 TFTP 服务器TFTP 服务器在 Windows 上我一般用 Tftpd64一个小工具绿色版解压就能用。步骤不复杂下载 Tftpd64以管理员身份运行。在 Server interfaces 处选择 PC 上连接交换机的网卡 IP比如 192.168.1.100。把 Current Directory 设置成一个专门放配置文件的目录比如 C:\tftp。把要导入的 startup.cfg 放到 C:\tftp 里。如果 Windows 防火墙弹出允许访问的提示选允许如果没弹需要手动加一条入站规则放行 UDP 69 端口。在交换机上测试连通性ping 192.168.1.100能通再继续。这里有个很容易翻车的点PC 的 IP 和交换机管理 IP 必须在同一个 VLAN 里。比如交换机管理地址是 192.168.1.1/24那 PC 就设成 192.168.1.100/24。如果交换机管理地址划分在 VLAN 10而 PC 接在 VLAN 1那你得确保 VLAN 间能路由或者直接把 PC 插到对应 VLAN 的接口上。用完后记得把 TFTP 服务关掉。TFTP 没有认证机制放在公网等于裸奔内网用完就关也是好习惯。2.4 先拿 HCL 模拟器练手如果你想在真实设备上操作但心里没底强烈建议先用 H3C Cloud Lab也就是 HCL 模拟器练一遍。模拟器里导入配置的流程和真实设备几乎一样而且环境毁了也不心疼。不过提一个很多人会卡的地方HCL 装好了点启动设备却启动不了。这通常是模拟器依赖的 VirtualBox 和本机 Hyper-V 冲突导致的。如果你电脑开了 Hyper-V 或 Windows 沙盒HCL 的虚拟设备可能起不来。网上常见的解决办法是关掉 Hyper-V或者换成与当前 HCL 版本兼容的 VirtualBox 版本。这个跟交换机配置文件导入本身没关系但环境起不来练习就无从谈起。先把模拟器跑起来再练命令。3. 完整实操把配置文件导入 H3C 交换机并让它生效3.1 第一步先把当前配置备份出来不管是导新配置还是恢复旧配置我强烈建议先给当前设备做一次备份。万一导入失败你至少能回到现在的状态。操作很简单先在交换机上执行 save把当前运行配置保存到 flash 的 startup.cfg。然后把它传到 PC 上的 TFTP 服务器H3C save force H3C dir H3C tftp 192.168.1.100 put startup.cfg执行完到 PC 的 C:\tftp 目录下确认有没有生成 startup.cfg再看一眼文件大小。如果你的 flash 里启动配置文件名不是默认的 startup.cfg可以用display startup先看一下当前启动文件叫什么再put对应的文件名。这一步的重点是先留下后路。我见过不少人在导入新配置之前完全没备份结果新配置有问题旧的又没了只能一根根接口手工敲回来那叫一个痛苦。3.2 第二步用 TFTP 把配置文件传到交换机现在假设我们要把 PC 上准备好的 startup.cfg 传到交换机 flash 根目录。在交换机用户视图下执行H3C tftp 192.168.1.100 get startup.cfg H3C dirtftp 的语法是tftp 服务器地址 get 文件名默认下载到当前目录。H3C 默认当前目录一般就是 flash 根目录但为了保险dir看一下文件在不在。同时注意文件大小和 PC 上的原始文件对比大小不一致说明传输可能有问题。这里有一个细节如果你要导入的文件名和 flash 里已有的 startup.cfg 重名最好先把旧的改名或删掉否则下载时会提示文件已存在或者直接覆盖。覆盖本身没问题但万一传了一半断掉flash 里的文件就损坏了。所以我的习惯是先用rename startup.cfg startup.bak或delete /unreserved startup.cfg清理现场再下载新文件。所谓的/unreserved参数是永久删除。如果不加这个参数文件会进回收站flash 空间可能被占着大文件的传输还是会失败。3.3 第三步设置下次启动加载这个文件很多人以为把配置文件传到 flash 里重启就自动生效了。这是最容易踩的坑。交换机启动时并不会自动加载 flash 里的任意 cfg 文件你必须手动指定“下次启动用哪个配置文件”。命令是H3C startup saved-configuration flash:/startup.cfg H3C display startup执行完display startup能看到类似这样的信息Current startup saved-configuration file: flash:/startup.cfg Next main startup saved-configuration file: flash:/startup.cfg看到 Next main 指向你想要的文件再执行reboot。重启过程中如果配置文件有语法问题交换机会提示加载失败虽然一般不会变砖但会停在空配置状态。那是不是一定非要重启不可严格来说有些场景可以用configuration replace file命令在系统视图下替换当前运行配置不需要重启。部分 Comware 7 设备支持这个命令在系统视图下敲configuration replace ?就能看到提示。它适合在不想中断业务时临时加载配置但副作用是可能直接把当前会话踢掉而且如果配置里有 IP 地址变更你可能会瞬间失联。我的建议是不到万不得已不要在生产环境用 replace老老实实走“设置启动文件 重启”的流程至少预期可控。3.4 不重启就加载配置的替代命令这里把configuration replace多说几句。它的作用是拿一个配置文件去替换当前运行配置类似把“硬盘上的文档”直接读进内存不关机。命令一般长这样H3C system-view [H3C] configuration replace file flash:/startup.cfg执行后设备会加载文件中的配置。但注意这个命令不是所有型号都有型号不同差异还挺大。如果你敲完提示“Unrecognized command”说明当前设备不支持别硬试。即使支持我也只建议在测试环境用。因为 replace 后你当前所在的终端很可能因为 IP 变化而断掉如果没通过 Console 操作你可能连不上设备还得跑机房。如果 replace 成功执行完记得再save一次。否则这次操作只在内存里下次重启还是旧配置。4. 常见问题与排错实录我踩过的坑都在这里4.1 TFTP 传不上去先查网络再查服务TFTP 传文件失败是最常见的问题现象是执行tftp get后卡一阵子然后报 Timeout 或 Cant connect to remote server。我一般按这个顺序排先测三层连通性交换机上ping 192.168.1.100不通就查 IP 地址、VLAN、物理接口状态。再查 TFTP 服务端绑定地址Tftpd64 的 Server interfaces 是不是选了和交换机同网段的网卡PC 如果有多个网卡选错接口是常事。然后查防火墙Windows 防火墙没放行 UDP 69TFTP 就会超时。这一步卡住的人最多。最后查目录权限Tftpd64 的 Current Directory 目录是不是有写入权限。如果是系统保护目录服务端可能接收不到文件。如果是put上传失败也就是从交换机往 PC 传文件失败除了上面几点还要看 TFTP 服务端设置里是否勾选了允许写入。Tftpd64 默认允许但有些安全配置会禁掉写操作。4.2 设置启动文件失败或启动后配置没生效startup saved-configuration报错通常是下面几个原因文件名或路径写错。比如文件在 flash 根目录写成 flash:/conf/startup.cfg那肯定找不到。先用dir确认文件实际路径。文件本身不是有效的配置文件。有人把 Word 另存为 .cfg里面全是富文本内容那当然识别不了。配置文件必须是纯文本。文件大小是 0 或者明显不对。TFTP 传了一部分就中断文件损坏设置启动文件时也可能报错。设备 Comware 版本和配置命令不匹配。配置文件里一旦有当前设备根本不认识的命令部分设备在加载时就会跳过甚至中断。启动后配置没生效的情况常见原因是没设置 Next main或者设置了但执行的是 Save不是 Startup概念搞混。记住save是把当前运行配置写到 flashstartup saved-configuration是告诉 BootWare 下次开机加载哪个文件。两个操作不能互相替代。4.3 重启后设备失联了Console 救急步骤如果导入的配置里管理 VLAN、管理 IP、SSH 或 ACL 设置有问题重启后很可能出现“网络连不上”的情况。这时候不要慌Console 线就是救命的。操作流程如下用 Console 线连接设备的 Console 口和 PC 串口。打开 SecureCRT、MobaXterm 或 Xshell建立串口会话。H3C 默认参数通常是波特率 9600、数据位 8、停止位 1、无校验、无流控。给交换机重新上电并在启动过程中紧盯屏幕。出现Press CtrlB to enter BootWare Main Menu提示时马上按 CtrlB。进入 BootWare 菜单后不同版本界面不完全一样找类似“跳过当前配置”“Skip current configuration file”的选项。选择跳过配置后继续正常启动。此时设备会以空配置或默认配置启动Console 口一般能直接登录。登录后重新设置管理地址再从 TFTP 导入正确的配置。这里要特别说明跳过当前配置只是绕过错误的配置文件并不是清理配置。如果你是因为密码忘了导致进不去系统那是另一套密码恢复流程不在本文讨论范围内。但如果是因为配置错误导致失联跳过配置这个方法非常可靠。4.4 文本编码、换行符和文件名这些细碎坑这部分不说可能一辈子也发现不了。我最开始用 Windows 记事本改配置保存后传上去交换机提示文件不存在或配置解析失败。后来才发现是 UTF-8 BOM 惹的祸。文件头多了三个字节H3C 读第一行时把 BOM 当成命令的一部分整个解析就乱了。解决办法很简单用 Notepad 或 VS Code 编辑配置文件状态栏确认编码是 UTF-8 无 BOM如果是有 BOM菜单里选择“转为 UTF-8 无 BOM”。换行符是 LF也就是 Unix (LF)如果不是在“编辑”菜单里做“行尾转换”到 Unix。还有一个我常犯的错文件名太随意。比如把配置文件名写成henan_quyu_v2(1).cfg带括号和中文。TFTP 服务端可能能显示但交换机端不一定认。所以我在做批量导配置时文件名一律统一成小写英文字母加数字比如bj_office_v10.cfg。4.5 常见错误速查表现象可能原因处理方式tftp get 超时网不通、防火墙拦截、服务端选错网卡先 ping再查 TFTP 服务端网卡和防火墙规则文件下载成功但大小不对TFTP 服务端目录权限问题、传输中断重新下载并对比文件大小startup saved-configuration 失败文件名错误、路径错误、文件损坏用 dir 确认路径和文件大小必要时重新传输重启后配置没生效没有设置 Next main 启动文件执行 startup saved-configuration 并确认 display startup重启后设备失联管理 IP、VLAN、ACL 配置错误Console BootWare 跳过当前配置重新导入配置加载时报错Comware 版本不匹配、命令不识别检查配置文件来源或手工调整命令格式文件传到一半突然失败flash 空间不足dir 查看剩余空间delete 旧文件释放空间5. 批量部署与配置档案管理的一点经验5.1 多台交换机统一导入的思路如果你要一次给 20 台交换机导配置逐台手工执行会很累。我通常会这么做先做好一台标准设备的配置导出为模板文件。把每台设备的个性化参数比如设备名、管理 IP、接口描述通过脚本批量生成独立的 cfg 文件。用 TFTP 服务器统一存放这些配置文件文件名按设备名区分比如 sw001.cfg、sw002.cfg。每台新交换机接入后先用 Console 或默认管理地址设置临时管理 IP然后依次执行 tftp get、startup saved-configuration、reboot。批量部署时最忌讳的是图省事所有设备用同一个配置文件。不同设备的管理 IP、路由、VLAN 接口地址很可能不一样硬灌一份通用配置结果就是全网 IP 冲突相当酸爽。哪怕模板一样也必须在导入前用脚本或人工把差异化字段替换掉。5.2 配置文件也要做版本管理配置文件是设备状态的“基因”项目多了以后我习惯用 Git 或 SVN 管配置文件。文件名统一规则是“设备名_业务区域_日期_版本号.cfg”比如S5130_office_20250615_v1.cfg。每次变更配置之前先把当前配置导出一份存到仓库再改配置改完再导出一份新版本。这样做的好处是出了事能快速回滚。比如一次配置变更导致业务中断你不需要凭记忆猜之前是什么状态直接对比 Git 历史里相邻两个版本差异一目了然。配合 Prometheus 之类的监控工具还能看变更前后设备指标的变化但那是另一个话题了。5.3 我坚持的几个“土习惯”最后分享几个我自己的习惯不算高深但在关键时刻真能救命包里永远有一根 Console 线。网络设备配置文件导入这种事Console 线就是最后一道保险。没有它设备失联就只能祈祷还在原有网络里。任何大操作之前先save再display startup确认当前状态。导入配置文件之前先dir看文件大小导入后再dir对比一次大小完全一致才继续下一步。文件传上去后用more flash:/startup.cfg看内容开头确认不是乱码再设置启动文件。所有配置备份都用日期命名至少保留三个月。别问我为什么是三个月踩过坑的自然懂。配置文件导入这件事操作层面其实不难难的永远是那些“看起来没问题一重启就翻车”的细节。只要照着“先备份、再传输、再校验、再设置启动文件”这个顺序来大部分坑都能避开。希望这篇东西能帮你少走点弯路。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价