vsftpd(Very Secure FTP Daemon)是Ubuntu上常用的FTP服务器软件,通过以下命令安装:
sudo apt update
sudo apt install vsftpd
安装完成后,编辑vsftpd的主配置文件/etc/vsftpd.conf(使用nano或vim均可):
sudo nano /etc/vsftpd.conf
修改以下关键配置(取消注释或新增):
anonymous_enable=NO:禁止匿名用户登录(提升安全性);local_enable=YES:允许本地系统用户登录FTP;write_enable=YES:允许FTP用户上传/修改文件;chroot_local_user=YES:将用户限制在其主目录(防止访问系统其他目录);allow_writeable_chroot=YES:允许chroot目录可写(避免用户无法上传文件到自己的目录);listen=YES:启用独立模式(仅监听IPv4);listen_ipv6=NO:禁用IPv6(如需使用可设为YES)。保存并退出配置文件(Ctrl+X→Y→Enter)。
使用adduser命令创建专用于FTP的系统用户(以ftpuser为例):
sudo adduser ftpuser
按提示设置密码(建议使用强密码)及其他信息(如姓名、邮箱等,可直接按Enter跳过可选项)。
确保FTP用户的主目录(默认为/home/ftpuser)权限正确,允许用户访问和写入:
sudo chown ftpuser:ftpuser /home/ftpuser # 将目录所有者设为ftpuser
sudo chmod 755 /home/ftpuser # 设置目录权限(所有者可读写执行,其他用户可读执行)
若需允许用户上传文件到主目录,可将权限放宽至775(需谨慎,避免过度开放):
sudo chmod 775 /home/ftpuser
配置生效后,重启vsftpd服务使更改生效:
sudo systemctl restart vsftpd
如需设置开机自启,可运行:
sudo systemctl enable vsftpd
若服务器启用了ufw防火墙,需开放FTP默认端口(21)及被动模式端口范围(如1024-1048):
sudo ufw allow 21/tcp # FTP控制连接端口
sudo ufw allow 1024:1048/tcp # FTP被动模式数据端口范围
sudo ufw reload # 重新加载防火墙规则
使用FTP客户端(如FileZilla)或命令行工具测试连接:
ftp localhost
输入FTP用户名(ftpuser)和密码,验证是否能正常登录及上传/下载文件。sudo systemctl enable ssh)即可,无需额外安装软件。vsftpd.conf中添加:pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
并确保防火墙开放了对应的端口范围。chroot_local_user=YES可将用户限制在主目录,如需允许多个用户共享目录,可创建专用目录并设置适当的权限(如chmod 777 /var/ftp/shared)。