【问题标题】:Check if FTP server is passive or active using Telnet [closed]使用 Telnet 检查 FTP 服务器是被动还是主动[关闭]
【发布时间】:2014-01-18 15:43:27
【问题描述】:

我想检查我的 FTP 服务器是主动还是被动。我只有服务器名、用户名和密码。我试图调整这个链接来做到这一点 -FTP Detect if active or passive modes are enabled

我可以使用 GUI FTP 客户端连接到该服务器。但是,在 microsoft/windows telnet 中,我使用了命令o ftp.myftp.com。但是,我得到了错误 - Could not open connection to the host on port 23:connect Failed

如何解决这个问题并确定我的服务器是在进行主动还是被动 ftp 连接?

【问题讨论】:

  • Telnet 服务器使用端口 23。通过端口 21 与您的 FTP 服务器通信。
  • @HansPassant - 谢谢。这样可行。应该看到了 :( 但是,我很高兴你离开了 MS 论坛。如果可能的话,请让你在 MS 的朋友也这样做。他们可能会听你的,但他们不会听我的。:)

标签: windows ftp telnet


【解决方案1】:

主动/被动由客户端控制,而不是服务器。当客户端启动文件传输时,它决定是执行主动传输(PORTEPRT 命令)还是被动传输(PASV 命令),因此可以在每次传输时指定模式基础。

FTP 默认在 21 端口上运行,而不是在 23 端口上运行。您必须告诉 telnet 连接到哪个端口,例如:

o ftp.myftp.com 21

发送PASV 命令时,成功的响应代码始终为 227,但遗憾的是,指定服务器侦听 IP/端口的实际文本措辞并未标准化,因此不同 FTP 服务器供应商之间存在差异。 RFC 1123 中甚至提到了这一点:

对 PASV 命令的 227 回复格式没有很好的标准化。特别是,FTP 客户端不能假设 RFC-959 第 40 页上显示的括号会出现(事实上,第 43 页上的图 3 省略了它们)。因此,解释 PASV 回复的 User-FTP 程序必须扫描回复以查找主机和端口号的第一个数字。

RFC 1123 还声明:

服务器-FTP 必须实现 PASV 命令。

【讨论】:

  • 谢谢,但是在输入正确的用户并通过后,它说 - 530 请使用用户登录并通过。为什么 ?我在 Mozilla FTP 客户端中使用相同的用户、密码和服务器,并且可以正常工作。
  • Telnet.exe 对 FTP(或 Telnet 以外的任何其他协议)一无所知。连接到服务器后,您必须自己发出所有 FTP 命令。有多种登录 FTP 服务器的方法,具体取决于服务器的功能。如果服务器支持 SASL,您可以发出适当的AUTH 命令。否则,根据需要使用USERPASSACCT 命令。如果您连接到 FTP 代理,您甚至可能需要使用SITE 和/或OPEN 命令。
  • 查看 Mozilla 自己的日志,或者使用像 Wireshark 这样的数据包嗅探器,查看 Mozilla 发送的实际 FTP 命令,然后在 Telnet.exe 中复制这些命令。
  • 我可以通过使用 ftp 客户端,即 Mozilla 来查看该模式。可以在工具的文本窗口窗格中看到模式 PASV。
  • 这与登录用户帐户无关。同样,使用AUTHUSER/PASS/ACCT 命令执行登录。在日志中查找。
猜你喜欢
  • 2010-10-15
  • 1970-01-01
  • 1970-01-01
  • 2015-08-12
  • 2011-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-09
相关资源
最近更新 更多