`

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

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

    Centos 8 FTP服务器完美配置方案,实现多虚拟用户FTP连接,同时解决FTP PORT和PASV模式下,存在的问题。

    ftp.zip_FTP上传下载 PORT PASV

    实现ftp上传下载,支持PORT和PASV两种模式

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

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

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

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

    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被动模式分析,ftp抓包分析

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

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

    这是一个介绍在CentOS5.5上实现FTP服务及虚拟用户权限管理的服务器配置文档,由于虚拟用户不是系统用户,这样的FTP服务更加安全。

    ftp服务器源代码

    FTP 服务器端,可用作小型FTP服务器.C++ 编写,在VC++下编译,工程文档齐全,直接打开即可编译。 class CFtpd : public CSocket { // Attributes public: // Operations public: CFtpd(); virtual ~CFtpd(); //...

    FTP服务搭建以协议抓包分析实验*(markdown版)

    FTP服务搭建以协议抓包分析实验 一、实验环境 二、实验目的 三、实验步骤 1.什么是FTP? 2.... 3.... 4.连接FTP服务器 ... 5.1主动模式(PORT) 5.2被动模式(PASV) 5.3 两种模式的比较 四、实验总结

    vsftp这主被动模式的搭建文档

    FTP服务程序一般会支持两种不同的模式,一种是Port模式,一种是Passive模式(Pasv Mode),我先说说这两种不同模式连接方式的分别。 先假设客户端为C,服务端为S. Port模式: 当客户端C向服务端S连接后,使用的是Port...

    windows下搭建ftp服务器.docx

    FTP是用来在两台计算机之间传输文件,是Internet中应用非常广泛的服务之一。它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、...FTP协议有PORT和PASV两种工作模式,即主动模式和被动模式。

    ftp可登录但是无法下载,上传问题解决

    通过 passive 开启和关闭 PASV模式,再ls 也是同样的问题, # 主动模式 $ pftp -v -A -d 211.159.185.xxx Connected to 211.159.185.198 (211.159.185.xxx). 220 (vsFTPd 3.0.2) Name (211.159.185.xxx:...

    自己写的ftp服务端程序代码

    自己写的ftp服务端程序代码,支持{"USER", do_user }, {"PASS", do_pass }, {"CWD", do_cwd }, {"XCWD", do_cwd }, {"CDUP", do_cdup }, {"REIN", do_rein },//重新初始化,此命令终止USER,重置所有参数,控制...

    FTP客户端C源码(Linux版)

    N年前写的FTP客户端,练习程序,支持常用命令,支持PASV与PORT模式 对应的服务器端为: http://download.csdn.net/source/2724443

    Linux-FTP配置说明及安装源文件

    ftp工作方式分为两种,一种port主动模式,一种pasv被动模式,是服务主动与被动进行连接。一般ftp服务器都为被动模式 。 20.1.1 vsftp概述 rpm -qc vsftpd /etc/logrotate.d/vsftpd.log /etc/pam.d/vsftpd /*vsftp的...

    php的操作ftp类.zip

     @ftp_pasv($this-&gt;conn_id,1); // 打开被动模拟  }  function up_file&#40;$path,$newpath,$type=true&#41;  {  if($type) $this-&gt;dir_mkdirs($newpath);  $this-&gt;off = @ftp_put($this-&gt;conn_id,...

    linux ftp服务器

    以前写来练手的linux下的ftp服务器,C语言实现的,支持PORT和PASV模式,主要还是支持下载及部分ftp标准指令。可编译和可运行,代码比较简单和清晰,可帮助理解ftp协议。 如果去看

Global site tag (gtag.js) - Google Analytics