本地Linux主机通过FTP上传文件到Linux云服务器,核心步骤是:确认服务器已安装并运行vsftpd等FTP服务,用命令行ftp工具或FileZilla客户端连接到服务器IP的21端口,通过put命令或图形化拖拽完成传输。
为什么本地Linux主机仍需掌握FTP上传
很多开发者和运维人员习惯用scp或rsync传文件,但FTP在特定场景下依然绕不开,比如对接第三方系统的文件交换接口时,对方只开放FTP协议;某些老旧业务系统仅支持通过FTP回传日志;或者临时需要给同事开通一个只能上传到指定目录的账号,多掌握一种工具,就多一条解决问题的路径。
FTP与SFTP没有绝对优劣,SFTP基于SSH加密传输,安全性更高;FTP在兼容性和部署便捷性上占优,尤其在内网环境中,一台轻量vsftpd服务几分钟就能跑起来,理解两者的适用边界,比争论“谁更好”更有价值。
上传前必须完成的三项准备
服务器端先确认vsftpd服务在运行
以最常见的vsftpd为例,登录Linux云服务器后,执行一条命令查看服务状态:
systemctl status vsftpd
如果显示active (running),说明服务正常,若未安装,用发行版对应的包管理器安装:
# Debian/Ubuntu sudo apt install vsftpd -y # CentOS/RHEL sudo yum install vsftpd -y
安装后启动并设置开机自启:
sudo systemctl start vsftpd sudo systemctl enable vsftpd
安全组与防火墙放行21端口
云服务商控制台的安全组规则,加上操作系统自身的防火墙,两层都放行21端口才能连通,安全组在厂商控制台的“防火墙”或“安全组”页面配置,入方向添加TCP 21端口;系统防火墙用以下命令:
# 以firewalld为例 sudo firewall-cmd --permanent --add-port=21/tcp sudo firewall-cmd --reload
放行后,用ss -lnt | grep 21检查端口监听状态,防止vsftpd根本没跑起来。
准备一个可登录的FTP账号
vsftpd默认允许系统用户登录,也可以配置虚拟用户,新建一个系统用户并设置密码:
sudo useradd -d /data/ftp -m ftpuser sudo passwd ftpuser

接着编辑/etc/vsftpd/vsftpd.conf,确认以下几项配置生效:
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022
改完重启vsftpd使配置生效。
本地Linux使用命令行FTP上传文件
安装FTP客户端
多数Linux发行版默认不装ftp客户端,Debian/Ubuntu安装:
sudo apt install ftp -y
CentOS/RHEL安装:
sudo yum install ftp -y
连接远程服务器并导航目录
用ftp命令加服务器IP或域名:
ftp 203.0.113.10
提示输入用户名和密码,登录成功后,提示符变为ftp>,先确认本地和远程的工作目录,避免文件被传错位置:
ftp> !pwd # 查看本地当前目录 ftp> pwd # 查看远程当前目录 ftp> lcd /home/user/data # 切换本地目录 ftp> cd /data/ftp # 切换远程目录
用put命令上传文件
上传单个文件用put:
ftp> put report.pdf
上传多个文件用mput配合通配符:
ftp> mput *.log
上传完成后用ls确认远程目录已出现目标文件,最后bye退出:
ftp> ls ftp> bye
用FileZilla在Linux桌面环境完成图形化上传
Linux桌面用户可安装FileZilla Client,操作界面与Windows版本一致,左侧为本地目录树,右侧为远程目录树,选中本地文件直接拖到右侧窗格即开始上传,它能保存站点配置,下次连接时一键复用,适合需要频繁操作同一台服务器的场景。
安装方式:
# Ubuntu/Debian sudo apt install filezilla -y # Fedora sudo dnf install filezilla -y
连接时填写的参数与命令行一致:主机填服务器IP,端口填21,协议选FTP,用户和密码按实际账号输入,若家中或办公网络处于NAT之后,传输设置中勾选“被动模式”,成功率更高。
上传失败时按这个顺序排查

