温馨提示×

debian ftpserver怎样排错

小樊
43
2026-10-06 18:40:49
栏目: 智能运维

在 Debian 上排查 FTP Server 问题,通常可以按下面几个层次来一步一步来。下面以最常见的 vsftpd为例,如果你用的是 proftpd / pure-ftpd 也可以类比。


一、先确认 FTP 服务是否安装并运行

1. 检查是否安装

dpkg -l | grep ftp

常见服务名:

  • vsftpd
  • proftpd
  • pure-ftpd

2. 查看服务状态

systemctl status vsftpd

或

service vsftpd status

如果没启动:

systemctl start vsftpd
systemctl enable vsftpd

二、检查监听端口

FTP 默认端口:

  • 21(控制端口)
  • 20(主动模式数据端口)

查看监听:

ss -tulnp | grep -E ':21|:20'

或

netstat -tulnp | grep ftp

如果没监听 21:

  • 服务没启动
  • 配置里改了端口
  • 被其他程序占用

三、查看日志(最关键)

Debian 日志位置

tail -f /var/log/syslog

vsftpd 专用日志(如果开启):

tail -f /var/log/vsftpd.log

常见错误示例:

  • connection refused → 服务没起 / 端口不对
  • login failed → 用户/密码/权限问题
  • refused to connect → 防火墙 / PASV 问题

四、防火墙与 SELinux(Debian 一般无 SELinux)

1. 防火墙

iptables -L -n

或(ufw):

ufw status

FTP 需要:

  • 21/tcp
  • PASV 端口范围(如 30000-31000)

开放示例:

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

五、主动模式 vs 被动模式(最容易出问题)

vsftpd 被动模式配置

vim /etc/vsftpd.conf

确保有:

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

改完重启:

systemctl restart vsftpd

客户端建议先用被动模式连接。


六、用户与权限问题

1. 用户是否存在

id ftpuser

2. 是否禁止登录

grep ftpuser /etc/passwd

shell 不能是 /sbin/nologin 除非配置允许

3. 目录权限

ls -ld /home/ftpuser

FTP 用户必须对目录有读写权限。


七、vsftpd 常见配置排错

是否允许本地用户登录

local_enable=YES
write_enable=YES

是否限制在家目录

chroot_local_user=YES
allow_writeable_chroot=YES

匿名登录

anonymous_enable=NO   # 建议关闭

八、用命令行测试连接

ftp localhost

或

ftp 服务器IP

看是否能:

  • 连接
  • 登录
  • 列目录
  • 上传/下载

九、快速排错清单(总结)

✅ 服务是否运行
✅ 端口是否监听
✅ 防火墙是否放行
✅ 被动模式是否配置
✅ 日志有无报错
✅ 用户权限是否正确


如果你愿意,可以把具体报错信息 + vsftpd.conf 配置 + 客户端现象发出来,我可以直接帮你定位是哪一步的问题。

0 踩