首页 > 其他分享 >FTP

FTP

时间:2024-09-12 13:36:05浏览次数:8  
标签:FTP 被动模式 端口 服务器 连接 客户端

FTP

FTP的主动模式(Active Mode)和被动模式(Passive Mode)的主要区别在于数据连接的建立方式,这涉及到客户端和服务器之间如何相互连接以传输数据。以下是两种模式的详细比较:

主动模式(Active Mode)

  1. 连接建立:客户端首先连接到服务器的21端口建立控制连接。
  2. 数据端口:客户端在本地选择一个随机的非特权端口(通常大于1024)并向服务器发送PORT命令,告诉服务器它正在监听这个端口。
  3. 服务器连接:服务器收到PORT命令后,会尝试从其20端口连接到客户端指定的端口进行数据传输。
  4. 适用场景:适用于客户端位于开放网络环境,没有防火墙或NAT设备限制入站连接的情况。

被动模式(Passive Mode)

  1. 连接建立:与主动模式一样,客户端首先连接到服务器的21端口建立控制连接。
  2. 服务器打开端口:客户端发送PASV命令,服务器收到后会随机选择一个高端口(通常是大于1024的端口)并告诉客户端。
  3. 客户端连接:客户端然后主动连接到服务器在PASV响应中指定的端口,以建立数据连接进行数据传输。
  4. 适用场景:适用于客户端位于防火墙或NAT之后,服务器无法直接发起到客户端的数据连接的情况。

主要区别

  • 数据连接的发起方:在主动模式中,服务器发起到客户端的数据连接;在被动模式中,客户端发起到服务器的数据连接。
  • 网络限制:主动模式可能受到客户端防火墙的限制,因为服务器需要主动连接到客户端的随机端口,这可能被阻止。被动模式通过客户端主动连接到服务器的随机端口来避免这个问题。
  • 配置复杂性:被动模式通常需要服务器配置一个端口范围,以便在防火墙后面使用,而主动模式通常不需要这样的配置。

在实际应用中,由于许多客户端位于防火墙或NAT之后,被动模式更为常用。然而,某些服务器或网络环境可能对被动模式的端口范围有限制,因此可能需要适当配置以确保FTP连接的成功建立。

在FTP的被动模式下,客户端从一个随机的高端口(通常是大于1024的端口)发起连接到服务器的21端口(FTP命令端口),然后客户端会进入监听状态,等待服务器端的连接请求。服务器在收到客户端的PASV命令后,会随机选择一个高端口(这个端口通常是大于1024的,并且可以在一定范围内,如39000-40000)来监听客户端的连接。

被动模式下,客户端的端口是随机选择的,并且是由客户端主动发起到服务器指定端口的连接,而不是服务器发起到客户端的连接。这种模式通常用于客户端位于防火墙或NAT之后的情况,因为这些网络设备可能会阻止未经请求的入站连接。

至于是否会被防火墙拦截,这取决于防火墙的配置。如果防火墙规则正确设置以允许从任何端口到服务器指定的被动模式端口范围(如39000-40000)的流量,那么客户端的连接请求通常不会被拦截。管理员需要确保这些端口在服务器的防火墙和任何网络边界设备上都已放行。

例如,如果服务器配置了被动模式端口范围为39000-40000,那么防火墙规则应该允许从任何外部端口到服务器的39000-40000端口的入站连接。这样,即使客户端的端口是随机的,只要服务器端的端口范围被允许,连接就可以成功建立。

总的来说,被动模式FTP的端口设置需要在服务器端进行配置,并且在相关的网络设备上进行适当的防火墙规则设置,以确保数据传输的顺利进行。

那为什么要用这么多端口 大家都21端口通信不行吗

FTP协议使用多个端口的原因主要是因为它的工作方式。FTP协议在传输文件时,需要建立两个独立的TCP连接:一个用于控制连接(命令连接),另一个用于数据传输。这两个连接分别使用不同的端口,以便于管理和传输不同类型的数据。

  1. 控制连接:这个连接负责传输FTP命令和响应,比如用户登录信息、文件列表请求等。控制连接通常使用标准的FTP端口,即21端口。

  2. 数据传输:文件传输本身是通过另一个TCP连接进行的,这个连接可以是主动模式或被动模式:

    • 主动模式:客户端会随机打开一个高端口(通常是大于1024的端口),然后告诉服务器它正在监听这个端口。服务器随后尝试从其20端口连接到客户端指定的端口进行数据传输。
    • 被动模式:服务器会随机打开一个高端口(通常在39000-40000范围内),并告诉客户端连接到这个端口进行数据传输。客户端随后主动连接到服务器的这个端口。

