Ubuntu FTP Server传输大文件的实用指南
一 方案选择与准备
- 在 Ubuntu 上常用且稳定的 FTP 服务器是 vsftpd(也可用 ProFTPD)。为提升大文件传输的稳定性与安全性,建议:
- 使用 被动模式(PASV),更适配 NAT/防火墙环境。
- 采用 FTPS(显式 SSL/TLS) 或 SFTP(基于 SSH) 进行加密传输。
- 客户端优先选择支持断点续传与多会话的工具(如 FileZilla)。
二 安装与核心配置
- 安装 vsftpd
- 执行:
sudo apt update && sudo apt install vsftpd
- 关键配置(/etc/vsftpd.conf,按需调整)
- 基础与权限
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
- 被动模式与端口范围(防火墙需放行对应端口)
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
- 加密(FTPS)
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
- 速率与文件处理
local_max_rate=0(不限制本地用户速率)
anon_max_rate=0
file_open_mode=0666
- 应用与验证
- 重启服务:
sudo systemctl restart vsftpd
- 查看状态:
sudo systemctl status vsftpd
- 可选:ProFTPD 要点(启用 TLS 与大文件模块)
- 安装:
sudo apt install proftpd
- 配置:在 /etc/proftpd/proftpd.conf 中启用
TLSRequired on
TLSCipherSuite HIGH:MEDIUM:+TLSv1.2
- 加载大文件模块:
<IfModule mod_largefile.c> LargeFileSupport on </IfModule>
- 重启:
sudo systemctl restart proftpd
三 防火墙与端口放行
- FTP 控制通道:放行 TCP 21。
- FTP 被动数据通道:放行 TCP 1024–1048(与 vsftpd.conf 中 pasv_min_port/pasv_max_port 一致)。
- 云服务器或边界防火墙需同步在云平台安全组放行上述端口范围。
- 若使用 SFTP(基于 SSH),放行 TCP 22。
四 客户端传输与优化
- 使用 FileZilla Client(Ubuntu 可安装:
sudo apt install filezilla)
- 站点管理器新建站点:
- 协议:选择 FTP – 要求使用显式 FTP over TLS(或 SFTP)。
- 主机:服务器 IP;端口:21(SFTP 为 22)。
- 登录类型:正常;输入用户名与密码。
- 传输大文件要点:
- 启用 被动模式(穿越 NAT/代理更稳)。
- 开启 断点续传(传输中断可从断点继续)。
- 适度提高 同时传输数/调整缓冲区(在“传输设置”中),可显著提升大文件吞吐。
- 其他优化建议
- 对海量小文件,先 打包压缩 再传,减少控制开销。
- 若网络环境复杂或安全性要求更高,优先考虑 SFTP。
五 常见问题排查与验证
- 连接或数据通道失败
- 核对防火墙/安全组是否放行 21 与 1024–1048;客户端是否使用 被动模式;证书是否受信任(FTPS)。
- 传输中断或速度异常
- 查看服务器日志定位问题:
sudo tail -f /var/log/vsftpd.log(或 ProFTPD 的日志);结合 top/htop 观察 CPU/内存/磁盘 I/O;必要时调整客户端并发与缓冲区。
- 速率受限
- 确认配置中
local_max_rate=0、anon_max_rate=0 未限速;检查是否有外部带宽/QoS 限制。
- 大文件完整性
- 传输完成后用
md5sum/sha256sum 校验本地与远端文件一致性。