温馨提示×

怎样调试debian ftpserver

小樊
46
2026-10-06 18:39:48
栏目: 智能运维

在 Debian 上调试 FTP 服务器,通常取决于你使用的是哪种 FTP 服务(常见的是 vsftpd、proftpd 或 pure-ftpd)。下面以最常见的 vsftpd 为例,系统讲一下调试思路和常用方法,最后也会提一下通用技巧。


一、确认 FTP 服务状态

systemctl status vsftpd

如果没运行:

systemctl start vsftpd
systemctl enable vsftpd

查看是否在监听端口:

ss -tlnp | grep 21
# 或
netstat -tlnp | grep 21

二、查看日志(最重要)

1. vsftpd 日志位置

通常有两个地方:

/var/log/vsftpd.log
/var/log/syslog

实时查看:

tail -f /var/log/vsftpd.log
tail -f /var/log/syslog

常见错误示例:

  • connection refused → 服务没起或防火墙
  • 530 Login incorrect → 用户/密码/PAM 问题
  • 500 OOPS → 配置错误

三、开启 vsftpd 调试模式

编辑配置文件:

vim /etc/vsftpd.conf

建议临时开启:

log_ftp_protocol=YES
debug_ssl=YES       # 如果用 FTPS
xferlog_std_format=NO

重启服务:

systemctl restart vsftpd

四、测试连接(客户端调试)

1. 命令行测试

ftp localhost

或显式调试:

ftp -d localhost

2. 被动/主动模式问题

如果是云服务器,常见问题是 被动模式端口未开放。

在 /etc/vsftpd.conf 中:

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

防火墙放行:

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

五、防火墙 & SELinux(Debian 一般无 SELinux)

防火墙

ufw status

如果用了 iptables:

iptables -L -n

云服务器安全组

  • 放行 21
  • 放行被动端口范围

六、用户与权限问题

本地用户无法登录

检查:

local_enable=YES
write_enable=YES

用户是否被锁:

passwd -S 用户名

家目录权限:

ls -ld /home/用户名

匿名用户

anonymous_enable=YES
anon_root=/srv/ftp

七、用 tcpdump 抓包(高级)

tcpdump -i eth0 port 21 -n -A

可以看到 FTP 命令交互过程。


八、其他 FTP 服务的简单说明

ProFTPD

systemctl status proftpd
/var/log/proftpd/proftpd.log

Pure-FTPd

systemctl status pure-ftpd
/var/log/syslog

九、快速排查清单 ✅

  • [ ] 服务是否运行
  • [ ] 端口是否监听
  • [ ] 防火墙/安全组
  • [ ] 日志有无错误
  • [ ] 主动/被动模式
  • [ ] 用户权限
  • [ ] 配置文件语法

如果你能告诉我:

  • 使用的 FTP 软件(vsftpd / proftpd / pure-ftpd)
  • 报错信息或现象(连不上 / 登录失败 / 卡在列表)

我可以给你更精确的调试命令。

0 踩