在 Debian 上搭建/使用 FTPServer(通常指 vsftpd,也包括 proftpd、pure-ftpd)时,“报错”是一个比较笼统的问题。下面我按常见报错类型 → 原因 → 解决方法来系统说明,你可以对照自己的情况处理。
以下以 vsftpd 为主。
Job for vsftpd.service failedsystemctl status vsftpd
journalctl -xe
常见原因:
解决:
sudo apt install vsftpd
sudo systemctl restart vsftpd
检查端口:
sudo ss -tlnp | grep :21
典型错误:
vsftpd: config error: unknown directive
解决:
/etc/vsftpd.conf最小可用配置示例:
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
530 Login incorrect原因:
解决:
sudo usermod -s /bin/bash ftpuser
检查:
grep ftpuser /etc/passwd
vsftpd 配置:
local_enable=YES
pam_service_name=vsftpd
500 OOPS: cannot change directory原因:
解决:
sudo chmod 755 /home/ftpuser
sudo chown ftpuser:ftpuser /home/ftpuser
425 Failed to establish connection原因:
解决:
编辑 /etc/vsftpd.conf:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=你的公网IP
开放防火墙:
sudo ufw allow 30000:31000/tcp
云服务器还要在安全组放行。
SSL handshake failed原因:
解决:生成证书
sudo openssl req -x509 -nodes -days 365 \
-keyout /etc/ssl/private/vsftpd.key \
-out /etc/ssl/certs/vsftpd.crt
配置:
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
journalctl -u vsftpd
ftp localhost
请把具体报错信息贴出来,例如:
systemctl status vsftpd 输出/var/log/vsftpd.log我可以直接帮你定位是哪一类问题。