`

FTP状态代码说明及PORT模式和PASV模式比较

阅读更多
PORT模式和PASV模式

PORT模式下的FTP服务: 
缺省情况下PORT模式的数据端口是20, 控制端口是21(控制端口可以设定, 本文假定使用21)。 当进行连接时,客户端使用一个

随机的端口N(N大于1024)连接服务器的控制端口21, 然后客户端开始监听端口N+1,并向服务器发送命令 PORT N+1,服务器用自

己的数据端口20连回客户的N+1端口。 
由于PORT模式仅仅是发送端口给服务器,由服务器连回客户端,如果客户端有防火墙,这样的连接会被认为是外部主机试图连接内

部的主机, 通常情况下是不允许的。 
为了解决这个问题, 引入了PASV模式 

PASV模式下的FTP服务: 
当进行连接时,客户端使用一个随机的端口N(N大于1024) 
连接服务器的控制端口21, 并向服务器发送命令 PASV,服务器使用一个随机的数据端口M(M>1024)并发回客户端, 客户端用数据端

口N+1连接服务器的端口M。 
由于客户端发起数据连接, 这样就解决了防火墙带来的问题。 


FTP状态代码说明 

110 Restart marker reply. In this case, the text is exact and not left to the particular implementation; it must 

read: MARK yyyy = mmmm where yyyy is User-process data stream marker, and mmmm server's equivalent marker (note the 

spaces between markers and "=". 
重新启动标志回应。这种情况下,信息是精确的并且不用特别的处理;可以这样看:标记 yyyy = mmm 中 yyyy是 用户进程数据流

标记,mmmm是服务器端相应的标记(注意在标记和等号间的空格) 

120 Service ready in nnn minutes. 
服务在NNN时间内可用 

125 Data connection already open; transfer starting. 
数据连接已经打开,开始传送数据. 

150 File status okay; about to open data connection. 
文件状态正确,正在打开数据连接. 

200 Command okay. 
命令执行正常结束. 

202 Command not implemented, superfluous at this site. 
命令未被执行,此站点不支持此命令. 

211 System status, or system help reply. 
系统状态或系统帮助信息回应. 

212 Directory status. 
目录状态信息. 

213 File status. 
文件状态信息. 

214 Help message.On how to use the server or the meaning of a particular non-standard command. This reply is useful 

only to the human user. 
帮助信息。关于如何使用本服务器或特殊的非标准命令。此回复只对人有用。 

215 NAME system type. Where NAME is an official system name from the list in the Assigned Numbers document. 
NAME系统类型。 

220 Service ready for new user. 
新连接的用户的服务已就绪 

221 Service closing control connection. 
控制连接关闭 

225 Data connection open; no transfer in progress. 
数据连接已打开,没有进行中的数据传送 

226 Closing data connection. Requested file action successful (for example, file transfer or file abort). 
正在关闭数据连接。请求文件动作成功结束(例如,文件传送或终止) 

227 Entering Passive Mode (h1,h2,h3,h4,p1,p2). 
进入被动模式 

230 User logged in, proceed. Logged out if appropriate. 
用户已登入。 如果不需要可以登出。 

250 Requested file action okay, completed. 
被请求文件操作成功完成 

257 "PATHNAME" created. 
路径已建立 

331 User name okay, need password. 
用户名存在,需要输入密码 

332 Need account for login. 
需要登陆的账户 

350 Requested file action pending further information 
对被请求文件的操作需要进一步更多的信息 

421 Service not available, closing control connection.This may be a reply to any command if the service knows it 

must shut down. 
服务不可用,控制连接关闭。这可能是对任何命令的回应,如果服务认为它必须关闭 

425 Can't open data connection. 
打开数据连接失败 

426 Connection closed; transfer aborted. 
连接关闭,传送中止。 

450 Requested file action not taken. 
对被请求文件的操作未被执行 

451 Requested action aborted. Local error in processing. 
请求的操作中止。处理中发生本地错误。 

452 Requested action not taken. Insufficient storage space in system.File unavailable (e.g., file busy). 
请求的操作没有被执行。 系统存储空间不足。 文件不可用 

500 Syntax error, command unrecognized. This may include errors such as command line too long. 
语法错误,不可识别的命令。 这可能是命令行过长。 

501 Syntax error in parameters or arguments. 
参数错误导致的语法错误 

502 Command not implemented. 
命令未被执行 

503 Bad sequence of commands. 
命令的次序错误。 

504 Command not implemented for that parameter. 
由于参数错误,命令未被执行 

530 Not logged in. 
没有登录 

532 Need account for storing files. 
存储文件需要账户信息 

550 Requested action not taken. File unavailable (e.g., file not found, no access). 
请求操作未被执行,文件不可用。 

551 Requested action aborted. Page type unknown. 
请求操作中止,页面类型未知 

552 Requested file action aborted. Exceeded storage allocation (for current directory or dataset). 
对请求文件的操作中止。 超出存储分配 

553 Requested action not taken. File name not allowed 
请求操作未被执行。 文件名不允许 

这种错误跟http协议类似,大致是: 
2开头--成功 
3开头--权限问题 
4开头--文件问题 
5开头--服务器问题 


FTP中的两种工作方式

下面的文章介绍了FTP的两种模式和在实际工作中的一些注意事项和使用技巧,希望对大家有所帮助,并和大家一起来探讨、交流。
FTP是一种文件传输协议,它支持两种模式,一种方式叫做Standard (也就是 Active,主动方式),一种是 Passive (也就是PASV,被动

方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP server。Passive模式FTP的客户端发送 PASV命令到 FTP Server。
下面介绍一个这两种方式的工作原理:
Standard模式FTP 客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通

道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。 

FTP server必须和客户端建立一个新的连接用来传送数据。
Passive模式在建立控制通道的时候和Standard模式类似,当客户端通过这个通道发送PASV 命令的时候,FTP server打开一个位于

1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP server 将通过这个端口进行数据的传送,这个

时候FTP server不再需要建立一个新的和客户端之间的连接。 
现在的FTP软件里面包括在IE5以上的版本里面也已经支持这两种模式了。一般一些FTP客户端的软件就比较好设置了,一般都有一个

PASV的选项,比如CuteFTP,传输的方式都有Standard和PASV的选项,可以自己进行选择;另外在IE里面如果要设置成PASV模式的话

可以选中工具-Internet选项-高级-为FTP站点启用文件夹视图,否则就采用Standard模式。
很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以FTP的Standard模式在许多时候在内部网络的机器通过防火墙出去

的时候受到了限制,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。当然也可以设置成功,首

先要创建一条规则就是允许内部的IP连接外部的IP的21端口;第二条就是禁止外部IP的TCP 20端口连接内部IP的<1024的端口,这条

是为了防止外部连接内部的常规端口;第三条验证ACK是否等于1,这个的原理就参见TCP建立连接的三次握手吧。所以如果安全的配

置的话非常困难,这个时候就想起来了PASV模式,因为不用建立新的连接,所以也就不会涉及到后面的问题了。但是管理员可能不

想使用PASV模式,因为这个时候FTP Server会开放一个随机的高端口,尽管在IIS4和IIS5里面端口的范围是1024-5000,但是许多

FTP Server的端口范围达到了1024-65535,这个时候在这个主动开放的随机端口上是有完全的访问权限的,如果IIS也要设置成开

放的端口为1024-65535,具体方法如下:
1. regedt32
2. 找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 
3. 编辑-添加-数值
value Name: MaxUserPort Data Type: REG_DWORD value: 65534 
所以如果遇到了有防火墙的话或者怕配置麻烦的话还是采用PASV模式比较好些,但是如果真的对安全的需求很高的话建议采用Standard模式。

 

分享到:
评论

相关推荐

    ftp中主动模式(port)与被动模式(PASV)

    处理防火墙和其他网络连接问题时最常见的一个难题是主动FTP与被动FTP的区别以及如何完美地支持它们。幸运地是,本文能够帮助你清除在防火墙环境中如何支持FTP这个问题上的一些混乱。

    FTP服务器Port和Pasv模式释义.pdf

    FTP服务器Port和Pasv模式释义.pdf

    ftp.zip_FTP上传下载 PORT PASV

    总的来说,`ftp.zip`中的代码可能提供了一个实用的FTP客户端实现,支持PORT和PASV两种模式,适用于不同的网络环境,有助于进行高效且稳定的文件上传和下载操作。如果你正在学习FTP或进行相关开发,这两个文件将是一...

    c#ftp客户端 支持主动和被动模式

    c#ftp客户端 支持主动和被动模式,c#ftp客户端 主动模式 被动模 PORT PASV

    Centos 8 vsftpd多用户FTP服务器配置完美方案——同时解决PORT和PASV模式

    在CentOS 8系统中,配置vsftpd多用户FTP服务器,实现多虚拟用户FTP连接,并同时解决FTP PORT和PASV模式下的问题。 vsftpd简介 vsftpd是非常流行的FTP服务器软件,支持多种操作系统,包括CentOS、Ubuntu、Debian等。...

    serv_u要关闭被动模式(PASV),使用PORT模式才能连接FTP的解决办法

    解决方法二:(可使用 PASV 和 Port 两种模式连接) 服务器如果启用了防火墙,需要在防火墙上打开一些端口给FTP的PASV模式使用,否则使用PASV模式无法登录。 一、在 Serv-U的本地服务器 &gt; 设置 &gt; 高级 &gt; PASV 端口...

    FTP被动模式分析,ftp抓包分析

    FTP 的两种不同工作模式:PORT(主动模式)与PASV(被动模式) 1、首先,我们要了解,FTP 工作的时候,需要用到两个连接:控制连接与数据连接,控制 连接专门用于FTP 控制命令及命令执行信息传送;数据连接专门用于...

    ftp连接不上出现500 Invalid PORT Command.错误

    220 Microsoft FTP Service USER 123000 331 Password required for 123. PASS xxxxxx 230 User 123 logged in. SYST 215 Windows_NT PWD 257 "/" is current directory. TYPE A 200 Type set to A. PORT 192,168,1,...

    ftp源代码(c++)

    10. **协议扩展**:FTP有多种扩展,如ASCII和二进制模式的数据传输,被动模式(PASV)和主动模式(PORT)的设置,以及FTP-over-HTTP(WebDAV)等。 在压缩包中的`说明.htm`和`下载说明.txt`可能是对源代码的使用...

    服务器租用ftp应该注意什么.pdf

    服务器租用ftp注意事项 FTP(File Transfer Protocol)是服务器租用用户最常用的数据上传工具,但是对用户而言,理清FTP工具的使用...因为FTP的登录方式只有两种:PORT和PASV,取消PASV模式,就意味着使用PORT模式。

    ftp协议例子的源代码

    FTP(File Transfer Protocol)是互联网上用于在...理解其工作原理和模式,以及如何在Linux环境下编写和使用FTP客户端,对IT专业人士来说是至关重要的技能。通过分析提供的源代码,可以进一步加深对这一过程的理解。

    CentOS5.5上配置ftp虚拟用户服务

    在CentOS 5.5操作系统中配置FTP服务并采用虚拟用户进行权限管理,可以提高系统的安全性,因为虚拟用户不直接对应于系统用户。以下是一个详细的步骤指南,涵盖了从安装依赖库到配置FTP服务以及创建虚拟用户的整个过程...

    IIS下FTP服务器的PASV端口范围修改方法

    在FTP通信过程中,有两种主要的数据传输方式:主动模式(PORT)和被动模式(PASV)。被动模式下,客户端向服务器发起请求时,服务器会从指定的端口范围内选择一个未使用的端口与客户端建立连接。如果这个端口范围过大,...

    FTP工作模式

    "FTP工作模式" FTP(File Transfer Protocol)是一种常用的...在实际应用中,FTP服务器模式都是同时支持port和pasv两种方式,但是为了方便管理安全管理防火墙和设置ACL,了解FTP Server的port和pasv模式是很有必要的。

    ftp简单应用源代码,支持ftp文件上传和下载,对理解ftp协议有帮助

    3. **FTP命令**:FTP客户端通过发送各种命令来与服务器交互,如`USER`、`PASS`(身份验证)、`CWD`(改变工作目录)、`LIST`(列出目录内容)、`RETR`(下载文件)、`STOR`(上传文件)、`PASV`(被动模式)和`PORT`...

    ftp源代码C#实现

    FTP协议分为两种模式:主动模式(PORT)和被动模式(PASV)。主动模式下,客户端打开一个数据连接到服务器,而被动模式则是服务器主动打开一个端口与客户端建立连接。在C#中,通过设置FtpWebRequest对象的UsePassive...

    linux-FTP客户端(纯C代码)

    2. **FTP命令协议**:FTP基于ASCII文本协议,客户端发送命令如`USER`、`PASS`、`PORT`、`PASV`、`LIST`、`RETR`(下载)和`STOR`(上传)等,服务器则返回相应的响应。例如,登录过程需要先发送用户名,然后发送密码...

    FTP服务器C++源代码

    5. **数据传输**:FTP协议有两种传输模式,主动模式(PORT)和被动模式(PASV)。在主动模式下,客户端告诉服务器一个端口,服务器直接连接到这个端口进行数据传输。被动模式下,服务器开启一个随机端口并告知客户端...

    ftp代码上传工具

    FTP有两种工作模式:主动模式(PORT)和被动模式(PASV)。主动模式中,客户端指定一个端口供服务器回连;被动模式下,服务器打开一个随机端口并告知客户端,客户端随后连接这个端口进行数据传输。 FileZilla简介:...

Global site tag (gtag.js) - Google Analytics