FTP 检测是否启用了主动或被动模式

4 投票
1 回答
8747 浏览
提问于 2025-04-16 03:17

关于Twisted,我想知道我连接的服务器是否支持主动模式或被动模式。可以参考这个API

如果有人能解释一下,或者给个例子,说明在FTP协议中,怎么判断服务器是否支持主动模式或被动模式,那就太好了。

1 个回答

5

被动模式是通过向服务器发送 PASV 命令来启用的。如果服务器在收到这个命令后返回一个错误代码(应该是 500 Unknown command),那么就说明它不支持被动模式。如果服务器返回 227 Entering Passive Mode,那么就说明它支持被动模式。

下面是一个使用命令行 telnet 和 FTP 命令的示例:

% telnet ftp.mozilla.org 21
Trying 63.245.208.138...
Connected to dm-ftp01.mozilla.org.
Escape character is '^]'.
220-  [greeting omitted]
USER anonymous
331 Please specify the password.
PASS jathanism@
230-  [banner omitted]
230 Login successful.

好的命令(被动模式被支持):

PASV
227 Entering Passive Mode (63,245,208,138,202,53)

坏的命令(出现 500 错误):

FART
500 Unknown command.

撰写回答