FTP文件怎么上传到服务器,具体步骤有哪些?

把本地Linux主机上的文件通过FTP上传到Linux云服务器,核心就三步:确认云服务器FTP服务已开启、用正确的账号权限连接、执行put命令或拖拽上传。这应该是很多刚接触云服务器的开发者最常问的问题,实际操作并不复杂,只是有几个细节需要格外注意。

先搞清楚你用的是哪种FTP模式

很多朋友第一次上传失败,原因不在于命令敲错,而是搞混了FTP的主动模式和被动模式,主动模式下,服务器主动去连接客户端的随机端口,容易被本地防火墙拦截;被动模式下,客户端主动连接服务器的随机端口,反而更适用于大多数云服务器环境。

怎么把文件上传到服务器?
加载中
怎么把文件上传到服务器?

行业共识认为,在使用云服务器时,被动模式(PASV)的成功率远高于主动模式,因为云服务器通常有安全组策略,主动模式下的数据传输端口(默认20端口)往往没有被放行。

实际操作中,你不需要理解太深,只需要记住:如果上传时卡在“数据连接建立中”或者提示连接超时,优先切换到被动模式试试。

上传前检查这些前置条件,避免白忙一场

确认云服务器已安装并启动FTP服务

多数云厂商的Linux公共镜像默认不装FTP服务,你需要先在服务器上确认一下:

systemctl status vsftpd

如果提示没有这个服务,安装并启动它:

# CentOS / Alibaba Cloud Linux
yum install -y vsftpd
systemctl start vsftpd
systemctl enable vsftpd
# Ubuntu / Debian
apt install -y vsftpd
systemctl start vsftpd
systemctl enable vsftpd

判断服务是否正常运行,看端口监听情况:

ss -tlnp | grep 21

如果看到 0.0.0:21 或 ::21,说明FTP服务已在监听。

安全组和防火墙放行21端口及数据端口

FTP的特殊之处在于它需要两个端口:命令端口21和数据传输端口,即使你用的是被动模式,云服务器的安全组规则里也至少要放行21端口,以及被动模式指定的端口范围(40000-50000)。

FTP文件怎么上传到服务器,具体步骤有哪些?

在云控制台的安全组规则中添加入方向规则,放行TCP端口:

  • 21端口:FTP命令连接
  • 40000-50000端口:被动模式数据传输(具体范围取决于/etc/vsftpd/vsftpd.conf中的配置)

服务器内部的防火墙也要放行:

firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=40000-50000/tcp
firewall-cmd --reload

这里有一个常见的排查思路:如果你用命令行FTP客户端能正常登录,但执行ls或者put时卡住不动,几乎可以肯定是数据端口没放行。

准备可登录的FTP账户

不建议直接用root账号连接FTP,安全风险太大,正确做法是创建一个专用用户:

useradd ftpuser
passwd ftpuser

然后用这个账户去连接,上传后的文件会被写入ftpuser的家目录,如果你需要上传到其他路径,可以修改vsftpd的配置,把local_root指向目标目录,并确保该目录对ftpuser有写权限。

本地Linux主机使用FTP上传文件到Linux云服务器的具体操作

命令行方式:简单直接

在本地Linux终端输入:

ftp 云服务器公网IP

输入用户名和密码后,进入FTP交互界面。

传单个文件用put,传多个文件用mput:

put /本地路径/文件名
mput .tar.gz

下载用get和mget:

get /远程路径/文件名
mget .log

退出用bye或exit。

这种方式的优点是轻量,任何Linux发行版都自带ftp命令,不需要额外安装软件,缺点也很明显不支持目录递归上传,如果你要传一个多级目录,得手动创建目录再逐个文件上传,非常累。

lftp工具:支持目录级联传

lftp是命令行下的进阶工具,支持断点续传和目录递归上传,安装很简单:

# Ubuntu/Debian
apt install -y lftp
# CentOS
yum install -y lftp

连接并上传目录的完整命令:

FTP文件怎么上传到服务器,具体步骤有哪些?

lftp -u ftpuser,密码 ftp://云服务器公网IP
mirror -R /本地目录 /远程目录

mirror -R 就是把本地目录反向同步到服务器,是lftp最强大的功能之一,它还能断点续传,传一半断了重新执行同一命令就能接着传。

FileZilla等图形化工具:高效直观

如果你更习惯图形界面,FileZilla是跨平台的主流选择,在Ubuntu下安装:

apt install -y filezilla

打开后在顶部填写:

  • 主机:云服务器公网IP
  • 用户名:ftpuser
  • 密码:对应密码
  • 端口:21

