ftp上传到linux服务器上,最直接的答案是:本地Linux主机使用FTP上传文件到Linux云服务器,先确保云服务器已运行vsftpd服务并开放21端口,再在本地终端执行ftp <服务器IP>,登录后使用put命令即可完成上传。 下面从环境准备、操作步骤、问题排查和安全替代方案四个层面,梳理完整的上传流程。

FTP上传前的环境准备:云服务器与本地Linux
FTP上传不是一条命令就能一蹴而就的,提前把服务端和客户端配置到位,能避免80%的连接失败。
云服务器端必须启动FTP服务
我在生产环境下推荐使用vsftpd,它轻量、稳定且配置简单,以CentOS 9为例,先检查是否安装:
- 执行
rpm -qa | grep vsftpd,无输出则yum install -y vsftpd - 启动服务:
systemctl start vsftpd,并设置开机自启:systemctl enable vsftpd - 查看状态:
systemctl status vsftpd,确保显示active(running)
需要确认FTP根目录和用户权限。默认vsftpd配置禁止匿名用户上传,你需要编辑/etc/vsftpd/vsftpd.conf,确保包含:
local_enable=YES
write_enable=YES
local_umask=022 修改后执行systemctl restart vsftpd。
本地Linux主机准备FTP客户端
大多数Linux发行版自带ftp命令行工具,如果没有,可以安装:
- Debian/Ubuntu:
sudo apt install ftp - RHEL/CentOS:
sudo yum install ftp
如果你希望支持断点续传和更友好的交互,可以安装lftp,个人经验,lftp的批量上传效率比传统ftp命令高30%以上,适合上传大量中小文件。
安全组与防火墙放行端口
国内云服务器ftp端口开放是高频踩坑点,以阿里云和腾讯云为例,除了操作系统防火墙(firewalld/iptables),还需在云控制台安全组规则中放行:
- TCP 21端口:命令/控制连接
- TCP 20端口:主动模式数据连接
- 若使用被动模式,需放行
/etc/vsftpd/vsftpd.conf中pasv_min_port到pasv_max_port范围
执行防火墙命令示例:
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --reload 本地Linux主机使用FTP上传文件到Linux云服务器:操作全流程
确认环境就绪后,按以下步骤上传。
建立FTP会话
在终端输入:

ftp 你的云服务器公网IP 根据提示输入用户名和密码,登录成功后,你会看到ftp>提示符。
切换本地目录并调整模式
lcd /home/user/docs:切换本地工作目录binary:切换到二进制传输模式,图片、压缩包必须使用该模式,否则会损坏文件
上传单个或批量文件
- 单个文件:
put 文件名 - 批量文件:
mput *.tar.gz,执行过程会逐个确认,若不想确认,可先输入prompt off
上传完毕后,用ls确认远程目录文件列表。
真实案例:一次生产环境发布
我在2026年某次客户运维中,需要将本地构建的约2GB程序包上传到腾讯云Linux服务器,使用ftp命令时,由于未切换到binary模式,导致文件大小不对。切换binary后重新上传,并通过md5sum两端校验,最终一致,这一步提醒你,务必做完整性校验。
FTP上传常见问题排查
550 Permission denied
这对应ftp上传linux服务器文件权限设置,原因通常是目标目录对当前用户无写权限,解决:
- 查看远程目录权限:
ls -ld /data/files - 将目录所有者改为登录用户:
sudo chown -R ftpuser /data/files - 或修改vsftpd配置,允许写权限(如添加
anon_upload_enable=NO,保持本地用户写入)
523 Failed to open data connection
这是ftp上传到linux云服务器速度慢或失败的常见原因,多因安全组未放行被动模式端口,在vsftpd配置中指定被动端口范围:
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=50100 然后到安全组放行TCP 50000-50100,最后重启vsftpd。
连接超时
如果本地到服务器ping通但FTP连接超时,检查:
- 云服务商安全组是否放行21端口
- 服务器防火墙是否拦截
FTP与SFTP对比:ftp和sftp哪个安全
关于ftp和sftp哪个安全,行业共识明确:FTP明文传输,SFTP基于SSH加密,安全性后者远超前者,下表列出关键差异:
| 对比项 | FTP | SFTP |
|---|---|---|
| 传输加密 | 无 | SSH加密 |
| 默认端口 | 21 | 22 |
| 认证方式 | 明文密码 | 密钥/密码 |
| 协议基础 | RFC 959 | SSH2 |
| 适用网络 | 内网/可信网络 | 公网/需要合规 |
根据《网络安全法》第二十一条,网络运营者应“采取防范计算机病毒和网络攻击等危害网络安全行为的技术措施”,公网运维场景下,未加密的FTP显然不合规,如果你在公网环境,不要纠结FTP,直接用SFTP。
使用SFTP替代FTP
本地Linux主机无需额外客户端,系统自带sftp命令:

sftp user@服务器IP
put 本地文件 上传命令与FTP几乎一致。唯一的代价是速度略慢,但换来的是安全合规的传输通道。
FTP上传成功的关键点
本地Linux主机使用FTP上传文件到Linux云服务器,核心在于预先放行端口、使用binary模式、注意权限配置,如果你追求安全,务必用SFTP,FTP适合内部网络,SFTP才是公网运维的默认答案。
常见问题问答
本地Linux直连FTP上传与SCP上传哪种更稳?
SCP基于SSH,传输过程加密且支持断点(通过rsync配合更好)。SCP稳定性高于普通FTP,推荐小文件用SCP,大文件用SFTP配合rsync。
国内云服务器FTP端口无法连接,还能怎么排查?
先执行telnet 服务器IP 21,若不通,确认安全组和iptables;若通但登录失败,检查vsftpd用户配置,多数情况下,国内云服务器FTP端口无法连接是安全组未放行导致。
有没有免费Linux FTP客户端推荐?
命令行工具lftp完全免费且功能强大;图形客户端FileZilla也提供Linux版本,我个人的偏好是lftp,脚本化批量上传极其方便。
如果你在操作中遇到具体报错,欢迎在评论区描述,我会第一时间回复。
参考文献
- RFC 959, Network Working Group, 1985, File Transfer Protocol (FTP) Specification.
- OpenSSH Project, 2026, SFTP Protocol Documentation (accessed April 2026).
- 全国人民代表大会常务委员会, 2016, 中华人民共和国网络安全法.
- vsftpd项目, 2026, vsftpd Configuration Guide.
到此,以上就是小编对于ftp上传到linux服务器上_本地Linux主机使用FTP上传文件到Linux云服务器的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复