如何在Windows命令提示符下使用被动FTP模式?
在Ubuntu quote pasv中,被动模式可以正常工作。
在Windows中我该如何做?
我尝试使用quote pasv,但出现以下错误:
230 OK. Current restricted directory is /
ftp> quote pasv
227 Entering Passive Mode (31,170,167,221,116,239)
ftp> cd os
250 OK. Current directory is /os
ftp> dir
500 I won't open a connection to 10.23.16.248 (only to 113.193.128.177)
425 No data connection
ftp>
我的防火墙已禁用。
8个解决方案
46 votes
Windows FTP命令行客户端(quote pasv)在任何版本的Windows上均不支持被动模式。 由于无处不在的防火墙和NAT,如今它变得毫无用处。
使用quote pasv将无济于事。 它仅将服务器切换到被动模式,而不将客户端切换到被动模式。
请改用任何其他Windows FTP命令行客户端。 其他大多数支持被动模式。
例如,WinSCP默认为被动模式,并且提供了将Windows FTP脚本转换为WinSCP脚本的指南。
(我是WinSCP的作者)
Martin Prikryl answered 2020-06-21T21:09:16Z
38 votes
Windows实际上不支持被动模式。
您可以通过三种不同的方式将命令发送到服务器,但不会在Windows客户端上启用被动模式。
这些参数用于发送各种命令,并且pasv不是Microsoft编写它们时想到的东西。
您将必须找到诸如WinSCP之类的第三方软件,该软件支持命令行用法,并使用它代替Windows本机软件。
transilvlad answered 2020-06-21T21:09:49Z
11 votes
尽管这不能直接回答有关命令行的问题,但是从Windows操作系统中,请使用Windows资源管理器[ftp:// username @ server]
这将默认使用被动模式
对于命令行,活动模式是默认模式
Hammad answered 2020-06-21T21:10:18Z
8 votes
quote STOR 命令不是对quote RETR 程序的命令,它是对FTP服务器请求高阶端口进行数据传输的命令。 被动传输是一种FTP数据通过这些高阶端口进行传输,而控制权则保持在较低端口的传输方式。
Windows quote STOR 程序可用于发送FTP服务器命令,以在两个FTP服务器之间进行被动数据传输。 标准Windows安装不会(也可能不会)使FTP服务器服务作为被动传输的端点运行。 因此,如果需要使用标准Windows盒进行被动传输,则必须使用quote RETR 以外的解决方案,因为FTP传输到localhost的连接在大多数Windows环境中均不起作用。
您可以在两个不同的主机(但不能在同一主机上的两个连接)之间实现被动FTP传输:
打开两个提示,一个到quote STOR 连接到您的源FTP服务器,另一个到quote RETR 连接到您的目标FTP服务器。
现在,使用原始命令PASV和PORT在服务器之间建立被动连接。 quote STOR 命令将使用省略号的IP /端口进行响应。 将该数据用于quote RETR 命令。 现在,假设防火墙没有阻止四个端口中的一个或多个(2个用于FTP控制,2个用于FTP数据),则您的被动链接已建立。
接下来,使用quote STOR 命令开始将数据接收到接收方的FTP服务器,然后将控制命令quote RETR 发送到源FTP服务器。
所以对我来说:
client 1
> ftp.exe server1
ftp> quote PASV
227 Entering Passive Mode (10,0,3,1,54,161)
client 2
> ftp.exe server2
ftp> quote PORT 10,0,3,1,54,54,161
ftp> quote STOR myFile
client 1
ftp> quote RETR myFile
Cavet:我正在连接到一些旧的FTP服务器YMMV
Bruce Peterson answered 2020-06-21T21:11:10Z
6 votes
CURL客户端支持FTP协议并适用于被动模式。 下载没有SSL版本的下载,您不需要任何openssl.dll库。 只有一个curl.exe命令行应用程序。
[HTTP://呜呜呜.怕饿昏了.com/open_source/?curl_7.35.0]
curl.exe -T c:\test\myfile.dat ftp://ftp.server.com/some/folder/myfile.dat --user myuser:mypwd
另一个是Putty psftp.exe,但是服务器密钥验证提示需要技巧。 此命令行输入NO表示提示,这意味着该键仅在这次使用时才存储在注册表中。 您需要一个外部脚本文件,但是如果您上下复制多个文件,则有时会很好。
[HTTP://呜呜呜.吃啊人口.green end.org.UK/~说给她听蛤蟆/putty/download.HTML]
echo n | psftp.exe ftp.server.com -l myuser -pw mypwd -b script.txt
script.txt(可以键入任何ftp命令)
put "C:\test\myfile.dat" "/some/folder/myfile.dat"
quit
Whome answered 2020-06-21T21:11:48Z
1 votes
如果您使用的是Windows 10,请安装适用于Linux,WSL和Ubuntu的Windows子系统。
$ ftp 192.168.1.39
Connected to 192.168.1.39.
............
230 Logged in successfully
Remote system type is MSDOS.
ftp> passive
Passive mode on.
ftp> passive
Passive mode off.
ftp>
JaeMann Yeh answered 2020-06-21T21:12:08Z
0 votes
这是一个普遍的问题。当我们启动ftp连接时,只有外部ip打开用于pasv连接的端口。 但是NAT后面的IP无法打开连接,因此被动连接会因PASV命令而失败
我们需要指定在打开连接时使用
ftp -p {主机}
Ashutosh Raj answered 2020-06-21T21:12:37Z
-1 votes
FileZilla运作良好。 我使用支持被动模式的FileZilla FTP客户端“手动传输”。
例:打开FileZilla并选择“传输” >>“手动传输”,然后在“手动传输”窗口中执行以下操作:
确认选择了正确的“下载/上传”选项
对于远程:输入要下载文件的目录名称
对于远程:输入要下载的文件的名称
对于本地:浏览至要将文件下载到的所需目录
对于本地:输入文件名以将下载的文件另存为(与要下载的文件使用相同的文件名,除非要更改它)
复选框“立即开始传输”,然后单击“确定”
下载应立即开始
注意:如果您忘记了“立即开始传输”复选框...没问题:只需右键单击要下载的文件(在FileZilla窗口窗格底部的Process Queue(文件传输队列中),然后选择 “处理队列”
下载过程应立即开始
完成了
Ron Arndt answered 2020-06-21T21:13:46Z