1.如何设置FTP的主动模式和被动模式
一、什么是主动FTP
主动模式的FTP工作原理:客户端从一个任意的非特权端口N连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。
针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:
1、任何大于1024的端口到FTP服务器的21端口。(客户端初始化的连接)
2、FTP服务器的21端口到大于1024的端口。 (服务器响应客户端的控制端口)
3、FTP服务器的20端口到大于1024的端口。(服务器端初始化数据连接到客户端的数据端口)
4、大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口)
二、什么是被动FTP
为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。
在被动方式FTP中,命令连接和数据连接都由客户端发起,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。
当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:
1、从任何大于1024的端口到服务器的21端口(客户端初始化的连接)
2、服务器的21端口到任何大于1024的端口(服务器响应到客户端的控制端口的连接)
3、从任何大于1024端口到服务器的大于1024端口(客户端初始化数据连接到服务器指定的任意端口)
4、服务器的大于1024端口到远程的大于1024的端口(服务器发送ACK响应和数据到客户端的数据端口)
以上关于主动和被动FTP的解释,可以简单概括为以下两点:
1、主动FTP:
命令连接:客户端 >1024端口 ->; 服务器 21端口
数据连接:客户端 >1024端口 <;- 服务器 20端口
2、被动FTP:
命令连接:客户端 >1024端口 ->; 服务器 21端口
数据连接:客户端 >1024端口 ->; 服务器 >1024端口
三、主动模式ftp与被动模式FTP优点和缺点:
主动FTP对FTP服务器的管理和安全很有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。
2.如何设置FTP的主动模式和被动模式
FTP是文件传输协议的简称,ftp传输协议有着众多的优点所以传输文件时使用ftp协议的软件很多,ftp协议使用的端口是21(也称为控制端口),其实还有一个数据端口20,根据FTP工作方式的不同,数据端口也不都是20,主动模式的被动模式使用的数据端口是不一样的,下面我就一步一步介绍主动ftp模式和被动ftp模式的区别:
一、什么是主动FTP
主动模式的FTP工作原理:客户端从一个任意的非特权端口N连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。
针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:
1、任何大于1024的端口到FTP服务器的21端口。(客户端初始化的连接)
2、FTP服务器的21端口到大于1024的端口。 (服务器响应客户端的控制端口)
3、FTP服务器的20端口到大于1024的端口。(服务器端初始化数据连接到客户端的数据端口)
4、大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口)
二、什么是被动FTP
为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。
在被动方式FTP中,命令连接和数据连接都由客户端发起,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。
当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:
1、从任何大于1024的端口到服务器的21端口(客户端初始化的连接)
2、服务器的21端口到任何大于1024的端口(服务器响应到客户端的控制端口的连接)
3、从任何大于1024端口到服务器的大于1024端口(客户端初始化数据连接到服务器指定的任意端口)
4、服务器的大于1024端口到远程的大于1024的端口(服务器发送ACK响应和数据到客户端的数据端口)
以上关于主动和被动FTP的解释,可以简单概括为以下两点:
1、主动FTP:
命令连接:客户端 >1024端口 ->; 服务器 21端口
数据连接:客户端 >1024端口 <;- 服务器 20端口
2、被动FTP:
命令连接:客户端 >1024端口 ->; 服务器 21端口
数据连接:客户端 >1024端口 ->; 服务器 >1024端口
三、主动模式ftp与被动模式FTP优点和缺点:
主动FTP对FTP服务器的管理和安全很有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。
3.win10怎么修改ftp 设置
方法/步骤
1.首先在开始屏幕中打开“搜索”,输入“控制面板”,并打开;
2.在控制面板窗口中,找到“程序”,点击,
3.在打开的“程序”窗口中,找到“启用或关闭windows功能”,点击打开,如下图所示:
4.在“windows功能”中找到“Internet信息服务”,并选中“FTP服务”、“FTP扩展性”和“IIS管理控制台”前的复选框,点击“确定”,
5.系统自动配置成功后,在开始屏幕的搜索中输入“IIS”,然后点击打开“IIS管理器”
6.打开“IIS管理器”后,在左栏的“网站”上点击右键,打开“添加FTP站点”
7.然后按照提示填写站点信息
8.点击“下一步”,按照下图提示,设置“绑定和SSL设置”,在“IP地址”处,可以用内网IP也可以用外网IP,访客自然也就根据你的IP设定来决定;
9.点击“下一步”,设置“身份验证和授权信息”
10.设置完以后,点击“完成”,即可在左栏“网站”下看到“多了一个你设置的FTP站点”
11.然后在浏览器地址栏中输入“ftp://填写的IP”测试一下
END
注意事项
在启动你的FTP服务器时建议关闭防火墙。
4.如何为被动模式 FTP 服务器配置 Windows 防火墙
应用到: Windows 7, Windows Server 2003, Windows Server 2008, Windows Server 2008 R2, Windows Vista由于FTP 工作方式所致,在防火墙后的服务器上使用文件传输协议 (FTP) 服务会产生一系列的挑战。
通过打开到 TCP 端口号 21 的“命令通道”连接,标准模式 FTP 客户端会启动到服务器的会话。客户端通过将 PORT 命令发送到服务器请求文件传输。
然后,服务器会尝试启动返回到 TCP 端口号 20 上客户端的“数据通道”连接。客户端上运行的典型防火墙将来自服务器的此数据通道连接请求视为未经请求,并会丢弃数据包,从而导致文件传输失败。
Windows??Vista 和 Windows Server??2008 中的 高级安全 Windows 防火墙 支持有状态 FTP,该 FTP 允许将端口 20 上的入站连接请求与来自客户端的先前出站 PORT 命令相匹配。但是,如果您通过 SSL 使用 FTP 来加密和保护 FTP 通信,则防火墙不再能够检查来自服务器的入站连接请求,并且这些请求会被阻止。
为了避免此问题,FTP 还支持“被动”操作模式,客户端在该模式下启动数据通道连接。客户端未使用 PORT 命令,而是在命令通道上发送 PASV 命令。
服务器使用 TCP 端口号进行响应,客户端应连接到该端口号来建立数据通道。默认情况下,服务器使用极短范围(1025 到 5000)内的可用端口。
为了更好保护服务器的安全,您可以限制 FTP 服务使用的端口范围,然后创建一个防火墙规则:仅在那些允许的端口号上进行 FTP 通信。本主题将讨论执行以下操作的方法: 配置FTP 服务以便仅将有限数量的端口用于被动模式 FTP配置入站防火墙规则以便仅在允许的端口上进行入站 FTP 连接以下过程显示在 Internet 信息服务 (IIS) 7.0 版上配置 FTP 服务的步骤。
如果您使用其他 FTP 服务,请查阅产品文档以找到相应的步骤。配置对 SSL 的支持不在本主题的讨论范围之内。
有关详细信息,请参阅 IIS 文档。配置FTP 服务以便仅将有限数量的端口用于被动模式 FTP在IIS 7.0 管理器中的“连接”窗格中,单击服务器的顶部节点。
在细节窗格中,双击“FTP 防火墙支持”。输入您希望 FTP 服务使用的端口号的范围。
例如,41000-41099 允许服务器同时支持 100 个被动模式数据连接。输入防火墙的外部 IPv4 地址,数据连接通过该地址到达。
在“操作”窗格中,单击“应用”保存您的设置。还必须在 FTP 服务器上创建防火墙规则,以在前一过程中配置的端口上允许入站连接。
尽管您可以创建按编号指定端口的规则,但是,创建打开 FTP 服务所侦听的任何端口的规则更为容易。通过按前一过程中的步骤操作,您可限制 FTP 侦听的端口。
配置入站防火墙规则以便仅允许到 FTP 所侦听端口的入站 FTP 连接打开管理员命令提示符。依次单击「开始」、“所有程序”和“附件”,右键单击“命令提示符”,然后单击“以管理员身份运行”。
运行下列命令: netsh advfirewall firewall add rule name=”FTP Service” action=allow service=ftpsvc protocol=TCP dir=in 最后,禁用有状态 FTP 筛选,以使防火墙不会阻止任何 FTP 通信。 netsh advfirewall set global StatefulFTP disable。
5.如何判断ftp当前是主动模式 被动模式设置
FTP只通过TCP连接,没有用于FTP的UDP组件.FTP不同于其他服务的是它使用了两个端口, 一个数据端口和一个命令端口(或称为控制端口)。
通常21端口是命令端口,20端口是数据端口。当混入主动/被动模式的概念时,数据端口就有可能不是20了。
主动模式FTP:主动模式下,FTP客户端从任意的非特殊的端口(N > 1023)连入到FTP服务器的命令端口--21端口。然后客户端在N+1(N+1 >= 1024)端口监听,并且通过N+1(N+1 >= 1024)端口发送命令给FTP服务器。
服务器会反过来连接用户本地指定的数据端口,比如20端口。以服务器端防火墙为立足点,要支持主动模式FTP需要打开如下交互中使用到的端口:l FTP服务器命令(21)端口接受客户端任意端口(客户端初始连接)l FTP服务器命令(21)端口到客户端端口(>1023)(服务器响应客户端命令)l FTP服务器数据(20)端口到客户端端口(>1023)(服务器初始化数据连接到客户端数据端口)l FTP服务器数据(20)端口接受客户端端口(>1023)(客户端发送ACK包到服务器的数据端口)用图表示如下:在第1步中,客户端的命令端口与FTP服务器的命令端口建立连接,并发送命令“PORT 1027”。
然后在第2步中,FTP服务器给客户端的命令端口返回一个"ACK"。在第3步中,FTP服务器发起一个从它自己的数据端口(20)到客户端先前指定的数据端口(1027)的连接,最后客户端在第4步中给服务器端返回一个"ACK"。
主动方式FTP的主要问题实际上在于客户端。FTP的客户端并没有实际建立一个到服务器数据端口的连接,它只是简单的告诉服务器自己监听的端口号,服务器再回来连接客户端这个指定的端口。
对于客户端的防火墙来说,这是从外部系统建立到内部客户端的连接,这是通常会被阻塞的。主动FTP的例子:下面是一个主动FTP会话的实际例子。
当然服务器名、IP地址和用户名都做了改动。在这个例子中,FTP会话从 testbox1.slacksite.com (192.168.150.80),一个运行标准的FTP命令行客户端的Linux工作站,发起到testbox2.slacksite.com (192.168.150.90),一个运行ProFTPd 1.2.2RC2的Linux工作站。
debugging(-d)选项用来在FTP客户端显示连接的详细过程。红色的文字是 debugging信息,显示的是发送到服务器的实际FTP命令和所产生的回应信息。
服务器的输出信息用黑色字表示,用户的输入信息用粗体字表示。仔细考虑这个对话过程我们会发现一些有趣的事情。
我们可以看到当 PORT 命令被提交时,它指定了客户端(192.168.150.80)上的一个端口而不是服务器的。当我们用被动FTP时我们会看到相反的现象。
我们再来关注PORT命令的格式。就象你在下面的例子看到的一样,它是一个由六个被逗号隔开的数字组成的序列。
前四个表示IP地址,后两个组成了用于数据连接的端口号。用第五个数乘以256再加上第六个数就得到了实际的端口号。
下面例子中端口号就是((14*256) + 178) = 3762。我们可以用netstat来验证这个端口信息。
testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2Connected to testbox2.slacksite.com.220 testbox2.slacksite.com FTP server ready.Name (testbox2:slacker): slacker---> USER slacker331 Password required for slacker.Password: TmpPass---> PASS XXXX230 User slacker logged in.---> SYST215 UNIX Type: L8Remote system type is UNIX.Using binary mode to transfer files.ftp> lsftp: setsockopt (ignored): Permission denied---> PORT 192,168,150,80,14,178200 PORT command successful.---> LIST150 Opening ASCII mode data connection for file list.drwx------ 3 slacker users 104 Jul 27 01:45 public_html226 Transfer complete.ftp> quit---> QUIT221 Goodbye.。
6.独家:主动模式FTP与被动模式FTP该如何选择
FTP是一种文件传输协议,主要用来在不同的主机之间实现文件的传送。
通常情况下完成一个文件的传输需要有命令连接通道与数据连结通道两个通道。而建立这些通道的方法不同,又有主动模式与被动模式的区分。
在Linux操作系统上,vsFTPd是最常用的一个FTP软件,其支持这两种模式。为此系统管理员需要了解这两种连接模式的不同点,并在实际工作中根据企业的应用情况来选择合适的模式。
一、主动模式的实现与特点。 无论是主动模式还是被动模式,其要进行文件传输都必须依次建立两个连接,分别为命令连接与数据连结。
而主动模式与被动模式的差异主要体现在数据连结通道上。为了说明两者的差异,我将主要对这个数据连结进行比较详细的说明。
当FTP客户端需要登陆到FTP服务器上的时候,服务器与客户端需要进行一系列的身份验证过程,这个过程就叫做命令连接。如在客户端向服务器发起连接请求的时候,客户端会随即的选择某个TCP端口来跟FTP服务器的21号端口进行连接,这主要是通过TCP三方握手来实现的。
当三方握手完成之后,客户端与服务器之间便建立了命令连接通道。不过这个通道的用途是非常有限的,其主要用来传输FTP的相关指令。
如查看文件列表、删除文件等等,而不能够用来在客户端与服务端进行文件传输。为此这个通道就被称之为命令通道。
而跟数据传输相关的为数据通道。 到客户端与服务器建立了连接之后,可能客户端暂时不需要进行数据传输。
如只是需要查看目录下的文件或则其他相关的动作。此时之需要命令连接通道就可以完成了。
如果此时客户端需要往FTP服务器上上传或者下载文件的话,就需要在客户端与服务器端再建立一条额外的数据传输连接。当客户端发出数据传输的指令之后(如上传数据或者下载文件),客户端会启用另外一个端口监听等待连接,并利用先前建立的命令连接通道告诉FTP服务器其监听的端口号。
然后FTP服务器会利用端口20和刚才的FTP客户端所告知的端口再次进行三方握手。三次握手成功后便建立了一条数据传输通道。
注意此时数据连结通道建立的过程中,是FTP服务器的20号端口主动连接FTP客户端的,为此这种连接方式就叫做主动模式。 二、被动模式的实现与特点。
被动操作模式在建立命令连接通道的时候,跟主动操作模式是相同的。两者主要的差异就在于数据传输通道的建立上面。
但是如果用户需要进行数据传输的时候,则FTP客户端会通过命令通道告诉FTP服务器,如会向服务器发出一个PASV指令。这个指令就是告诉服务期,要采用被动模式建立连接。
如果采用被动操作模式,服务期会选择自身的一个端口来进行监听连接(而在主动操作模式下是利用客户端的一个端口来进行监听连接),并再次利用命令连接通道告诉客户端“我为你开启了哪个端口,你要建立数据连接的话就跟我的哪个端口联系”。客户端在接到这个信息后,就会在自己操作系统上选择一个数据连接的通信端口,与服务器提供的端口进行三方握手,并最终建立起可以进行数据传输的通道。
当企业的网络环境不同,两个操作模式的应用效果是不同的。这主要是主动操作模式与被动操作模式在数据的传输通道建立上有一定的差异。
从以上的分析中我们可以看出,在主动操作模式下,FTP服务器的20号端口是主动同客户端联系,建立数据传输通道的。而在被动操作模式下,则FTP服务器是被动的等待,等待客户段与其的20号端口建立连接。
不要小看这个细小的差异,这个差异却决定了两者应用环境的不同。 一般来说,如果这个FTP服务器只对企业的内部局域网客户提供文件传输的服务,那么基本上两者的应用效果没有很大的差异。
但是如果企业网络外部的用户也需要通过互联网与FTP服务器进行文件传输的话,就会有很大的不同。这主要是因为,在数据通道建立的过程中,客户端会在另一个端口上监听等待连接,并利用命令连接通道告诉服务器其监听的端口好。
然后企业的边界路由器会将FTP的IP地址转换为合法的公网IP地址(假设企业由于公网IP地址有限,在边界路由器上通过NAT服务向外部用户提供FTP连接)。如果此时采用的是自动操作模式的话,则在连接这个数据通道的过程中FTP服务器会主动跟边界路由器的端口进行通信(因为FTP服务器认为这台边界路由器,其实就是NAT服务器,就是FTP客户段)。
但是实际上不是,而且也有可能没有启用这个端口。为此客户端与FTP服务器之间的连接最终没有建立起来。
所以说,如果采用主动操作模式的话,当FTP服务器部署在NAT等服务器后面的时候,则FTP服务器与客户端之间只能够建立命令连接通道,而无法建立起数据传输通道。如果FTP服务器与客户端之间还有防火墙的话,在连接的过程中也会出现以上类似的情况。
而如果是采用被动操作模式的话,是客户端主动跟服务期的20号端口进行连接的。为此在数据传输通道建立的过程中,即使中间有NAT服务器或者防火墙,也会准确无误的连接到FTP服务器的数据传输接口。
所以说,如果在客户端与FTP服务器之间存在防火墙或者NAT服务器等类似设备的话,那么在FTP服务器部署的时候,最好采。
转载请注明出处windows之家 » win10ftp软件设置为被动模式