当前位置: 首页 > 工具软件 > Cmdftp > 使用案例 >

linux ftp cmd被动模式,如何在Windows命令提示符下使用被动FTP模式?

孙财
2023-12-01

如何在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

 类似资料: