FTP服务器连接已连接但没有响应

问题描述 投票:0回答:2

我正在使用vsftpd设置FTP服务器。为了测试它,我使用ftplib建立了FTP连接:

connection = ftplib.FTP(host)
connection.login(user=username, passwd=password)

并使用以下命令检查是否已连接:

connection.voidcmd("NOOP")

但是,执行几乎所有操作似乎都不起作用。例如:

connection.nlst()

永远等待,然后超时。

通过ftp连接(ubunut),我看到消息:

进入被动模式(0,0,0,0,xxx,xxx)。

Filezilla可以工作,怎么可能?

ftp vsftpd
2个回答
1
投票

进入被动模式(0,0,0,0,xxx,xxx)。

服务器将无效的目标地址0.0.0.0作为数据连接的目标。这是由于服务器中的错误或配置错误。尝试连接到该错误的IP地址当然会失败。

某些客户端,例如FileZilla仍然可以使用,因为它们只是忽略给定的IP而仅使用端口。这种行为是有道理的,因为在FTP的最常用用法(单个客户端和单个服务器之间的直接传输)中,数据连接的目标IP地址将与控制连接的目标IP地址相同,即,两者都是IP连接的IP服务器。这也反映在较新的命令EPSVEPRT中,它们仅指定端口,而不再指定IP地址。


0
投票

问题是被动连接无法正常工作。这可能是因为:

  1. vsftpd.conf中未定义被动地址:pasv_address =`
  2. listenlisten_ipv6都在vsftpd.conf中定义

以防万一,还要检查是否在防火墙规则下没有打开被动端口

© www.soinside.com 2019 - 2024. All rights reserved.