1 背景概要 {#1-%E8%83%8C%E6%99%AF%E6%A6%82%E8%A6%81}
在技术支持中有不同试用客户都反馈了文件传输的问题:
-
不能传输大文件------实际情况是 rz 方式提示文件大小不能超过 500 MB;
-
传输过程经常卡死,无法上传------实际情况是 sftp方式只有进度条,传输速率慢的时候导致用户误认为卡死;
-
传输速度非常慢------和用户当时的网络情况有关系,以下测试不同时间效果不一样;
为了验证 JumpServer文件传输的实际情况,进行了以下测试。
2 概述 {#2-%E6%A6%82%E8%BF%B0}
JumpServer 开源堡垒机支持对文件的上传和下载,并对传输记录进⾏审计。JumpServer 的文件传输功能是用户使用频率较高的一个功能,常见的文件传输方式主要包括:rz 和 sz 命令方式、文件管理方式、客户端工具方式等。
在使用JumpServer 进行文件传输的时候,常常会有用户向 JumpServer 开源项目组反馈文件大小受限、传输卡顿、传输不稳定等情况,实际上这与用户所选择的文件传输方式有一定的关系。
本文将重点对比上述三种用户常用的JumpServer 文件传输方式,并且测试验证 JumpServer 文件传输的实际效果,以便用户后续在传输文件时能够选用更为有效的文件传输方式。希望本文对广大企业的运维人员提升日常运维管理的效率有所帮助。
3 测试准备 {#3-%E6%B5%8B%E8%AF%95%E5%87%86%E5%A4%87}
准备以下测试环境以及测试文件:
| 测试环境准备 || |----|---------------------------| | 版本 | JumpServer v3.10.3 版本 |
| 测试文件准备 | 文件大小 | |--------|-------------| | 文件1 | 5.6 MB | | 文件2 | 155 MB | | 文件3 | 2.98 GB | | 文件4 | 5.09 GB |
4 不同文件传输方式测试对比 {#4-%E4%B8%8D%E5%90%8C%E6%96%87%E4%BB%B6%E4%BC%A0%E8%BE%93%E6%96%B9%E5%BC%8F%E6%B5%8B%E8%AF%95%E5%AF%B9%E6%AF%94}
4.1 rz和 sz命令方式 {#4.1-rz-%E5%92%8C-sz-%E5%91%BD%E4%BB%A4%E6%96%B9%E5%BC%8F}
用户连接资产后,使用 rz 和 sz 命令,直接拖动文件进行文件上传/下载(秒计时器)。
分别测试不同尺寸的测试文件,传输效果如表1所示:
▲ 表1 不同大小的文件通过 rz 和 sz 命令传输文件的效果对比
注意:
■ 上传 155 MB 大小的文件时,传输文件容易出现卡住并最终会断开会话的情况,显示文件传输失败;
■rz 和 sz 命令文件传输方式有文件大小的限制,传输文件的上限为 500 MB。
4.2 文件管理方式 {#4.2-%E6%96%87%E4%BB%B6%E7%AE%A1%E7%90%86%E6%96%B9%E5%BC%8F}
用户选择通过 SFTP 协议连接资产,进行文件传输。具体步骤如下:
① 打开 JumpServer 的 Web 终端连接页面,选择需要连接的服务器,选择"Web SFTP"连接方式;
② 进入文件传输页面后,直接拖动文件到窗口中,即可将文件上传至对应目录;
③ 右键点击需要下载的文件,在打开的选择框选择"下载"选项即可进行文件下载。
分别测试不同尺寸的测试文件,传输效果如表2所示:
▲ 表2 不同尺寸的文件通过 SFTP 文件管理方式传输文件的效果对比
注意:
■ 相比 rz 和 sz 命令的文件传输方式,通过 SFTP 文件管理方式传输文件时,传输页面会显示文件传输进度条,方便用户了解传输进度(由于时长原因,本次测试未对后两个文件进行计时);
■ 受 Nginx 上传/下载文件的大小限制,通过 JumpServer 文件管理方式传输文件的文件尺寸初始默认为 4096MB ,即**"CLIENT_MAX_BODY_SIZE=4096m"**,文件尺寸可以进行修改。
4.3 客户端工具方式 {#4.3-%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%B7%A5%E5%85%B7%E6%96%B9%E5%BC%8F}
用户使用客户端工具通过 JumpServer 进行文件传输,以 FileZilla 、SecureCRT 工具为例,具体步骤如下:
■FileZilla工具:
① 点击 FileZilla 工具的"站点管理器",填写相关信息,点击"连接"按钮,输入 JumpServer 的登录密码和 MFA 验证码,连接 JumpServer堡垒机;
② 连接成功后,选择需要上传文件的服务器和资产账号目录,拖动文件直接上传,系统会弹窗要求用户再次输入 JumpServer 登录密码和 MFA验证码,确认后即可开始文件传输;
③ 在操作页面底部会显示文件传输状态,包括用时、完成进度、传输速率。
■SecureCRT 工具:
① 在 SecureCRT 工具中输入 JumpServer 的用户登录密码及 MFA 验证码,登录至 JumpServer堡垒机;
②登录成功后,用户选择需要连接的资产和所使用的资产账号;
③ 输入 rz 命令,选择需要上传的文件,点击**"OK"** 按钮,即可进行文件传输;
④ 操作页面将会显示文件的传输进度、传输速率、预计剩余时间。
分别测试不同尺寸的测试文件,传输效果如表3所示:
▲表3 不同尺寸的文件通过客户端工具传输文件的效果对比
注意:
■SecureCRT 工具使用 Zmodem 协议上传文件时,只能传输 4 GB 以内的文件(受传输协议限制)。
5 测试总结 {#5-%E6%B5%8B%E8%AF%95%E6%80%BB%E7%BB%93}
经过上述一系列测试,JumServer 开源项目组总结了一些文件传输的经验和建议,希望对广大用户有所帮助:
■ 当用户需要临时传输一些占用空间较小的文件时,可以使用 rz 和 sz 命令方式来传输文件,其上传文件的大小限制为 500 MB,传输较为方便快捷;
■ 文件管理方式和客户端传输方式的传输速度差不多,在一定程度上会受到网速的影响。客户端工具使用 SFTP协议进行文件传输时,没有文件大小的限制,并且能够显示文件的传输速度,建议用户在传输较大的文件时,可以选择客户端连接的传输方式,方便用户了解传输的进度,避免用户误认为传输任务出现卡死等情况;
■ 使用客户端传输方式时,需要确认用户所使用的客户端本身是否具有文件大小限制的情况,例如通过 SecureCRT 工具使用 Zmodem 协议来传输文件时,文件大小限制不能超过 4 GB;
■在进行文件传输之前,用户需要检查自身的网络情况,网速状况不同,文件传输的效果和用时差异也会较大。