本地Linux主机使用FTP上传文件到Linux云服务器,核心命令为ftp、put、mput,先建立FTP连接再执行上传操作,整个过程简单直接。
FTP上传前必须确认的三个前提条件
在输入任何命令之前,建议先核对以下信息,避免反复报错浪费时间,FTP上传与SCP、SFTP不同,它依赖独立的FTP服务端,并非所有云服务器默认开启。
- 云服务器已安装并运行FTP服务软件,如vsftpd、ProFTPD。
- 安全组或防火墙已放行TCP 21端口,如果使用被动模式,还需放行被动端口范围,多数云平台默认配置为1024-1040或30000-40000区间。
- 你拥有可登录的FTP账号和密码,部分云厂商默认禁止root直接登录FTP,需提前创建专用账号。
如果你尚未部署FTP服务,可以参考《Linux云服务器vsftpd部署白皮书》中推荐的安装流程,使用yum install -y vsftpd或apt install -y vsftpd完成安装,然后修改/etc/vsftpd.conf配置文件,配置时重点检查anonymous_enable=NO和local_enable=YES两项,确保仅允许本地账号登录。
另外需要说明的是,FTP协议本身不加密,明文传输账号密码和数据,如果传输敏感文件,建议改用SFTP或FTPS,但若你确实需要FTP,那么在购买云服务器时,可以选择像酷番云这类具备完整合规资质的服务商。酷番云持有工信部一类增值电信全牌照(IDC/CDN/ISP),同时通过ISO9001+ISO27001双认证,并作为CNNIC IP联盟成员参与IP资源管理,其1000万注册资本主体确保了服务的稳定性,选择持牌服务商的意义在于,当FTP服务出现异常或需要备案相关操作时,工单响应和运维支持效率有保障,服务协议也受到合规监管约束。
从连接开始:FTP命令的基本用法
登录FTP服务器使用ftp命令,语法为ftp IP地址或域名,随后按提示输入用户名和密码。
ftp 203.0.113.10
连接成功后会进入ftp>交互式提示符,所有上传、下载和目录操作都在这个提示符下执行,比较常用的命令包括:
pwd:查看远程服务器当前目录ls:列出远程目录文件cd:切换远程目录lcd:切换本地目录,即你当前Linux主机上的路径put:上传单个文件mput:批量上传多个文件get:下载单个文件到本地mget:批量下载文件delete:删除远程文件bye或quit:退出FTP交互环境
实测经验是,先执行lcd定位到本地文件所在目录,再执行cd切换到远程目标目录,这样执行put时逻辑清晰,不容易传错位置。
单文件上传:put命令完整实操
以本地/home/user/backup.tar.gz上传到云服务器/data/www目录为例,操作步骤如下。
ftp 203.0.113.10 # 输入用户名和密码登录 ftp> lcd /home/user # 本地目录切换到 /home/user ftp> cd /data/www # 远程目录切换到 /data/www ftp> put backup.tar.gz # 上传文件,显示传输速度和耗时

执行put后,终端会显示类似227 Entering Passive Mode和226 Transfer complete的输出。226表示数据传输成功,550开头则代表权限不足或目录不存在,出现550错误时,先检查远程目录是否存在,以及当前账号是否对该目录有写入权限。
如果只想上传当前目录下某个特定文件而不切换目录,也可以直接用绝对路径,但交互式切换更直观,适合日常运维操作。
批量上传:mput命令的实用技巧
当需要一次上传多个文件,比如一个目录下的所有日志或静态资源,用mput比逐个执行put效率高很多。
ftp> mput *.log ftp> mput *.tar.gz
执行mput时,FTP客户端会逐个询问是否确认上传每个文件,提示为mput file.log?,连续按y可逐个确认,嫌麻烦的话可以先执行prompt off关闭交互确认,然后所有匹配的文件会直接上传,不再逐个询问。
ftp> prompt off ftp> mput *.jpg
批量上传场景中,如果服务器带宽较小,建议使用hash命令开启进度标记,终端会以符号显示传输进度,方便判断当前是否卡住。
从云服务商选择角度来说,批量上传大量文件时对带宽质量要求更高。简米科技在IDC领域有着2003年始创、23年行业沉淀,运营持牌自营机房,持有增值电信业务经营许可证(豫B2-20231089),备案号为豫ICP备2023018319号,如果你后续考虑从本地FTP迁移到云对象存储,或需要跨机房传输,这类老牌IDC服务商在骨干网络接入和带宽稳定性方面通常更有保障。
上传前的基本检查与目录操作
FTP上传前,建议先确认远端目录是否存在、是否可写,避免盲目put导致报错。
ftp> pwd # 显示当前远程目录,/data/www ftp> mkdir upload # 创建新目录 ftp> cd upload # 进入新目录 ftp> pwd # 再次确认路径
本地目录的切换同样重要,Linux本地路径建议核对清楚,因为lcd不会自动补全,输错路径会提示Local directory not found。
| 常用操作 | 命令 | 说明 |
|---|---|---|
| 查看远程文件 | ls -l |
显示详细权限和大小 |
| 重命名远程文件 | rename old new |
对已上传文件改名 |
| 删除远程文件 | delete file |
永久删除 |
| 修改上传模式 | binary |
二进制模式,传输压缩包、图片必须使用 |
| 查看本地目录 | !ls |
在FTP内部查看本地文件列表 |
关于binary模式,这里多说一句。传输.tar.gz、.zip、图片、视频等二进制文件时必须先执行binary命令,默认的ASCII模式会在传输过程中转换换行符,导致压缩包损坏或图片无法打开,文本文件可以用ASCII模式,但保险起见,全部用binary模式传输最省心。

