Ubuntu FTP Server(以vsftpd为例)理论上支持无限大小的文件传输,但实际传输能力受服务器配置、操作系统限制及网络环境影响。
local_max_rate(本地用户)和anon_max_rate(匿名用户)参数控制传输速率(单位:字节/秒),设置为0表示无限制。若速率过低,大文件传输会因超时失败。/etc/security/limits.conf(用户级)和/etc/sysctl.conf(系统级)设置nofile(单个进程可打开的最大文件数)和fs.file-max(系统总文件打开数)。默认值较小(如nofile通常为1024),需调整为更大值(如nofile 65535),否则传输大文件时可能报“Too many open files”错误。pasv_min_port和pasv_max_port参数定义被动模式的端口范围(如pasv_min_port=6000、pasv_max_port=7000)。端口范围过小会导致并发传输失败,需根据并发需求扩大范围。net.ipv4.tcp_window_scaling(TCP窗口缩放)需设置为1(默认开启),以提升大文件传输的网络吞吐量。sudo nano /etc/vsftpd.conf
添加/修改以下参数:
# 启用被动模式并设置端口范围
pasv_enable=YES
pasv_min_port=6000
pasv_max_port=7000
# 无传输速率限制(根据需求调整,如100MB/s=104857600字节/秒)
local_max_rate=0
anon_max_rate=0
# 支持大文件
large_file_support=YES
# 允许本地用户写入
local_enable=YES
write_enable=YES
# 限制用户在其主目录(可选,提升安全性)
chroot_local_user=YES
allow_writeable_chroot=YES
# 编辑limits.conf(针对特定用户,如ftpuser)
sudo nano /etc/security/limits.conf
添加:
ftpuser hard nofile 65535
ftpuser soft nofile 65535
# 编辑sysctl.conf(系统级调整)
sudo nano /etc/sysctl.conf
添加:
net.ipv4.tcp_window_scaling=1
net.core.rmem_max=16777216
net.core.wmem_max=16777216
应用配置:
sudo sysctl -p
sudo systemctl restart vsftpd
通过以上配置,Ubuntu FTP Server可满足大多数大文件传输需求。若仍出现问题,需检查服务器日志(/var/log/vsftpd.log)定位具体原因(如权限不足、端口冲突)。