FTP服务器访问主动模式、被动模式

在公司里面,经常需要访问外网FTP取资料等情况。但是有时用windows界面访问经常遇到各种问题。

下面介绍两种客户端是如何访问ftp服务器。

首先我们需要说明:防火墙,是阻拦外界与内部的通讯的一道关卡。从内部出去如果没有特殊设置,一般是任意出,而从外界进来,

就是防火墙设置的重点,并非任意进。

主动模式(PORT)(默认):

如上图,在主动模式中:在下面中C代表客户端。S代表服务端.

第一步:C用任意x端口访问S的21端口且附带信息说明自己自己X+1端口开启监听(如果没有改变,ftp服务默认端口是21).

    然后C把此信息通过自己的防火墙,到达S端,因为S端开启ftp服务,那么它的防火墙肯定开启此21端口这样就可以访问到S。

第二部:S端收到访问后通过21端口到达C的X端口,表明自己接受到此信息,然后S端开启X+1来等待数据连接。

第三部:S端开启20号端口与A端口的X+1建立数据传输,然后S端口20端口访问C的X+1端口时,C所在的局域网防火强
       并没有开启此端口来允许外界的任何端口来访问此局域网中的C的X+1端口。

所以防火墙受阻,无法建立通讯,如果在同局域网内没有问题。非同局域网就要设置C端的防火墙。

 

访问FTP的第二种模式:被动模式(PAVS)

         

第一步:同样,C端开始通过X端口访问FTP21端口。告诉S端自己采用PASV模式,此时中间防火墙都不会阻拦此信息,因为服务器已开启21端口。

第二步:服务器收到信息后,自己建立一个Y端口,且通过刚才的通道告诉C端,自己等待数据连接的端口是Y端口。

第三步:C端收到信息后,开启任意端口来访问s端的Y端口来实现数据传输。

第四步:就是C与S的Y端口数据开始传输。

此种模式中需要注意的事第三步:怎么实现C端收到信息后开启任意端口来连接S端的Y端口不会被S锁在的局域网防火墙阻拦。

这种问题,就要设计到防火墙设置,已经建立FTP服务器时端口的设置。在PASV,ftp服务器设置可以指定一段端口,然后在防火墙中开启,

且指定此段端口映射到S服务器上。这样就可以保证S端开启的Y端口可以从外界来通讯。

在WINDOWS中,模式的是主动模式,如果需要被动模式去访问FTP服务器如何设置,请参考下图,

如果用软件客户端访问,那么对应的软件客户端在选项中肯定有FTP被动模式和主动模式的选择。

上面步骤仅是参考模型,网络的输出肯定不是这么简单,只是为了方便简单理解两种模式中的不同。

猜你喜欢

转载自www.cnblogs.com/ybyu-python/p/10895170.html
今日推荐