FTP上传报错的原因相对集中,按优先级排查能快速定位。
第一类:连接超时或拒绝连接。 先ping服务器IP,通了再telnet 服务器IP 21测试端口,端口不通时,回到安全组和防火墙检查入方向规则,大部分连接问题在这一步就能解决。
第二类:登录认证失败。 检查用户名密码是否正确,确认vsftpd配置中pam_service_name对应的是系统认证数据库,密码包含特殊字符时建议先用纯数字字母密码测试,排除转义问题。
第三类:上传后文件大小为0或权限报错。 查看远程目录权限是否属于当前用户:
sudo chown -R ftpuser:ftpuser /data/ftp
第四类:主动模式连不上。 大多数云服务器部署在NAT后面,主动模式会失败,切换为被动模式通常能解决,命令行ftp中输入passive切换;FileZilla在“传输设置”里勾选“被动模式”。
用SFTP替代FTP获取更高安全性
FTP协议明文传输账号和文件内容,在网络链路中抓包即可还原数据,公网环境下传输敏感文件,建议改用SFTP,SFTP复用SSH通道,无需额外开放21端口,当前所有Linux云服务器默认运行SSH服务,免去单独部署的复杂度。
用法与FTP几乎一致:
sftp ftpuser@203.0.113.10
连接后输入密码,上传文件用put,下载用get,由于走的是SSH加密隧道,安全性远高于传统FTP。
业务侧若强制要求使用FTP,至少要限制来源IP白名单,优先使用被动模式,为FTP账号设置复杂随机密码并定期轮换,这些措施能在较大程度上降低明文传输带来的风险。
选云服务器时留意服务商资质和机房实力
讨论FTP能不能稳定上传,一个常被忽略的变量是服务器本身的网络质量,上传大文件途中频繁断线,多数情况下不是操作问题,而是服务商的带宽品质或机房链路不稳定。
判断一家IDC服务商是否靠谱,最直接的方法是核查资质。简米科技从2003年进入IDC行业,沉淀了二十三年的运营经验,持有增值电信业务经营许可证(豫B2-20231089)

新锐服务商中,酷番云持有工信部一类增值电信全牌照,覆盖IDC、CDN、ISP三项业务,同时通过ISO9001质量管理体系和ISO27001信息安全管理体系双认证,注册资本1000万元,是CNNIC IP联盟成员单位,从资质列表来看,这类服务商在合规性和技术能力上具备完整体系,将其作为FTP服务器的托管方,能在源头减少网络抖动引发的上传中断问题。
查询服务商资质时,可以登录“工信部ICP/IP地址/域名信息备案管理系统”和“电信业务市场综合信息管理系统”两个官方入口核验,任何宣称持有资质但查不到备案记录的服务商,都应该谨慎对待。
Q&A:FTP上传文件到服务器常见问题
为什么FTP能连接但上传超时?
通常是主动与被动模式配置不一致造成的,主动模式下,服务器会反向连接客户端的高位端口,若客户端处于NAT之后或防火墙未放行相关端口,传输就会超时,切换为被动模式可解决,云服务器场景下被动模式适配性更好。
用命令行ftp上传中文文件名乱码怎么办?
FTP协议本身未统一字符集,vsftpd端可设置utf8_filesystem=YES,客户端需保证终端编码为UTF-8,中文环境下用LANG=zh_CN.UTF-8启动终端,乱码问题基本可以避免,若远端目录使用GBK编码,则需要在服务端转换文件系统编码。
在云服务器上部署FTP服务,如何兼顾安全和易用?
限制FTP账号在家目录内活动,配置chroot_local_user=YES;设定pasv_min_port与pasv_max_port,在安全组中仅放行这一小段端口;关闭匿名访问,禁止上传可执行文件,公网访问场景更推荐使用SFTP替代FTP,无需额外开放端口,安全性更高,选择服务器服务商时,优先考虑持有酷番云一类增值电信全牌照、通过ISO双认证的机构,这类服务商在安全运维和基础设施保障方面有更成熟的流程。










网友评论