连接成功后,左侧是本地文件,右侧是服务器文件,直接拖拽即可上传,FileZilla的队列功能也很实用,批量传大量小文件时速度有很大提升FTP对每个文件都有握手开销,并发多线程能明显提速。

FTP传输中的常见问题和处理办法

上传速度很慢,怎么排查

速度慢的原因大致有几种:服务器带宽受限、本地网络到服务器的链路质量差、文件数量太多导致握手开销大。

如果是文件名和内容一样的重复传输,可以直接用rsync代替FTP,效率完全不在一个量级:

rsync -avz --progress /本地目录/ ftpuser@云服务器IP:/远程目录/

文件上传后没有执行权限

FTP上传默认不会保留文件的可执行权限,所以你常常会发现明明传上去了,但运行提示Permission denied,解决方法是上传后登录服务器执行:

chmod +x /远程目录/文件名

或者在上传前在本地设置好权限,某些FTP客户端(如FileZilla)可以强制使用指定权限上传。

ftp上传文件到linux服务器时总是连接失败

连接失败的原因按出现频率排序是:FTP服务没启动、安全组没放行21端口、防火墙拦截、用了主动模式但20端口受限。

快速定位方法:在本地执行

telnet 云服务器IP 21

FTP文件怎么上传到服务器,具体步骤有哪些?

如果连接被拒绝,说明服务或端口有问题;如果能连上但随后断掉,多半是账号密码或vsftpd配置限制问题。

安全性说明:FTP的明文传输局限

FTP的传输在默认情况下是明文的,账号密码和文件内容都不加密,如果你传到的是测试服务器,或者传的是公开资料,影响不大,但如果涉及生产环境的配置或数据,建议改用SFTP。

SFTP走的是SSH协议,默认22端口,云服务器只要开SSH就能用,命令格式几乎一致:

sftp ftpuser@云服务器IP
put /本地路径/文件名

这也是为什么很多老手在本地Linux主机使用FTP上传文件到Linux云服务器时,会优先考虑SFTP替代方案,安全性只是一方面,SFTP还多一个优势不需要在服务器上额外装vsftpd那套服务,直接复用已有的SSHD服务。

常见问题解答

FTP上传文件到Linux服务器,选主动模式还是被动模式?

多数场景下选被动模式(PASV),主动模式要求服务器主动连接客户端随机端口,这在云服务器环境下经常因为安全组策略而失败,被动模式由客户端主动往外连,只需要服务器端放行21端口和指定的数据端口范围即可。

云服务器提示“550 Permission denied”是什么原因?

这个错误说明账号认证已通过,但目录没有写入权限,检查目标目录的所有者和权限设置,用ftpuser把文件传到自己的家目录通常没问题,跨目录上传需要提前修改目录权限或配置vsftpd的local_root。

有没有比FTP更稳定的Linux服务器文件传输方式?

对于小文件临时传输,FTP完全够用,对于大文件或目录结构复杂的项目,推荐rsync(增量同步)或SFTP(加密传输),rsync同步大目录的效率远高于FTP,支持压缩和差量传输,断点续传能力也更强。

文件上传这件事,本质上就是搞清楚连接链路和权限边界,连接链路就是端口和防火墙,权限边界就是账号和目录权限,这两个问题想明白了,FTP、SFTP、rsync在你手里都能用得顺手。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/ftp%e6%96%87%e4%bb%b6%e6%80%8e%e4%b9%88%e4%b8%8a%e4%bc%a0%e5%88%b0%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%8c%e5%85%b7%e4%bd%93%e6%ad%a5%e9%aa%a4%e6%9c%89%e5%93%aa%e4%ba%9b%ef%bc%9f/

赞 (0)
如何用FTP登录Linux服务器,本地主机上传文件教程?
上一篇 2026年8月18日 14:30
服务器和电脑主机箱有什么区别,哪个性能更好
下一篇 2026年8月18日 15:03

