我在德国有一台运行 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 现在运行正常。
感谢大家的回复。