vsftpd与Ubuntu的协同工作指南
一 安装与系统服务管理
sudo apt update && sudo apt install vsftpdsudo systemctl start vsftpdsudo systemctl enable vsftpdsudo systemctl status vsftpd、sudo journalctl -u vsftpdsudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backuplisten=YES;仅 IPv6 环境可用 listen_ipv6=YES 并相应关闭 IPv4 监听,避免端口冲突。二 基本配置与权限控制
anonymous_enable=NO(禁用匿名)、local_enable=YES(允许本地系统用户)、write_enable=YES(允许写入/上传)、local_umask=022(默认权限掩码)chroot_local_user=YES(将本地用户限制在其主目录)、allow_writeable_chroot=YES(在 chroot 下允许写入,注意权衡安全)userlist_enable=YES、userlist_file=/etc/vsftpd.userlist(配合黑白名单使用)xferlog_enable=YES、xferlog_std_format=YES、connect_from_port_20=YESanonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022chroot_local_user=YESallow_writeable_chroot=YESlisten=YESxferlog_enable=YESconnect_from_port_20=YESsudo systemctl restart vsftpd;用 ss -an | grep 21 或 sudo lsof -iTCP:21 -sTCP:LISTEN 检查 21 端口监听;用客户端(如 FileZilla、lftp)测试登录与上传/下载。三 安全加固与加密传输
sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pemssl_enable=YESrsa_cert_file=/etc/ssl/private/vsftpd.pemrsa_private_key_file=/etc/ssl/private/vsftpd.pemsudo systemctl restart vsftpd;客户端连接时选择 FTPS(显式 AUTH TLS)。anonymous_enable=NOmax_clients=50、max_per_ip=5、idle_session_timeout=600、data_connection_timeout=30xferlog_enable=YES,并配置 logrotate 做日志轮转,避免日志无限增长。四 防火墙与网络连通
sudo ufw allow 21/tcpsudo ufw allow 20/tcpsudo ufw status(确认规则生效)sudo firewall-cmd --permanent --add-service=ftpsudo firewall-cmd --reload五 常见问题与排障要点
sudo apt-get remove vsftpd --purge && sudo apt-get update && sudo apt-get install vsftpdsudo chown -R ftpuser:ftpuser /path/to/home、sudo chmod -R 775 /path/to/homess -an | grep 21listen_ipv6=YES,确保未与 listen=YES 同时开启导致冲突sudo journalctl -u vsftpd -f