温馨提示×

ubuntu ftpserver怎样调试

小樊
47
2026-09-11 11:16:52
栏目: 智能运维

在 Ubuntu 上调试 FTP 服务器(常见的是 vsftpd,也可能是 proftpd / pure-ftpd),可以按下面思路逐步排查。


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

1. 查看是否安装

which vsftpd
# 或
dpkg -l | grep vsftpd

2. 查看服务状态

systemctl status vsftpd

如果没有运行:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

二、查看 FTP 服务日志(最重要)

vsftpd 日志位置

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

(如果没有,可能在 /var/log/syslog

sudo tail -f /var/log/syslog | grep ftp

常见错误示例

  • 530 Login incorrect
  • 500 OOPS: cannot change directory
  • Connection refused

三、检查防火墙与端口

1. 默认端口

  • FTP 控制端口:21
  • 被动模式端口(PASV):自定义范围

2. 防火墙放行

sudo ufw allow 21/tcp
sudo ufw status

如果是云服务器,还要在安全组放行 21 和 PASV 端口。


四、开启 vsftpd 调试模式

编辑配置文件:

sudo nano /etc/vsftpd.conf

建议打开:

listen=YES
log_ftp_protocol=YES
debug_ssl=YES      # 如果用 SSL
xferlog_enable=YES

重启服务:

sudo systemctl restart vsftpd

五、主动 / 被动模式问题(最常见)

被动模式配置(推荐)

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

并放行端口:

sudo ufw allow 30000:31000/tcp

客户端测试

ftp localhost

lftp localhost

六、用户与权限问题

1. 用户是否能登录

sudo cat /etc/passwd | grep ftpuser

2. 家目录权限

ls -ld /home/ftpuser

避免 777 权限(vsftpd 会拒绝):

chmod 755 /home/ftpuser

3. 是否限制用户

chroot_local_user=YES
allow_writeable_chroot=YES

七、使用命令行调试连接

测试端口

telnet localhost 21

查看详细过程

ftp -d localhost

八、常见错误速查

现象 原因
530 Login incorrect 用户被禁 / PAM 问题
500 OOPS 目录权限问题
无法列目录 被动端口未开
连接超时 防火墙 / 安全组

如果你能告诉我:

  • 用的是 vsftpd / proftpd / pure-ftpd
  • 报错信息截图或日志
  • 本地还是云服务器

我可以帮你精确定位问题。

0