我想检查我的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连接?
答案 0 :(得分:2)
主动/被动由客户端控制,而不是服务器。当客户端启动文件传输时,它决定是执行主动传输(PORT
还是EPRT
命令)还是执行被动传输(PASV
命令),因此模式可以是在每次转移的基础上指定。
默认情况下,FTP在端口21上运行,而不是在端口23上运行。您必须告诉telnet要连接的端口,例如:
o ftp.myftp.com 21
发送PASV
命令时,成功的响应代码始终为227,但遗憾的是,指定服务器侦听IP /端口的实际文本静态不是标准化的,因此不同的FTP服务器供应商之间存在差异。甚至在RFC 1123中提到了这一点:
227回复PASV命令的格式没有很好地标准化。特别是,FTP客户端不能假定RFC-959的第40页上显示的括号将出现(事实上,第43页的图3省略了它们)。因此,解释PASV回复的用户FTP程序必须扫描主机和端口号的第一个数字的回复。
RFC 1123还声明:
服务器-FTP必须实现PASV命令。