在本地Linux主机通过FTP向Linux云服务器上传文件,正确做法是:确认ftp服务器主机地址为云服务器的公网IP(或已解析A记录的域名),默认端口21已放行,然后执行ftp 公网IP登录,使用lcd切换本地目录、put上传目标文件,生产环境建议改用lftp配合被动模式,并优先启用FTPS或SFTP加固传输链路。

先搞清楚ftp服务器主机地址,别把内网IP填进去
主机地址的三种合法输入形式
- 公网IPv4,
102.10.20,这是云服务器对外提供FTP服务的主地址 - IPv6地址,
2408:4001:xxxx,运营商IPv6环境下可直接使用 - 已解析的域名,
ftp.example.com,域名本质上仍指向公网IP
从云厂商控制台拿到准确公网IP
登录阿里云、腾讯云或华为云控制台后,在“云服务器实例”列表里通常同时展示公网IP和私网IP。公网IP才是ftp服务器主机地址,私网IP只能在VPC内网互通时使用。 若你创建了弹性公网IP(EIP),则需把EIP绑定到实例后,以EIP地址为准。
FTP端口绑定不是网络入口的终点
云服务器上的vsftpd监听地址通常设为0.0.0.0,但这只代表服务端已就绪。真正卡住连接的是安全组:必须同时放行TCP 21端口和被动模式数据端口范围(如10000-10100)。 只开放21端口会出现“能登录但列不出目录”的情况。
本地Linux主机从安装到上传:两套完整命令流程
第一步:确认或安装FTP客户端
Debian/Ubuntu系统执行:
apt update && apt install ftp lftp -y
CentOS/RHEL系列执行:
yum -y install ftp lftp
安装后使用 which ftp lftp 验证,两个工具保留其一即可。
第二步:传统ftp命令行上传
本地Linux使用FTP上传文件到Linux云服务器的经典流程如下:
- 执行
ftp 公网IP发起连接 - 在
Name (...)提示符后输入账号名 - 在
Password:提示符后输入密码(屏幕不回显) - 使用
cd /data/wwwroot切换服务器端目录 - 使用
lcd /home/user/site切换本地工作目录 - 执行
binary确保二进制传输模式 - 执行
put site.tar.gz上传单个文件 - 批量上传时先执行
prompt off,再执行mput *.tar.gz - 最后执行
bye断开连接
要点梳理:
- 上传文本、脚本建议用
ascii模式,避免换行符被替换 - 上传压缩包、图片、程序包必须用
binary模式 hash命令可显示 进度条,便于观察传输是否中断
第三步:lftp更适合大文件和断点续传
lftp的推荐写法:

lftp -u 用户名,密码 -e "set ftp:passive-mode ON; cd /data; put /tmp/app.tar.gz; bye" 公网IP lftp相比传统ftp命令有三个核心优势:
- 支持断点续传:配合
xfer:clobber和reget实现中断恢复 - 支持并发分片:
pget -n 5 文件名将文件拆成5段并发下载 - 支持目录镜像:
mirror -R 本地目录 服务器目录完成增量同步
2026年Linux云服务器FTP端口怎么开
安全组放行端口的标准步骤
在云厂商控制台找到“安全组” → “入方向规则” → “添加规则”:
- 协议:TCP
- 端口:21
- 授权对象:0.0.0.0/0 或可信任办公网段
再添加一条放行被动模式端口的规则:
- 协议:TCP
- 端口:10000-10100
- 授权对象:与上一条保持一致
vsftpd配套配置项
listen_port=21
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10100
allow_writeable_chroot=YES 修改配置后执行 systemctl restart vsftpd 使其生效。若仍出现425 Unable to build data connection,大概率是数据端口未放行。
FTP连接不上云服务器怎么办
连接报错时按以下顺序排查:
- 检查本地能否
ping 通公网IP - 检查云服务器安全组是否放行21端口
- 检查vsftpd是否处于运行状态:
systemctl status vsftpd - 查看日志:
tail -f /var/log/vsftpd.log - 确认FTP账号密码无误,且未锁定在不可写目录
生产环境安全加固:FTP裸奔的时代已经结束
FTP明文账密暴露的具体风险
传统FTP基于RFC 959规范,账号和密码在网络上明文传输,同网段抓包工具可直接截获,根据中国信通院2025年云上资产基线检查公开结果,未启用TLS加密的FTP服务长期居于高危弱项排行榜前位。 2026年等保2.0扩展要求中,涉及文件传输的判定项同样指向“采用安全传输协议”。
FTP、FTPS、SFTP三者选型对比
| 协议 | 默认端口 | 加密方式 | 适用场景 |
|---|---|---|---|
| FTP | 21/20 | 无,明文 | 仅限内网或临时调试环境 |
| FTPS | 990/21 | TLS/SSL(RFC 4217) | 需要兼容老FTP客户端的公网传输 |
| SFTP | 22 | SSH内置加密 | 云服务器文件传输首选 |
权威视角与专家共识
IETF在RFC 4217中明确将FTP安全扩展定义为显式TLS协商;vsftpd作者Chris Evans在官方手册中给出了 ssl_enable=YES 的完整配置示例。主流公有云厂商的等保合规基线,均不建议公网直接暴露明文FTP。 若确需保留FTP,至少开启FTPS并限制来源IP。
把Linux云服务器文件传输梳理成一条可靠链路
回顾核心上文小编总结:本地Linux主机使用FTP上传文件到Linux云服务器,最稳妥路径是先获取正确公网IP作为ftp服务器主机地址,放行21及被动端口,再使用lftp的-u参数完成登录与上传。 对于长期运行的业务,将FTP替换为SFTP或FTPS,才能对齐2026年云安全基线要求。

常见问题
Q1:ftp服务器主机地址填公网IP还是内网IP?
本地Linux与云服务器不在同一VPC时,必须填公网IP,同一VPC且安全组互通时,可使用私网IP减少公网带宽占用并提升速度,切勿在公网场景下填写内网IP,否则会长时间卡在连接超时的状态。
Q2:为什么ftp连上了,但执行put时报550 Permission denied?
这是服务器写入权限不足,依次检查:vsftpd配置中的 write_enable=YES、上传目录是否归属于登录账号、目录权限是否为755或更高且属主正确,修改目录属主可执行 chown -R 用户名:组名 /data/wwwroot。
Q3:Linux命令行里如何快速断开FTP但不退出终端?
直接输入 bye 或 close 均可,若网络卡死,可按 Ctrl+[ 后输入 quit,在lftp环境中使用 exit 退出。
如果你正在云服务器上裸用FTP,欢迎在评论区说明你的实际传输场景,我可以给出无感替换SFTP的迁移动手清单。
参考文献
- Postel, J. & Reynolds, J. RFC 959: File Transfer Protocol. IETF, 1985.
- Ford-Hutchinson, P. RFC 4217: Securing FTP with TLS. IETF, 2005.
- Evans, C. vsftpd Official Documentation and Configuration Manual, 2024.
- 中国互联网络信息中心(CNNIC). 2026年中国互联网发展状况统计报告,2026年2月.
各位小伙伴们,我刚刚为大家分享了有关ftp服务器主机地址_本地Linux主机使用FTP上传文件到Linux云服务器的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复