2026/10/25 3:20:07

华为交换机FTP配置:客户端/服务端、配置备份与镜像上传

华为交换机FTP配置:客户端/服务端、配置备份与镜像上传 半夜十一点某园区网的运维群里消息还在跳。核心交换机第二天凌晨要做版本升级割接清单上最后两项是备份当前配置和把新版本镜像传上去。结果翻遍跳板机才发现之前一直用的那个简易文件传输小工具上周清理磁盘时被顺手删了临时装又赶不上窗口期。这时候最省事的兜底方案就是把华为交换机 FTP 配置拉起来——让交换机自己当客户端去取文件、传文件或者干脆让交换机临时当个服务端从笔记本上直接怼镜像进去。这篇就把华为交换机FTP配置这件事从头到尾讲透FTP 在今天的网络运维里到底是什么位置、交换机当客户端和当服务端分别怎么配、每一步命令背后的意图是什么、哪里最容易翻车、翻车之后怎么三五分钟内定位。先说清楚适合谁看。刚接手网络设备、只知道 Telnet 进去敲两行 display 命令的新人看完能独立完成一次配置备份和镜像上传干了几年但一直用 TFTP、没正经配过 FTP 的老手能从里面的权限模型、主动被动模式、ACL 卡源这几块补齐盲区负责割接方案评审的人也能从安全加固那节拿到几条能直接写进方案里的限制条件。整篇不玩概念全部围绕我要传一个文件上去/下来这个动作展开。1. 把 FTP 放回它该在的位置1.1 为什么这个三十年前的老协议在交换机上一直没被淘汰很多人一提到 FTP 第一反应是太老了不安全早该淘汰。这话放在互联网业务侧没毛病但放到交换机运维这个具体场景里结论会打个折。原因很实在交换机上的文件系统极小要传的东西也就那么几类——配置文件vrpcfg.zip、系统软件包.cc、补丁文件.pat、有时还有 License 文件。这些文件动辄几十兆到几百兆传输频率低但是一旦需要就必须一次成功。在这种低频、大文件、强可靠的组合下FTP 的优势就出来了它比 TFTP 多了身份认证、多了目录操作、多了断点续传的可能传输过程有明确的状态码可以看它又比 SFTP/SCP 在设备侧的实现要求低老版本 VRP 上不一定有完整的 SSH 支持但 FTP 客户端基本是标配。更关键的一点是TFTP 在很多版本上对文件大小有限制传个几十兆的小补丁没问题传几百兆的系统软件包就容易中途失败而且失败之后你根本不知道是网络丢包还是服务端磁盘满了。FTP 至少会给你一句明确的返回码。所以我的实际做法是小文件、一次性、临时用TFTP 图快正式备份、系统升级、批量分发走 FTP 或者 SFTP。这也是为什么华为交换机FTP配置这个看起来老掉牙的话题在各类运维群里还天天有人问。1.2 交换机当客户端还是当服务端选型逻辑完全不同这是最容易搞混的一步。同样叫FTP 配置交换机作为客户端和作为服务端配置命令、权限模型、甚至故障表现都完全不一样。我见过不少人把两套命令混着敲敲完发现ftp server enable配了但ftp 10.x.x.x登不上去就是因为角色没分清。判断逻辑其实很简单文件在谁身上谁就是服务端。你要把交换机上的配置备份到一台服务器上那服务器是服务端交换机是客户端你要把笔记本上的新镜像推到交换机里那笔记本是服务端交换机还是客户端只有当交换机上存着别人要的文件比如多台设备要统一取同一个镜像才考虑让交换机当临时服务端。对比维度交换机作为 FTP 客户端交换机作为 FTP 服务端典型用途备份配置、下载系统软件包、取补丁临时做文件中转、给下游设备分发镜像服务端在哪外部服务器或运维 PC交换机自身核心使能命令无需使能直接ftp登录ftp server enable身份认证用外部服务端的账号用交换机本地 AAA 用户权限依赖依赖服务端目录权限依赖ftp-directory和用户级别风险面账号密码在链路上明文传输交换机的管理面直接暴露我的使用频率高几乎每次割接都用低只在不方便搭服务端时临时开从这张表能看出来客户端模式是日常主力服务端模式属于应急手段。下面两章分别展开但重心会放在客户端上因为那才是九成以上场景的真实需求。1.3 先把要传什么文件这件事定下来配置之前先想清楚目标文件这一步很多人跳过结果配完发现传错了东西。交换机上跟传输相关的文件通常就这几类vrpcfg.zip是当前配置的归档save之后才会有最新版本不save直接备份等于备份了个旧配置.cc结尾的是系统软件包升级时用.pat是补丁.cfg是文本格式的配置文件导出后可以直接看内容。这里有个细节值得单独提一句vrpcfg.zip是压缩过的你在服务器上打开看到的是一堆二进制如果你想在服务器上直接对比两次配置的差异得先导出文本格式用display current-configuration抓到本地或者用save configuration-file另存为.cfg。我个人的习惯是双份vrpcfg.zip留作回滚用文本配置留作人工比对用。这两份东西传完一次割接的保险才算上齐。2. 动手前的准备版本、地址、账号三件事2.1 版本差异先核对别拿新命令往老设备上敲VRP 版本跨度很大V200R003 和 V200R019 之间隔了不知道多少轮迭代同一个功能命令形态可能完全不一样。最典型的就是本地用户密码这条老版本用local-user xxx password simple 明文新版本推荐irreversible-cipher有些版本还强制要求密码复杂度。再比如源地址指定早年的写法是ftp client source-ip后来统一成ftp client source-interface敲错一个词设备直接报Unrecognized command。先做两件事display version看版本display current-configuration | include ftp看现网有没有已经配过的残留。第二件事特别重要我曾经在一台设备上排查了半小时为什么 FTP 登不上最后发现前任工程师配了个ftp server acl规则里只放行了一个早就下线的网段。现网残留的 ACL、源地址绑定、VTY 限制都是隐形地雷。功能点较老版本写法较新版本写法备注本地用户密码password simple 明文password irreversible-cipher 密文新版本对 simple 有告警客户端源地址ftp client source-ip x.x.x.xftp client source-interface Vlanif x以?补全结果为准FTP 服务端使能ftp server enableftp server enable基本没变服务端 ACL 限制ftp server acl 2000同左部分版本支持ftp server ipv6 acl文件删除delete进回收站delete /unreserved直接删回收站占空间注意清理提示不确定命令形态时直接在 system-view 下敲到一半按?设备会把这个版本支持的所有形态列出来比查文档快也比凭记忆敲靠谱。2.2 管理地址与连通性先把路打通再谈文件FTP 是应用层协议底下网络不通上面配出花来也没用。配置前先确认三件事交换机的管理地址一般是某个 Vlanif 接口地址能 ping 通服务端服务端的 21 端口没有被本机防火墙拦中间如果有安全设备策略是否放行。这三条里最容易翻车的是第二条Windows 上装个 FTP 服务端装完自己 telnet 本机 21 通但从交换机连过去就是不通八成是系统防火墙默认只对本地放行。华为交换机上验证连通性用ping -a 源地址 目的地址注意这个-a参数它让你指定从哪个地址发起。别小看这一步交换机上有多个三层接口的时候不加-a出去的可能是个业务地址服务端 ACL 只放行了管理网段于是就出现我明明配了管理地址却连不上的经典误会。这个坑我在第 6 章还会展开讲。2.3 账号与权限别拿管理员账号到处传文件服务端侧建一个专用 FTP 账号只给它一个目录的读写权限这是基本操作。原因有两个一是明文协议账号密码在链路上裸奔一旦被抓包,损失范围要可控二是出了事故好追溯看日志里这个账号传了什么东西一目了然。如果你在交换机上开服务端本地用户的级别直接决定它能干什么级别 15 基本等于全权限级别 1 只能看别图省事全给 15。注意交换机作为服务端时本地用户必须配ftp-directory不配的话登录能成功但一执行dir或put就报错这个错误信息往往很含糊容易让人误以为是权限问题去折腾 ACL。3. 交换机作为 FTP 客户端备份与取镜像的主力姿势3.1 最小可用配置源地址这一条千万别省先给结论只要设备上有多个三层接口ftp client source-interface就是必配项不是可选项。命令形态是这样HUAWEI system-view [HUAWEI] ftp client source-interface Vlanif 10这条命令的意思是以后所有从这台交换机主动发起的 FTP 连接源 IP 都固定用 Vlanif 10 的地址。为什么必须指定因为交换机转发报文时默认用出接口的地址做源管理流量从业务口出去的话源地址就是个业务网段地址服务端的 ACL 一看不认识直接拒掉。更隐蔽的情况是服务端不设 ACL 但做连接审计日志里记录的全是业务地址事后根本对不上是哪台设备备的份。配置完用display ftp client source之类的命令确认一下不同版本确认命令略有差异也可以在后续登录时看服务端日志里的源 IP。这一步花不了一分钟能省掉后面一小时的排查。3.2 一次完整的交互式传输实录配置好了就登录。交换机的 FTP 客户端是交互式的登进去之后是一个[ftp]提示符这个提示符跟system-view的[HUAWEI]长得像但完全是两套东西不要在[ftp]下面敲display它会告诉你命令不存在。HUAWEI save The current configuration will be written to the device. Are you sure to continue? [Y/N] y HUAWEI ftp 10.1.1.100 Trying 10.1.1.100 ... Press CTRLK to abort Connected to 10.1.1.100. 220 FTP Server ready. User(10.1.1.100:(none)):netadmin 331 Password required for netadmin. Enter password: 230 Logged in successfully. [ftp] binary [ftp] dir [ftp] put vrpcfg.zip [ftp] bye逐行拆一下。save必须在备份之前执行不然你传过去的是上次保存的配置这中间做的改动全丢回滚的时候等于把自己坑了。binary是切换到二进制模式对.zip和.cc这类文件必须要文本模式下有些服务端会做换行符转换传过去的镜像直接损坏刷进去设备起不来这是真的会出事故的。dir看一眼服务端目录确认路径和文件名没写错。put是上传get是下载方向别搞反。断点续传这块补一句交换机侧的 FTP 客户端对续传的支持有限put大文件中断了通常得从头再来。所以传几百兆的系统包之前先用dir flash:看一眼剩余空间够不够空间不够传到 90% 失败白等半小时。3.3 把备份做成可重复的动作单次备份靠手敲没问题但割接前前后后要备好几次这时候值得把流程固定下来。交换机侧的配置备份实际上就三步save、登录 FTP、put。文件名带上日期和设备名方便日后翻找。HUAWEI save HUAWEI dir flash: HUAWEI copy flash:/vrpcfg.zip flash:/backup/vrpcfg-20250612.zipcopy之前目录得存在不存在先mkdir flash:/backup。注意 flash 空间本来就紧张老设备上塞几个镜像就满了做本地副本之前先看剩余空间dir输出的最后一行会写剩余多少字节。至于自动化的定时备份交换机侧的scheduler在部分版本上能用配上command序列定时执行脚本但实话讲跨版本兼容性一般调试成本不低。我通常直接把这件事甩给外部在跳板机上跑个脚本用 Python 的 paramiko 走 SSH 连设备display current-configuration抓下来按日期存盘顺便还能做配置差异比对。这种方式跟设备版本解耦换什么型号都能跑。FTP 留给必须传文件的场景就好。3.4 客户端侧几个容易忽略的细节第一个是超时。登录 FTP 之后长时间不操作服务端会主动断连你再敲命令就报连接已关闭。传大文件的时候不会有这个问题因为数据通道一直活着。这个不算故障重新登录就行。第二个是文件覆盖。put vrpcfg.zip的时候如果服务端已经有同名文件有的服务端直接覆盖有的会拒绝报错码是 550 或 553看你用的服务端实现。我习惯在文件名里带时间戳彻底绕开这个问题。第三个是中文路径和空格。交换机侧的文件名一律用英文数字下划线路径里别带空格这些在 Windows 服务端上看着没事到了传输环节就是一堆转义问题。别问我怎么知道的。提示[ftp]模式下的pwd显示的是服务端的当前目录不是交换机本地的。想切服务端目录用cd 目录名想切交换机本地文件用完整路径put flash:/xxx.zip。4. 交换机作为 FTP 服务端临时文件中转站4.1 使能与本地用户两步都不能少这个模式用得少但在手头只有一台笔记本、不想装服务端软件的场景下特别好用。整套配置就四块开服务、建用户、指定目录、限来源。HUAWEI system-view [HUAWEI] ftp server enable [HUAWEI] aaa [HUAWEI-aaa] local-user netadmin password irreversible-cipher 你的密码 [HUAWEI-aaa] local-user netadmin service-type ftp [HUAWEI-aaa] local-user netadmin privilege level 15 [HUAWEI-aaa] local-user netadmin ftp-directory flash:/ [HUAWEI-aaa] quit这里每一行的意图值得说清楚。service-type ftp是关键不写的话这个账号根本不允许走 FTP 登录现象是密码对但一直提示认证失败很多人卡在这一步。privilege level 15决定这个账号能执行哪些操作级别低了能登录但传不了文件。ftp-directory flash:/指定登录后的默认根目录不配这个大概率报当前目录不存在。还有一个容易混淆的点FTP 登录的身份校验走的是 AAA 本地用户跟 VTY 的authentication-mode没有直接关系。也就是说你只配了 VTY 没配本地用户FTP 登不上去你配了本地用户但 VTY 一个都没配FTP 反而能登上去。这一点跟 Telnet/SSH 的逻辑不一样配置的时候别类比着记。4.2 目录与权限别把整个 flash 敞开ftp-directory flash:/意味着登录后能操作整个 flash包括系统软件包。这在临时中转场景下风险偏大万一客户端误操作删了.cc文件设备重启直接起不来。更稳妥的做法是建个专门目录HUAWEI mkdir flash:/ftp_tmp [HUAWEI-aaa] local-user netadmin ftp-directory flash:/ftp_tmp这样客户端登录后只能在这个目录里活动取文件得先copy进来传上去的文件也隔离存放用完delete /unreserved清干净。多花两分钟换来的是设备起不来这个极端风险被掐掉。4.3 从客户端侧验证别只看设备侧显示成功交换机侧敲完ftp server enable会立刻返回但这不代表服务真的通了。从 PC 上用命令行验证最直接ftp 10.1.1.2或者干脆用一个图形化 FTP 客户端连上去先ls看目录再传一个小文件试水。放一个小文件、传上去、ls确认大小一致这三个动作走完才说明整条链路是通的。直接上手传几百兆的镜像中途失败你还得排查是链路问题还是文件问题。传完记得核对文件大小dir输出的字节数跟本地文件对比一致才算成功。FTP 有个隐性毛病传输中断的时候客户端可能报了个错误但文件已经部分写入服务端不做校验的话你拿到的是个残缺文件刷进去才知道坏那就晚了。4.4 用完就关这是纪律不是建议交换机开 FTP 服务端本质上是把管理面暴露了一个明文入口密码在链路上裸奔抓包工具几十秒就能还原。这个服务只应该存在于维护窗口的那几十分钟里。[HUAWEI] undo ftp server enable [HUAWEI-aaa] undo local-user netadmin关掉服务、删掉临时账号两行命令的事。我在方案评审时会把这两条写成割接回退清单里的固定项谁配的谁负责关做完打勾。真出过事某次割接完忘了关两周后例行扫描扫出来一个开放 21 端口的设备追查下来是本部门自己留的口子场面相当难看。5. 安全加固把明文协议的风险压到最低5.1 用 ACL 卡住来源这是性价比最高的一条既然协议本身安全不了那就从网络层限制谁能连。交换机作为服务端时一条基本 ACL 就能把来源锁死到一个网段[HUAWEI] acl number 2000 [HUAWEI-acl-basic-2000] rule 5 permit source 10.1.1.0 0.0.0.255 [HUAWEI-acl-basic-2000] rule 10 deny [HUAWEI-acl-basic-2000] quit [HUAWEI] ftp server acl 2000注意rule 10 deny这条ACL 默认对未匹配的报文是拒绝的但显式写一条 deny 能让配置读起来意图明确也避免某些版本上默认动作被改过导致放行。这个习惯值得养成尤其在多人维护的环境里后来的人读配置一眼就知道边界在哪。如果是交换机作为客户端往外连卡的是服务端侧交换机这头能做的就是把ftp client source-interface固定在管理接口上让所有出向 FTP 流量都从管理口走业务口上不要出现 FTP 会话。5.2 VTY 与协议限定别让管理面四通八达user-interface vty那一套管的是 Telnet/SSH 登录虽然不直接影响 FTP 登录但管理面的整体收紧是配套的[HUAWEI] user-interface vty 0 4 [HUAWEI-ui-vty0-4] authentication-mode aaa [HUAWEI-ui-vty0-4] protocol inbound ssh [HUAWEI-ui-vty0-4] acl 2000 inboundprotocol inbound ssh把 Telnet 关掉acl 2000 inbound限定只有管理网段能连进来。这两条跟 FTP 的 ACL 是同一个 ACL 编号一次配好两处受用。管理面收敛这件事做一次管很久值得在设备开局时就写进模板。5.3 密码策略和账号生命周期交换机上的本地用户密码能用irreversible-cipher就用别用simple。一个是新版本会对simple报警告另一个是display current-configuration的时候simple的密码是明文展示的随手截图发群里就泄露了。账号要设有效期的话部分版本支持local-user xxx expire配置成维护窗口结束后自动失效。这个特性不是所有版本都有有就用没有就靠流程约束。我的做法是在割接脚本里把删账号和关服务写进最后的清理步骤机器记着比人记着靠谱。5.4 明文协议的先天短板以及什么时候该换条路FTP 的密码和数据都是明文这个问题靠配置解决不了只能靠网络隔离和窗口期控制来缓解。真有长期、高频的文件传输需求就该考虑替代方案了。方案设备侧要求安全性适用场景TFTP几乎全版本支持无认证内网小文件、一次性传输FTP全版本支持明文认证与传输临时备份、割接窗口内使用SFTP需 SSH 支持部分老版本不支持加密长期自动化备份、跨网段传输SCP同 SFTP加密镜像上传、脚本调用交换机侧开 SFTP 服务端的配置大概是这个形态[HUAWEI] rsa local-key-pair create [HUAWEI] sftp server enable [HUAWEI] stelnet server enable [HUAWEI] user-interface vty 0 4 [HUAWEI-ui-vty0-4] authentication-mode aaa [HUAWEI-ui-vty0-4] protocol inbound ssh生成密钥对那一步在某些版本上要几十秒屏幕上看着像卡住了别急着 CtrlC。SFTP 客户端侧用交换机主动连出去也一样sftp 10.1.1.100然后输账号密码之后的putget命令跟 FTP 基本一致唯一区别是不用敲binary加密通道本身不做文本转换。6. 排查实录与速查表6.1 从现象到原因一张表顶半小时FTP 的报错信息普遍不友好一个连接失败背后可能是六种原因。我把这些年遇到的情况整理成一张表下次出问题先对着现象找一行能省掉大量试错。现象最可能原因验证方法处理动作登录时一直停在 Trying路由不通或 21 端口被封ping -a 源地址 目的地址查路由、查中间设备策略登录提示 530账号密码错或用户没配 ftp 服务类型服务端看日志补service-type ftp登录成功但dir报错未配ftp-directory看 AAA 配置补目录配置put卡住不动主动模式下数据连接被拦换同网段测试放行数据端口或改被动模式传输中途断开文件超限或磁盘满看服务端剩余空间清理空间、分批传输传完文件损坏未切二进制模式比对文件大小重传并先执行binary服务端提示 550目录无写权限或文件已存在服务端看权限换目录或改文件名设备侧显示成功但文件不全部分写入未校验比对字节数删除重传表里put卡住不动这一条最值得展开。FTP 有两条连接控制连接走 21 端口数据连接走另一个临时端口。主动模式下是服务端主动往客户端连如果客户端在 NAT 后面或者中间有防火墙这个反向连接就建不起来现象是登录正常、ls正常一到真正传数据就卡死。判断方法很简单把交换机和服务器放到同一个网段直连试试如果通了就是中间设备的问题。解决思路要么是放行数据端口范围要么改被动模式但交换机侧的 FTP 客户端对被动模式的支持看版本passive命令敲下去没反应就说明这个版本不支持那就只能走网络侧调整。6.2 几个印象深刻的坑坑一源地址选错排查了半天 ACL。某次在核心交换机上配备份服务端 ACL 只放行管理网段交换机上ping -a通但 FTP 死活登不上。最后display ftp client source一看压根没配源接口报文从业务口出去源地址是个业务地址。加上ftp client source-interface Vlanif 10之后立刻通。这件事之后我形成了习惯只要设备超过两个三层接口配 FTP 客户端第一件事就是指定源。坑二忘了save备份了个寂寞。事情是这样的下午做了一堆策略调整晚上割接前想着先备份一份ftp登录传了vrpcfg.zip传完还挺得意。结果第二天回滚的时候发现备份里的配置停在当天早上下午的改动一条没有。save这一步在压力大的时候特别容易漏后来我在割接清单里把它单列成一行前面加个复选框。坑三flash 空间不够传到 95% 失败。老设备上堆了好几个历史镜像dir看一眼剩余空间只有几十兆传一个两百多兆的系统包前面一路顺畅最后关头报错。这时候心态最容易崩。正确做法是传输前先清理delete /unreserved flash:/旧镜像.cc注意要加/unreserved普通delete只是把文件挪进回收站空间并没有真正释放还得再执行一次reset recycle-bin。坑四文件名字带空格。从 Windows 上拖了个文件到 FTP 服务端目录名字里有个空格交换机侧get的时候怎么都找不到。后来发现得用引号包起来或者干脆改名。这种问题没有任何技术含量但就是能耗你二十分钟。规范做法是文件名只用英文、数字、下划线、短横线。6.3 我个人在实际操作中的体会这些年配下来我对华为交换机 FTP 配置这件事的判断就一句话它是个好用的应急工具但不该成为常态流程。临时备份、割接窗口传镜像、手头没别的工具时救个急FTP 又快又稳但你要是把它做成每天定时跑的生产流程明文传输这个短板迟早会变成审计报告上的一条。所以我现在的基本打法是日常配置备份走脚本 SSH把配置抓到跳板机按日期归档顺带做差异比对系统升级这种必须传大文件的场景提前半小时把 FTP 服务端准备好ACL 卡死来源传完立刻关服务、删账号一整套动作写进割接脚本里自动执行实在遇到老设备不支持 SSH 的才退回到 FTP而且只在内网、只在窗口期。还有个小技巧值得分享传输完成后别只看客户端提示的传输成功一定回到设备上dir一下比对文件字节数和本地是不是一模一样。这一步三十秒但能在刷机之前挡住所有文件传坏了的悲剧。我见过一次系统包传到 99% 断了客户端提示失败但服务端已经写入了大部分内容文件看着挺大实际是坏的如果直接刷进去设备就变砖了。多看一眼比事后救砖划算太多。