Linux 上的 FTP“无法检索目录列表”不是防火墙问题

Linux 上的 FTP“无法检索目录列表”不是防火墙问题

我在德国有一台运行 Debian X64 的 VPS。我遇到了一个非常奇怪的问题。

我已经使用 proftpd 安装了 ISPConfig CP,但无法通过任何方式连接到 FTP。

几个小时前,我在 CentOS 相同的 VPS 上安装了 DirectAdmin,遇到了相同的问题。

当我连接到 FTP 服务器时,我得到以下信息:

 Status:    Resolving address of web02.defikon.com
Status: Connecting to 130.255.190.71:21...
Status: Connection established, waiting for welcome message...
Response:   220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
Response:   220-You are user number 1 of 50 allowed.
Response:   220-Local time is now 12:15. Server port: 21.
Response:   220-This is a private system - No anonymous login
Response:   220-IPv6 connections are also welcome on this server.
Response:   220 You will be disconnected after 15 minutes of inactivity.
Command:    USER default1
Response:   331 User default1 OK. Password required
Command:    PASS ******
Response:   230-User default1 has group access to:  client0    sshusers  
Response:   230 OK. Current restricted directory is /
Command:    OPTS UTF8 ON
Response:   200 OK, UTF-8 enabled
Status: Connected
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/" is your current location
Command:    TYPE I
Response:   200 TYPE is now 8-bit binary
Command:    PASV
Error:  Connection timed out
Error:  Failed to retrieve directory listing

我甚至尝试过 telnet localhost 21,结果也是一样。一旦我发出命令“LIST”,就会超时。我试过所有方法,但还是无法让它工作 =(

请帮忙 !

PS:iptables已关闭。

答案1

FTP 使用多个端口。TCP 21 仅用于命令通道。当您执行目录列表时,您正在通过数据通道传输结果。

由于您使用的是被动模式,服务器将为数据通道打开一个随机高端口(> 1024),并且客户端必须打开到该端口的第二个 TCP 连接。

通常,在 PASV 命令之后,服务器应该回答

227 Entering Passive Mode (130,255,190,71, 4, 128)

这将告诉你的客户端,服务器 130.255.190.71 正在端口 (4*256 + 128)=1152 上监听你

因此: - 尝试获取原始消息,包括来自服务器的答复(对 PASV 命令的响应) - 再次检查防火墙规则

答案2

如果您和您的 FTP 服务器都在防火墙后面,FTP 将无法工作。虽然可以让它工作,但它很脆弱,而且需要活鸽子和巫毒粉。

您可能会看到是否可以使用 SFTP,它将使用加密连接进行连接并且可以与双防火墙配合得很好(我在我的系统中使用它)。

如果您可以通过 ssh 进入机器,那么您可以使用 rsync、sftp 和 scp 来回移动文件,甚至是完整的子目录树。sftp 与 ftp 非常相似,只是通过 ssh/ssl 链接。

我知道您使用的是 VPN,但加密绝不会造成任何损害,而且 FTP 会以明文形式广播所有内容。(我想 stunnel 可以提供帮助,但……ftp 太旧了,无法与防火墙很好地兼容。)

答案3

问题昨天已经修复。FTP 问题是由 SolusVM 错误引起的。问题已修复,FTP 现在运行正常。

感谢大家的回复。

相关内容