sudo apt update && sudo apt upgrade -y
sudo apt install vsftpd -y
vsftpd的主配置文件位于/etc/vsftpd.conf,需修改以下关键参数以优化安全性与功能性:
基础安全配置
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES  # 解决chroot后主目录不可写的问题
优化连接体验(可选但推荐)
pasv_enable=YES
pasv_min_port=10000  # 被动模式最小端口(可根据需求调整)
pasv_max_port=10100  # 被动模式最大端口
高级安全配置(可选)
ssl_enable=YES
allow_anon_ssl=NO    # 禁止匿名用户使用SSL
force_local_data_ssl=YES  # 强制数据传输加密
force_local_logins_ssl=YES # 强制登录过程加密
rsa_cert_file=/etc/ssl/private/vsftpd.pem  # SSL证书路径
rsa_private_key_file=/etc/ssl/private/vsftpd.pem  # 私钥路径
注:若未生成证书,可通过以下命令创建自签名证书(有效期365天):
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
修改完成后,按Ctrl+O保存文件,按Ctrl+X退出编辑器。
配置生效后,需重启服务使更改生效:
sudo systemctl restart vsftpd
设置开机自启动(确保服务器重启后FTP服务自动运行):
sudo systemctl enable vsftpd
若系统启用了UFW防火墙,需开放FTP相关端口(默认21端口用于控制连接,被动模式需额外开放端口范围):
sudo ufw allow 21/tcp       # FTP控制端口
sudo ufw allow 10000:10100/tcp  # 被动模式端口范围(需与配置文件中的pasv_min/max_port一致)
sudo ufw reload             # 重新加载防火墙规则
adduser命令创建专用FTP用户(避免使用root账户),并按提示设置密码。sudo adduser ftpuser
sudo mkdir -p /home/ftpuser/public_html  # 可选:创建专用上传目录
sudo chown ftpuser:ftpuser /home/ftpuser/public_html  # 设置目录所有者
sudo chmod 755 /home/ftpuser/public_html  # 设置目录权限
使用FTP客户端(如FileZilla、WinSCP或命令行工具)测试连接:
ftp <服务器IP地址>
输入用户名(如ftpuser)和密码,验证是否能成功登录。sudo systemctl status vsftpd),防火墙是否开放正确端口,配置文件语法是否正确(sudo vsftpd /etc/vsftpd.conf)。chmod 755 /home/username)。通过以上步骤,你可在Ubuntu上搭建一个安全、稳定的vsftpd FTP服务器,满足基本的文件传输需求。