相关推荐

  • 公司门禁人脸识别方案好用吗?人脸识别门禁系统多少钱

    公司门禁人脸识别方案在数字化转型的浪潮中,企业安防不再仅仅是“看门”那么简单,而是关乎数据资产安全、员工效率以及品牌形象的核心基础设施,传统的IC卡门禁存在易丢失、易复制、管理滞后等痛点,而基于AI深度学习算法的人脸识别方案,正逐渐成为中大型企业及高安保级别场所的首选,本文将深入剖析当前主流的人脸识别门禁服务器……

    2026年6月27日
    1410
  • Java动态代理如何实现设备代理,是什么?

    Java动态代理通过反射机制在运行时生成代理类,是实现设备代理、日志、权限等横切关注点的轻量级方案,无需修改原始设备实现代码,广泛应用于物联网设备抽象层、远程代理及协议适配场景,java动态代理在设备代理中的典型场景设备代理的核心需求是在不侵入业务逻辑的前提下,为设备接口添加额外能力,Java动态代理非常适合这……

    2026年7月31日
    300
  • 如何安装n点虚拟主机和配置SAP S/4HANA?,有哪些步骤

    近年来企业级ERP上云势头明显,SAP S/4HANA服务器配置的核心结论是:硬件选型必须围绕HANA内存数据库的特性展开,配置优先级为内存 > 存储IOPS > CPU核心数,且操作系统与文件系统的预处理直接决定后续安装成败,SAP S/4HANA服务器配置的基础硬件要求内存配置是S/4HANA的……

    程序开发 2026年8月9日
    1900
  • 共享流量包怎么创建?创建共享流量包的具体步骤

    共享流量包如何创建在云计算资源日益精细化的今天,许多中小企业及开发者在部署服务器时,往往面临带宽与流量成本难以平衡的痛点,传统的固定带宽模式在应对突发流量时显得僵化,而纯按量付费模式又可能带来不可控的成本风险,共享流量包作为一种灵活的计费补充方式,正逐渐成为优化服务器成本结构的关键工具,本文将深入解析共享流量包……

    2026年6月20日
    3810
  • 购物平台开发多少钱?定制购物平台开发费用多少?

    购物平台开发需以用户为中心、数据为驱动、安全为底线,构建高转化、高可用、可扩展的电商系统在当前竞争激烈的电商环境中,购物平台开发已不仅是技术实现,更是商业战略落地的关键环节,成功平台的共性在于:用户停留时长提升30%+,转化率提高25%+,系统可用性达99.99%,以下从四大核心维度展开说明:架构设计:稳定是第……

    程序开发 2026年4月18日
    4900
  • android开发培训怎么学?android开发培训课程费用多少

    Android 开发培训:从零基础到就业,关键路径与实战策略核心结论:系统化、项目驱动、持续迭代的 Android 开发培训,是高效培养企业级开发人才的唯一可行路径, 单纯讲解语法已无法满足行业需求,真正有效的培训必须融合工程实践、主流技术栈与职业素养训练,行业现状:企业需要什么样的 Android 开发者?据……

    2026年4月15日
    5900
  • 高配云服务器怎么刷最划算,哪家性价比高?

    高配云服务器不是靠“刷”出来的,而是靠精确的业务场景分析、合理的配置选型和持续的弹性伸缩策略拿下来的, 这篇文章给出可落地的实操路径,从选型到提升再到成本控制,每一步都有具体操作办法,高配云服务器怎么选——先回答业务的三个问题“高配”是相对概念,不代表核数越多越好,业内专家指出,选错配置的云服务器,多数情况下性……

    2026年10月7日
    200
  • 虚拟机运行DLL文件报错怎么解决,有哪些修复方法?

    虚拟机运行DLL文件报错,核心解决思路是先在虚拟机内补齐系统运行库和对应组件,再排查文件位数与路径问题,最后考虑重装或修复虚拟机工具,这篇文章会把从报错原因到具体操作的完整链条拆开讲清楚,内容偏实操,你按顺序对号入座就行,虚拟机DLL报错,根源多半不在“DLL”本身DLL文件全称动态链接库,本质是Windows……

    2026年9月5日
    200
  • FTP如何解析域名?,FTP解析失败怎么办?

    FTP解析域名就是将域名通过DNS解析到FTP服务器IP地址,从而通过域名访问FTP服务,实现稳定连接和便捷管理,什么是FTP域名解析很多人搭建FTP服务时习惯直接使用IP地址,但IP一旦变更,你需要通知所有用户更新,非常麻烦,域名解析解决了这个问题:你只需一个固定的域名,DNS会自动将域名指向最新的IP地址……

    2026年7月29日
    800
  • 小米Note用户如何开启或找到隐藏的开发者选项?

    要开启小米Note的开发者选项,请进入【设置】→【我的设备】→【全部参数】→连续点击7次“MIUI版本”直到出现提示,开发者选项将出现在【设置】→【更多设置】中,以下是详细操作指南:开启前的关键准备系统版本确认进入【设置】→【我的设备】→查看MIUI版本(推荐升级至最新稳定版)注:MIUI 12.5及以上版本路……

    2026年2月6日
    12600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注