使用多个端口的原因包括:

  • 分离控制和数据:将命令和数据传输分开,可以提高安全性和灵活性。例如,某些防火墙可能允许命令端口(21端口)的流量,但限制数据端口的流量,被动模式通过使用高端口进行数据传输,可以绕过这些限制。

  • 并行传输:在某些FTP应用中,可能需要同时传输多个文件或数据流。使用不同的端口可以允许多个数据连接同时进行,从而提高效率。

  • 防火墙和NAT兼容性:许多客户端位于防火墙或NAT之后,这可能会阻止未经请求的入站连接。被动模式允许客户端主动发起到服务器的连接,从而避免了这个问题。

  • 端口复用:在某些情况下,服务器可能需要同时为多个用户提供服务。通过为每个数据传输会话分配不同的端口,服务器可以同时处理多个并发的FTP会话。

总之,虽然使用单一端口(如21端口)进行所有通信在理论上是可能的,但实际应用中,由于性能、安全性和网络环境的考虑,FTP协议选择了使用多个端口来满足不同的需求。

标签:FTP,被动模式,端口,服务器,连接,客户端
From: https://www.cnblogs.com/firsthelloworld/p/18410000

相关文章

  • 命令行中实现FTP文件上传与下载
    1、在命令行连接FTP服务器:ftpftp服务器url2、从FTP服务器下载文件:mget下载的文件名(ftp)Transfercomplete表示下载完成。注:eqpInfos.pdf文件必须在ftp服务器当前目录(dir命令可以查)eqpInfos.pdf会下载到本地的当前目录(lcd命令可查)lcd查看当前本地目录;dir查看ftp服务......
  • Day5网络编程:epoll+服务器模型+ftp
    1.io多路复用:epollepoll的提出--》它所支持的文件描述符上限是系统可以最大打开的文件的数目;eg:1GB机器上,这个上限10万个左右。每个fd上面有callback(回调函数)函数,只有产生事件的fd才有主动调用callback,不需要轮询。注意:Epoll处理高并发,百万级1.红黑树:是特殊的二叉......
  • Ftrans无缝替代FTP方案:保障数据传输的安全性与合规性!
    FTP(文件传输协议)是一种用于在网络上进行文件传输的标准网络协议,历史悠久并且被广泛使用。但随着业务规模和文件体量的快速增长,在应用实践中,FTP存在一些安全和效率问题。因此政府单位需要可以平滑替代FTP的文件传输解决方案,从而更好的保障数据安全、提升工作效率。具体存在以下问题......
  • CentOS 8FTP服务器
    FTP(文件传输协议)是一种客户端-服务器网络协议,允许用户在远程计算机之间传输文件。这里有很多可用于Linux的开源FTP服务软件,最流行最常用的FTP服务软件有PureFTPd,ProFTPD,和vsftpd。在本教程中,我们将在CentOS8[4]上安装vsftpd(非常安全的Ftp守护程序)。这是一个稳定,安全......
  • Win10下ftp搭建配置图文教程
    参考博客:https://www.jb51.net/article/259779.htm1、打开ftp服务方法:win+R输入control打开控制面板点击程序与功能→启动或关闭Windows功能,选择一下选项,打开ftp服务 2、打开Internet信息服务(IIS)管理器方法:win+R输入inetmgr打开iss管理器1)、网站—>添加FTP站点…—>站点......
  • php获取FTP服务器中文件内容返回给前端
    有一个需求是访问存储在群辉SynologyNAS上的图片,https://ip:port/path/to/image.jpg,用浏览器打开会出现“您的连接不是私密/安全连接”错误。网上检索资料发现可能是因为缺少SSL证书的关系。引用https://www.cloudflare-cn.com/learning/ssl/connection-not-private-explaine......
  • Vmware 上安装部署免费开源NAS系统FreeNAS11.3操作系统(支持CIFS (samba), FTP, NFS,
    说明FreeNAS®于2005年首次跃上互联网,在过去的十年里,它已成为一个家喻户晓的名字,在全球拥有超过1000万次下载和100万次部署。FreeNAS是一套免费的NAS(网络附加存储)服务器解决方案,它基于FreeBSD和Python开发,能够将一台普通的PC转变为功能强大的网络存储服务器。概述类型:NA......
  • Vsftpd 三种用户模式
    Vsftpd三种用户模式命令行模式下登录后,执行help可以看下能执行的命令有哪些。ls查看服务器上的文件,!ls查看本地的文件‍匿名用户(不安全)使用ftp或anonymous用户登录,而不需要输入密码,默认访问的目录是/var/ftp​(这个目录的权限不能被设置为777)相关配置:anonymous_en......
  • FTP文件传输服务
    FTP服务概述2-1FTP连接及连接模式控制连接:TCP21,用于发送FTP命令信息数据连接:TCP20,用于上传、下载数据数据连接的建立类型主动模式:服务端从20端口主动向客户端发起连接被动模式:服务端在指定范围内某个端口被动等待客户端连接FTP传输模式文本模式:ASCII模式,以文本序列......
  • 使用脚本向SFTP服务器传输文件
    摘自:https://blog.csdn.net/qq_45882426/article/details/138275975 #!/usr/bin/expect-fsettimeout60setipaddr[lindex$argv0]setusername[lindex$argv1]setpasswd[lindex$argv2]setlcdirname[lindex$argv3]setdirname[lindex$argv4]set......