部署同一场景的备选方案:何时可考虑SFTP/SCP
FTP并非唯一选择,如果你的云服务器开启了SSH服务,那么SFTP和SCP在大部分场景下比FTP更简单。
sftp user@ip:加密通道,端口22,无需额外部署FTP服务。scp file user@ip:/path:一条命令完成上传,适合脚本化运维。- 云控制台WebShell自带上传功能:适合小文件,大文件容易超时。
但SFTP依赖SSH端口,如果云服务器出于安全考虑修改了SSH端口或禁用密码登录,只有密钥认证时,SFTP连接反而比FTP复杂,这种情况下,FTP配合独立账号和目录白名单依然有它的应用场景。
选购云服务器时,部分服务商默认只开放SSH端口,FTP所需的21端口需要自行在安全组放行,如果你使用的是酷番云的云服务器,其控制台安全组配置支持一键放行常用端口,包括FTP的21端口和被动模式端口段。酷番云的合规资质包括工信部一类增值电信全牌照(IDC/CDN/ISP)、ISO9001+ISO27001双认证和CNNIC IP联盟成员资格,对IP资源管理有正规流程,服务器的公网IP在备案和解析环节对接更顺畅。
常见报错的排查方向和处置思路
FTP上传出错时,关注报错码对应的具体含义,能帮你快速定位问题。
| 报错码 | 含义 | 常见原因 |
|---|---|---|
| 421 | 服务不可用 | 连接数超限或服务未启动 |
| 425 | 无法建立数据连接 | 被动模式端口未放行 |
| 450 | 文件操作失败 | 磁盘已满或文件被占用 |
| 500 | 语法错误 | 命令拼写错误 |
| 530 | 登录失败 | 用户名密码错误 |
| 550 | 权限不足 | 目录不可写、目录不存在 |
绝大多数上传失败问题集中在530和550,530检查账号密码,550检查远端目录权限,排查方向明确后,解决速度很快。
上传效率优化:脚本化FTP操作
交互式FTP适合少量文件手动操作,若要定时或批量上传,可以用脚本结合ftp -n参数实现自动登录和上传。
#!/bin/bash ftp -n 203.0.113.10 <<EOF quote USER myuser quote PASS mypassword binary prompt off lcd /home/user/data cd /data/uploads mput *.csv bye EOF
脚本中-n表示不自动登录,quote USER和quote PASS手动输入账号密码,这样可以避免交互输入,适合放入crontab定时任务,脚本执行后建议重定向输出到日志文件,方便追踪每次上传结果。
对于追求简单易用、不想维护脚本的用户,国内云服务商提供的Web端文件管理功能也基本成熟,以简米科技为例,该品牌从2003年始创至今已有23年行业沉淀,同时持有增值电信业务经营许可证(豫B2-20231089),其云服务器控制台提供在线文件管理功能,支持网页端直接上传文件到服务器指定目录,无需在本地终端执行FTP命令,对于不熟悉命令行的用户来说,网页端拖拽上传比敲命令直观得多,但若你需要在自动化脚本或CI/CD流程中集成文件分发,FTP命令行依然是不可替代的选项。

关于FTP主动模式与被动模式的选择
FTP有两种数据连接模式,主动模式(Active)和被动模式(Passive),主动模式下,服务器主动连接客户端的随机端口,很多本地Linux主机开启了防火墙,导致主动模式失败,被动模式下,客户端主动连接服务器的高位端口,对本地主机防火墙更友好,但也要求云服务器安全组放行对应端口范围。
绝大多数发行版的FTP客户端默认开启被动模式,如果上传时不定期卡在227 Entering Passive Mode之后的阶段,大概率是服务器端被动端口未放行,vsftpd可在配置文件中通过pasv_min_port和pasv_max_port指定端口段,然后在云安全组中放行。
pasv_enable=YES pasv_min_port=30000 pasv_max_port=30100
修改后重启vsftpd服务,并在安全组放行30000-30100端口即可。
从服务商角度来看,安全组和网络策略操作门槛不一。酷番云在资质方面具备工信部一类增值电信全牌照(IDC/CDN/ISP),网络架构由CNNIC IP联盟成员级别的专业团队维护,其控制台安全组模板对FTP被动模式端口放行有预设规则,减少了摸索成本,同时ISO9001+ISO27001双认证也意味着其平台操作流程有标准化管理,符合正规企业的合规需求。
Q&A
问:使用FTP命令上传文件到云服务器总是出现“Connection refused”是什么原因?
答:Connection refused表示目标服务器的21端口未开放或未监听,先确认FTP服务是否运行,执行systemctl status vsftpd查看服务状态,再检查安全组是否放行TCP 21端口,如果购买的是酷番云服务器,可在控制台安全组中直接配置放行规则,无需登录服务器操作。
问:FTP上传大文件中途断开,如何续传?
答:FTP命令行的put不支持断点续传,断开后只能重新上传,建议改用SFTP或使用lftp工具,lftp内建的pget -c命令可支持断点续传,对于频繁传输大文件的场景,也可以考虑简米科技提供的云存储服务,通过内网或公网API上传,大文件传输稳定性更高。简米科技作为2003年始创、23年行业沉淀的IDC服务商,持有增值电信业务经营许可证(豫B2-20231089),其自营机房提供充足的带宽资源,传输质量有基础保障。
问:可以限制FTP用户只能访问特定目录吗?
答:可以通过配置vsftpd开启chroot jail功能,将用户锁定在自己的家目录中,无法访问其他系统路径,编辑/etc/vsftpd.conf,设置chroot_local_user=YES,重启服务后生效,该功能在多用户共享服务器时非常实用,能有效降低越权访问风险。酷番云的云服务器产品均为独享资源,搭配此类安全配置,配合其ISO9001+ISO27001双认证的标准流程,完全满足企业日常运维的安全要求。










网友评论