在安装任何软件前,建议先更新系统包列表及已安装的软件包,确保系统处于最新状态:
sudo apt update && sudo apt upgrade -y
使用apt包管理器安装vsftpd(Debian默认仓库提供):
sudo apt install vsftpd -y
vsftpd的主配置文件位于/etc/vsftpd.conf,需备份原始文件后进行修改:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
sudo nano /etc/vsftpd.conf
关键配置项说明(根据需求调整):
anonymous_enable=NO # 禁止匿名用户登录(推荐)
local_enable=YES # 允许本地系统用户登录
write_enable=YES # 允许本地用户上传/修改文件
chroot_local_user=YES # 将用户限制在自己的主目录(增强安全性)
allow_writeable_chroot=YES # 允许chroot目录可写(解决“chroot目录不可写”错误)
pasv_enable=YES # 启用被动模式(PASV)
pasv_min_port=40000 # 被动模式最小端口(自定义范围)
pasv_max_port=50000 # 被动模式最大端口(自定义范围)
pasv_address=your_server_ip # 指定服务器公网IP(若服务器有公网IP)
local_umask=022 # 设置上传文件的默认权限掩码(755目录/644文件)
listen=YES # 启用独立模式(仅IPv4)
listen_ipv6=NO # 禁用IPv6(若无需IPv6)
修改完成后,按Ctrl+O保存、Ctrl+X退出编辑器。
创建专用FTP用户(避免使用root账户):
sudo adduser ftpuser
按提示设置密码及用户信息(如全名、邮箱等)。
创建FTP根目录并设置权限:
sudo mkdir -p /home/ftpuser/ftp # 创建FTP根目录(可自定义路径)
sudo chown ftpuser:ftpuser /home/ftpuser/ftp # 设置目录所有者
sudo chmod 755 /home/ftpuser/ftp # 设置目录权限(允许用户访问)
注:若需用户直接访问家目录(如
/home/ftpuser),可将local_root配置为/home/ftpuser(在vsftpd.conf中添加)。
启动vsftpd服务并设置为开机自启:
sudo systemctl start vsftpd # 启动服务
sudo systemctl enable vsftpd # 开机自启
sudo systemctl status vsftpd # 检查服务状态(确认“active (running)”)
若系统启用了ufw防火墙,需允许FTP相关端口通过:
sudo ufw allow 21/tcp # 允许FTP控制连接(默认端口)
sudo ufw allow 40000:50000/tcp # 允许被动模式数据端口范围(与配置文件一致)
sudo ufw reload # 重新加载防火墙规则
使用FTP客户端(如FileZilla)连接服务器:
ftpuser(步骤4创建的用户);21(默认);若能成功登录并上传/下载文件,则说明配置生效。
若需加密FTP传输(防止密码泄露),需生成SSL证书并修改配置:
生成自签名证书(有效期365天):
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/vsftpd.pem \
-out /etc/ssl/private/vsftpd.pem
修改配置文件(/etc/vsftpd.conf):
ssl_enable=YES # 启用SSL
allow_anon_ssl=NO # 禁止匿名用户使用SSL
force_local_data_ssl=YES # 强制数据传输加密
force_local_logins_ssl=YES # 强制登录加密
ssl_tlsv1=YES # 使用TLSv1协议
ssl_sslv2=NO # 禁用SSLv2
ssl_sslv3=NO # 禁用SSLv3
rsa_cert_file=/etc/ssl/private/vsftpd.pem # 证书路径
rsa_private_key_file=/etc/ssl/private/vsftpd.pem # 私钥路径
重启服务使配置生效:
sudo systemctl restart vsftpd
此时,客户端连接时需选择“FTPS”协议,并信任生成的证书。
以上步骤覆盖了vsftpd在Debian上的完整部署流程,可根据实际需求调整配置(如用户权限、端口范围、SSL加密等)。