Linux vsftpd命令行操作效率提升指南
掌握vsftpd客户端的常用命令,可大幅简化日常文件传输流程:
ftp命令连接FTP服务器,格式为ftp [服务器IP/域名],例如ftp 192.168.1.100。连接后需输入用户名和密码认证。put命令将本地文件上传至服务器,格式为put [本地文件路径] [远程文件名],例如put /home/user/test.txt test.txt。get命令从服务器下载文件到本地,格式为get [远程文件路径] [本地文件名],例如get /var/ftp/pub/file.zip file.zip。mput *.txt(上传当前目录所有.txt文件)、mget *.jpg(下载服务器目录所有.jpg文件)。mkdir创建远程目录(如mkdir backups)、rmdir删除空目录(如rmdir old_backups)、delete删除文件(如delete temp.log)、rename重命名文件(如rename old.txt new.txt)。ls查看远程目录内容、pwd查看远程当前目录、lcd切换本地目录(如lcd /home/user/downloads)、bye或quit退出FTP会话。通过调整vsftpd配置文件(/etc/vsftpd.conf),可从根源优化服务器性能:
pasv_enable=YES(启用被动模式)、pasv_min_port=10000(设置被动模式最小端口)、pasv_max_port=10100(设置被动模式最大端口)。binary_transfer_mode=YES(默认启用,可省略)。max_clients=100(服务器最大并发连接数)、max_per_ip=5(单个IP最大并发连接数)。local_max_rate=102400(本地用户最大传输速率,单位:字节/秒,此处为100KB/s)、anon_max_rate=51200(匿名用户最大传输速率)。anonymous_enable=NO)、禁用ASCII模式(ascii_upload_enable=NO、ascii_download_enable=NO),减少服务器资源消耗。从操作系统层面调整参数,可进一步提升vsftpd的整体性能:
/etc/sysctl.conf文件,添加或修改以下参数,提升网络传输效率:net.core.rmem_max = 16777216 # 接收缓冲区最大值
net.core.wmem_max = 16777216 # 发送缓冲区最大值
net.ipv4.tcp_rmem = 4096 87380 16777216 # TCP接收缓冲区动态调整范围
net.ipv4.tcp_wmem = 4096 65536 16777216 # TCP发送缓冲区动态调整范围
net.ipv4.tcp_congestion_control = cubic # 使用CUBIC拥塞控制算法(适合高速网络)
net.ipv4.tcp_low_latency = 1 # 优先降低延迟
执行sudo sysctl -p使配置生效。/etc/security/limits.conf文件,添加以下内容:* soft nofile 65535 # 普通用户软限制
* hard nofile 65535 # 普通用户硬限制
root soft nofile 65535 # root用户软限制
root hard nofile 65535 # root用户硬限制
重新登录用户使配置生效。/var/ftp/pub)放在SSD上,提升文件读写速度;若传输大文件,可开启磁盘缓存(disk_cache=YES,vsftpd配置文件中)。lftp或ncftp比原生ftp命令更强大,支持断点续传、并行传输、脚本化操作。例如,lftp的mirror命令可快速同步远程目录到本地:lftp -u username,password 192.168.1.100
mirror --parallel=5 /remote/dir /local/dir # 并行下载5个文件
tail -f /var/log/vsftpd.log实时查看传输日志,使用awk、grep等工具分析传输效率(如找出传输慢的文件),及时优化配置。#!/bin/bash
ftp -n 192.168.1.100 <<EOF
quote USER ftpuser
quote PASS ftppassword
binary
lcd /backups
cd /remote/backups
put db_backup_$(date +%F).sql
bye
EOF