ftp的主动模式和被动模式的配置和区别

lnlvinso lnlvinso     2022-11-06     717

关键词:

  原文链接: https://blog.csdn.net/zhangyuan12805/article/details/71425385

  

ftp模式分为主动模式(active mode)和被动模式(passive mode),ftp是tcp连接,所以要进行三次握手

1. active和passive模式的配置:

在命令行输入vim /etc/vsftpd/vsftpd.conf:

1> active mode:

pasv_enable=NO     (passive模式关闭)
pasv_min_port=3000
pasv_max_port=4000
port_enable=YES    (active模式开启)
connect_from_port_20=YES  (即默认情况下,FTP PORT主动模式进行数据传输时使用20端口(ftp-data)。YES使用,NO不使用。)

2>passive mode:

pasv_enable=YES
pasv_min_port=3000  
pasv_max_port=4000

设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表示任意(1024 – 65535端口)。默认值为0。把端口范围设在比较高的一段范围内,比如3000-4000。

 

在linux上,如果不配置pasv_enable=NO,默认是passive模式。

 

2.  service vsftpd restart 重启ftp服务;

3.  通过命令行连接ftp server:

1> active mode:   ftp -A 3.3.3.3   

active模式连接ftp server时一定要加-A

2> passive mode: 可以直接使用  ftp 3.3.3.3   也可以使用 ftp -p 3.3.3.3

 

4.   ftp client: 192.168.168.169   ftp server: 3.3.3.3

1> active 模式:

     在active模式下,如下图抓的包中,在命令连接部分(ftp类型的包),client端使用的端口是36439,这个端口是大于1024的任意端口,ftp server端用的端口是21:

如下图,在active模式下,要传输数据时,ftp client通过第23个包通过21号端口告诉server数据传输联系端口43187(大于1024的任意端口),并进行listen,server端用端口20主动和client端43187建立数据传输通道,并传输数据(第30,32,34个包)。这里是server知道了client端的数据通道监听端口后,主动建立了数据传输通道,所以是主动模式。

在active模式下,数据传输部分(FTP-DATA类型的包),ftp-server端用的端口是20,默认情况下,FTP PORT主动模式进行数据传输时使用20端口,ftp-client端用的是43187端口,是上一步client发给server的数据传输监听端口。

总结:active 模式

 passive 模式:

     在passive 模式下,如下图所抓的包中,在命令部分(ftp类型的包),client端使用的端口是36434,这个端口是大于1024的任意端口,ftp server用的端口是21.

 

在passive模式下,如下图的第28个包,是由client端发起PASV(passive mode)的数据传输通道连接请求,所以为被动模式

而在passive模式的数据传输部分(FTP-DATA类型的包),ftp-server端用的端口是3542,这个端口是在/etc/vsftpd/vsftpd.conf文件中passive模式下设置的端口范围(3000-4000,可以自己设置)中任意选的一个端口,ftp-client端用的是53001端口,是大于1024的任意一个端口。

总结:

passive模式

 

  

  一般来说,如果这个FTP服务器只对企业的内部局域网客户提供文件传输的服务,那么基本上两者的应用效果没有很大的差异。但是如果企业网络外部的用户也 需要通过互联网与FTP服务器进行文件传输的话,就会有很大的不同。这主要是因为,在数据通道建立的过程中,客户端会在另一个端口上监听等待连接,并利用 命令连接通道告诉服务器其监听的端口好。然后企业的边界路由器会将FTP的IP地址转换为合法的公网IP地址(假设企业由于公网IP地址有限,在边界路由 器上通过NAT服务向外部用户提供FTP连接)。如果此时采用的是自动操作模式的话,则在连接这个数据通道的过程中FTP服务器会主动跟边界路由器的端口 进行通信(因为FTP服务器认为这台边界路由器,其实就是NAT服务器,就是FTP客户段)。但是实际上不是,而且也有可能没有启用这个端口。为此客户端 与FTP服务器之间的连接最终没有建立起来。所以说,如果采用主动操作模式的话,当FTP服务器部署在NAT等服务器后面的时候,则FTP服务器与客户端 之间只能够建立命令连接通道,而无法建立起数据传输通道。如果FTP服务器与客户端之间还有防火墙的话,在连接的过程中也会出现以上类似的情况。 


   而如果是采用被动操作模式的话,是客户端主动跟服务期的20号端口进行连接的。为此在数据传输通道建立的过程中,即使中间有NAT服务器或者防火墙,也 会准确无误的连接到FTP服务器的数据传输接口。所以说,如果在客户端与FTP服务器之间存在防火墙或者NAT服务器等类似设备的话,那么在FTP服务器 部署的时候,最好采用被动操作模式。否则的话,很可能只能够建立命令连接通道,而无法进行数据传输。 
在 FTP服务器部署的时候,其默认采用的是主动操作模式。如果企业FTP服务器的用户都是在内部网络中的,即不用像外部网络的用户提供FTP连接的需求,那 么采用这个默认操作方式就可以了。但是如果一些出差在外的员工或者员工在家庭办公时也需要访问企业内部的FTP服务器,而此时出于安全的考虑或者公网IP 地址数量的限制,企业往往会把FTP服务器部署在防火墙或者NAT服务器的后面,此时这个主动操作模式就不行了。如果企业中通过互联网来访问企业内部 FTP服务器的员工比较多的时候,那么最好能够一劳永逸的解决这个问题,即在FTP服务器上进行设置,强制客户端在连接的时候采用被动操作模式。相反如果 用户比较少的话,而且用户又具有一定的计算机知识,那么可以不在服务器上进行设置。而是在连接的过程中,通过FTP客户端来设置。如在某些FTP客户端 上,会有一个Passive Transfers等类似的选项。选中这个选项就表示以被动操作方式进行传输。而没有选中这个选项的客户端则仍然采用主动操作模式来进行连接。

 
  总之,在FTP服务器部署的时候考虑是要采用主动操作模式还是被动操作模式,只需要记住一个原则,即如果把FTP服务器部署在防火墙或者NAT服务器的背 后,则采用主动操作模式的客户端只能够建立命令连接而无法进行文件传输。如果部署完FTP服务器后,系统管理员发现用户可以连接上FTP服务器,可以查看 目录下的文件,但是却无法下载或者上传文件,如果排除权限方面的限制外,那么很有可能就是这个操作模式选择错误。系统管理员告诉用户选择合适的操作模式, 基本上就可以解决文件传输的问题了。 

 

