温馨提示×

怎样调试debian vsftp

小樊
39
2026-09-10 21:56:33
栏目: 智能运维

下面按常见场景给你一套在 Debian 上调试 vsftpd 的实用方法,从“看日志 → 查配置 → 验证连接”一步步来。


一、基础检查

1. 确认 vsftpd 是否安装并运行

dpkg -l | grep vsftpd
systemctl status vsftpd

如果没有运行:

systemctl start vsftpd
systemctl enable vsftpd

二、开启并查看日志(最重要)

2. 修改 vsftpd 配置

编辑配置文件:

sudo nano /etc/vsftpd.conf

确保有以下内容:

xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
log_ftp_protocol=YES
debug_ssl=YES   # 如果用 FTPS

重启服务:

sudo systemctl restart vsftpd

3. 实时查看日志

tail -f /var/log/vsftpd.log

或通用日志:

tail -f /var/log/syslog | grep vsftpd

三、常见故障与调试方法

4. 登录失败(530 / 500)

检查:

  • 用户是否被锁定
  • PAM 认证是否正常
sudo nano /etc/vsftpd.conf

常见设置:

local_enable=YES
write_enable=YES
pam_service_name=vsftpd

检查用户是否允许登录:

grep 用户名 /etc/passwd
cat /etc/ftpusers

5. 被动模式(PASV)连不上

客户端卡在“列出目录”:

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=你的公网IP

防火墙放行:

sudo ufw allow 20:21/tcp
sudo ufw allow 30000:31000/tcp

6. 防火墙 / SELinux(Debian 默认无 SELinux)

检查端口:

ss -tulnp | grep ftp

7. 用命令行调试连接

ftp localhost

或测试被动模式:

ftp -p localhost

更详细:

lftp -d ftp://user@localhost

四、TLS / FTPS 调试

ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

测试:

openssl s_client -connect localhost:21 -starttls ftp

五、最小化可调试配置示例

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
xferlog_enable=YES
log_ftp_protocol=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

六、如果还不行,请提供

  • Debian 版本
  • vsftpd 版本
  • 错误截图或日志
  • 主动/被动模式
  • 是否用 FTPS

我可以直接帮你定位问题。

0