在Debian/Ubuntu系统上,使用以下命令安装:
sudo apt update && sudo apt install vsftpd
在CentOS/RHEL系统上,使用以下命令安装:
sudo yum install vsftpd
编辑主配置文件/etc/vsftpd.conf
(建议修改前备份):
sudo nano /etc/vsftpd.conf
修改或添加以下核心配置(按需调整):
local_enable=YES
(允许系统用户通过FTP登录);write_enable=YES
(开启上传权限);chroot_local_user=YES
(将用户限制在自己的家目录,如/home/username
);allow_writeable_chroot=YES
(避免“只读目录”错误);pasv_enable=YES
、pasv_min_port=1024
、pasv_max_port=1048
(设置被动模式端口范围)。保存配置后,重启vsftpd服务使更改生效:
sudo systemctl restart vsftpd
允许FTP服务(端口21)和被动模式端口范围通过防火墙:
sudo ufw allow 21/tcp
sudo ufw allow 1024:1048/tcp # 被动模式端口范围
sudo ufw reload
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --add-port=1024-1048/tcp
sudo firewall-cmd --reload
使用系统自带的ftp
命令连接服务器:
ftp 服务器IP地址
输入用户名和密码完成登录(如本地用户test
,则输入test
及对应密码)。
若需更便捷的命令行工具,可安装ncftp
:
sudo apt install ncftp # Debian/Ubuntu
sudo yum install ncftp # CentOS/RHEL
使用ncftp
连接:
ncftp 服务器IP地址
ftp客户端:
登录后,使用put
命令上传文件:
ftp> put 本地文件路径 远程文件路径
示例:将本地的/home/test/file.txt
上传到服务器当前目录(如/home/test
),命令为:
ftp> put /home/test/file.txt file.txt
若需保留本地文件名,可省略远程文件名:
ftp> put /home/test/file.txt
ncftp客户端:
登录后,直接使用put
命令(用法与ftp类似):
ncftp> put /home/test/file.txt
或批量上传目录(递归):
ncftp> mput -r /home/test/directory/
ftp客户端:
登录后,使用get
命令下载文件:
ftp> get 远程文件路径 本地文件路径
示例:将服务器当前目录的file.txt
下载到本地的/home/localuser/
目录,命令为:
ftp> get file.txt /home/localuser/file.txt
若需保留远程文件名,可省略本地文件名:
ftp> get file.txt
ncftp客户端:
登录后,使用get
命令(用法与ftp类似):
ncftp> get file.txt
或批量下载目录(递归):
ncftp> mget -r directory/
write_enable=YES
是否设置);allow_writeable_chroot=YES
是否设置);df -h
查看磁盘空间)。sudo systemctl status vsftpd
检查服务状态,未启动则sudo systemctl start vsftpd
)。pasv_min_port
和pasv_max_port
设置(如1024-1048),并在防火墙中开放该范围。通过以上步骤,即可完成vsftpd的文件上传下载操作。建议优先使用SFTP(基于SSH的加密协议)替代FTP,提升数据传输安全性。