我试图使用主动模式从FTP服务器下载文件。但是,看起来我的连接只是"到期"或者每一次。首先,我使用netcat在我的计算机上打开一个端口,例如:
nc -vv -l -p 62077
这将侦听我的计算机上的端口62077.然后,我打开另一个netcat窗口,使用端口21登录到FTP链接,并且一旦我在我想要的文件所在的目录中,我做
PORT (my IP separated by , ),(242,125(wich equals to port 62077)\r\n
但是,在我输入此命令后,大约10-15秒没有任何事情发生,并且netcat只是退出而没有说什么。在正在侦听端口62077的netcat窗口上都没有发生任何事情。我每次都这样做,我不这样做知道我做错了什么。我对Filezilla做了同样的事情(在主动模式下)并用wireshark检查了命令,我做了与Filezilla完全相同的命令,但是filezilla将能够检索文件而netcat不会。我想要用netcat检索它,我不知道我做错了什么。我正在使用Windows 10。
谢谢你!答案 0 :(得分:0)
在您发送nc
,USER
和PASS
命令后建立了监听PORT
套接字,和之后, 然后需要使用触发文件传输到该侦听套接字,例如:
RETR /path/to/file/to/download
在控制连接上。 (除非你 已经已经这样做了,但是在帖子中没有提到它?)
另外,请注意:你提到使用这样的东西:
PORT 1,2,3,4,(242,125)\r\n
右?那些括号可能也是个问题。相反,您可以尝试:
PORT 1,2,3,4,242,125\r\n
没有任何括号。
现在,根据您发送的IP地址(希望不是private network地址),由于客户端的防火墙/路由器/ NAT,数据传输可能仍然不会发生。鉴于你的同一文件的Filezilla下载有效,我怀疑那些防火墙/路由器/ NAT问题可能不适用。
希望这有帮助!