欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux中FTP的一点理解

程序员文章站 2022-03-30 18:01:27
FTP(File Transfer Protocol)是一个非常古老并且应用十分广泛的文件传输协议,FTP协议是现今使用最为广泛的网络文件共享协议之一,我们现在也一直有在用着FTP协议来进行各种文件的传输,FTP为我们提供了一种可靠的方式在网络上进行文件的共享 FTP是C/S架构的服务,拥有一个服务 ......
ftp(file transfer protocol)是一个非常古老并且应用十分广泛的文件传输协议,ftp协议是现今使用最为广泛的网络文件共享协议之一,我们现在也一直有在用着ftp协议来进行各种文件的传输,ftp为我们提供了一种可靠的方式在网络上进行文件的共享
 
ftp是c/s架构的服务,拥有一个服务器端和一个客户端,ftp底层通过tcp协议来作为传输协议,所以ftp协议是一种可靠的文件传输方式,ftp提供了两个端口号,20和21号端口,20号是数据接口,提供数据之间的传输,21号是命令接口,提供命令之间的传输
ftp服务端与客户端连接一般有两种模式:主动模式(active mode)和被动模式(passive mode)
主动模式原理图
Linux中FTP的一点理解

 

主动模式下,客户端首先会向服务器端的21号端口发出一个连接命令,请求与服务器端建立连接,此时服务器端响应回去给客户端,并要求客户端发送一个用于传送数据的端口,该端口号要 > 1023 ,此时服务器端的20号端口就会与该数据端口主动建立连接,客户端与服务器端进行数据的传送
 
被动模式的原理如下图所示
Linux中FTP的一点理解
与主动模式不同的是,在被动模式下,客户端也是首先与服务器端的21端口建立连接,此时服务器端会开启一个 > 1023 号的数据传送端口,并返回给客户端,这个时候客户端也会开启一个 > 1023 的端口,然后客户端会主动的去跟服务器端的数据传输端口建立连接,两者之间来进行数据的传送输
所以说,主动模式与被动模式的区别就在于究竟是服务器端的20端口主动发起于客户端建立连接,还是服务器端开放一个随机端口,等待客户端与其主动建立连接。在我们的生产环境中,通常还是使用的是被动连接的模式,因为我们的服务器端都有配置防火墙,而防火墙对于内网连接外网的端口一般是放行的,而外网来连接内网的端口则一般是有限制的,所以我们这时如果使用主动模式连接的话,端口可能被防火墙拦截,从而不能提供我们的ftp服务

 

掌握原理一切就好办

Linux中FTP的一点理解
Linux中FTP的一点理解