ftp主动模式和被动模式的区别

...口)。通常21端口是命令端口,20端口是数据端口。当混入主动/被动模式的概念时,数据端口就有可能不是20了。 主动模式FTP 查看详情

ftp主动模式和被动模式的区别(转)

...行连接一个ftp服务器时,没有指定模式,它默认使用的是主动模式(默认模式是哪种根据操作系统的不同而不同),导致登录时出错“ftp:bind:Addressalreadyinuse”,显 查看详情

ftp主动模式和被动模式的区别

...)。但FTP工作方式的不同,数据端口并不总是20。这就是主动与被动FTP的最大不同之处。 (一)主动FTP         主 查看详情

ftp的主动模式activemode和被动模式passivemode的配置和区别(代码片段)

共同点:客户端先发起命令连接。不同点:主动模式:服务端发起数据连接。客户端生成随机数据端口被动模式:客户端发起数据连接。客户端和服务端都是随机数据端口。客户端与服务器的命令连接服务器返回... 查看详情

ftp的主动模式和被动模式区别

主动模式的FTP工作原理:客户端从一个任意的非特权端口N连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令“portN+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定... 查看详情

ftp主动模式和被动模式的比较

总是记不住FTP主动和被动模式的区别。放在这里,以备日后查阅。 FTP是仅基于TCP的服务,不支持UDP。与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21(命令端口)... 查看详情

ftp的主动模式和被动模式的相关知识(代码片段)

FTP的主动模式和被动模式的相关知识。在使用FTP时,如果客户端机器和FTP服务器双方之间的所有端口都是开放的,那连接不存在问题。如果客户端与服务器之间有防火墙,如果没配置好防火策略和采用合适的连接模式,会导致登... 查看详情

ftp主动与被动模式区别

...)。但FTP工作方式的不同,数据端口并不总是20。这就是主动与被动FTP的最大不同之处。 (一)主动FTP         主 查看详情

ftp主动模式和被动模式的区别

...)。但FTP工作方式的不同,数据端口并不总是20。这就是主动与被动FTP的最大不同之处。(一)主动FTP主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户... 查看详情

如何设置ftp的主动模式和被动模式

设置FTP的主动模式和被动模式,用到的工具:8uftp,步骤如下:打开8uftp软件,点击编辑菜单--选项:2.防火墙设置,勾选被动(PASV)模式(p)就是被动模式,去掉勾选就是主动模式。注意事项:适用于8uftp.参考技术A在使用ftp的... 查看详情

如何设置ftp的主动模式和被动模式

...是因为ftp的模式不正确,如何设置ftp的工作模式,什么是主动模式,什么又是被动模式,主动模式和被动模式有什么区别,今天搜集了相关资料和常用ftp软件工作模式的设置的方法:一、什么是PASV和PORT方式(1)PORT其实是Standard... 查看详情

ftp传输中的主动模式和被动模式

...户端采用不同连接模式对网络有不同。在此重温一下FTP的主动模式和被动模式的相关知识。  在使用FTP时,如果客户端机器和FTP服务器双方之间的所有端口都是开放的,那连接不存在问题。如果客户端与服务器之间有防火... 查看详情

zabbix主动模式和被动模式的区别

...控主被动模式被动模式zabbix服务器从监控端拉数据,主动模式zabbixagent主动向服务器推数据。zabbix监控默认为被动模式,zabbixagent被动的接受ZabbixServer的监控指令并返回数据。zabbix主动模式为zabbixagent主动向zabbixServer发送... 查看详情

ftp的主动模式和被动模式,你应该用那种?

FTP文件传输分为两种模式,主动(PORT)模式和被动(Passive)模式,用户应该用哪种?-简单粗暴,直接上答案1)如果不是必须需要,不要使用FTP服务,主动/被动模式,命令/数据端口,初学者很容易一下子就被搞蒙。2)如果一定要使... 查看详情

什么是ftp主动模式和被动模式

...端口20,根据FTP工作方式的不同,数据端口也不都是20,主动模式的被动模式使用的数据端口是不一样的,下面我就一步一步介绍主动ftp模式和被动ftp模式的区别:一、什么是主动FTP主动模式的FTP工作原理:客户端从一个任意的... 查看详情

ftp服务的主动模式和被动模式

FTP在传输文件时有两种传输模式:被动模式和主动模式。1.主动模式FTP控制指令通过21/TCP端口传向服务器,文件下载通过大于1024/TCP的随机端口进行传输。下载文件时,FTP服务器(源端口为20/TCP)主动连接FTP客户端的随机端口进... 查看详情

ftp主动/被动模式+虚拟账号配置(代码片段)

...口)。通常21端口是命令端口,20端口是数据端口。当混入主动/被动模式的概念时,数据端口就有可能不是20了FTP的主动模式   主动模式下,FTP客户端从任意的非特殊的端口(N>1023)连入到FTP服务器的命令端 查看详情

ftp主动模式和被动模式

...转载别人的,所以我拿过来应该没问题吧(^^) (一)主动FTP主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP 查看详情