FTP工作原理及过程

这篇具有很好参考价值的文章主要介绍了FTP工作原理及过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、概念

FTP文件传输协议,使用两个端口,21端口为控制端口,20端口为数据连接端口,客户端连接FTP服务器首先会和服务器的21端口发起控制连接,控制连接在整个过程中是一直保持的;当有数据传输是会进行数据连接,数据传输完毕之后会断开数据连接。数据连接又分为主动模式PORT和被动模式PASV。

二、两种模式

1、主动模式

主动模式简单来说就是控制连接成功之后,客户端告诉服务器使用PORT模式进行数据传输,并且把自己用于数据传输的随机端口发送给服务器,等待服务器使用20端口随时来访。

首先客户端和服务器的21端口进行三次握手建立控制连接;输入账号密码登录FTP。

ftp交互流程,服务器,网络,网络协议,网络安全

客户端发送PORT命令带上自己的IP和用于数据连接的端口,当有数据传输时,服务器使用20端口和客户端进行三次握手建立数据连接。

ftp交互流程,服务器,网络,网络协议,网络安全 ​ 

2、被动模式

被动模式简单来说就是控制连接成功之后,客户端告诉服务器数据传输需要使用PASV模式,随后服务器发送自己用于数据传输的端口,等待客户端随时来访。

下图为控制连接和账号密码等数据包交互过程,首先客户端和服务器的21端口进行三次握手建立控制连接;然后客户端输入账号密码等信息。

ftp交互流程,服务器,网络,网络协议,网络安全

响应代码:

220表示服务器准备就绪

ftp交互流程,服务器,网络,网络协议,网络安全

331表示需要输入密码才可登录

ftp交互流程,服务器,网络,网络协议,网络安全

230表示登陆成功,并且是登录因特网的,不是使用的代理

ftp交互流程,服务器,网络,网络协议,网络安全

SYST报文表示返回服务器使用的操作系统表示返回服务器使用的操作系统。

ftp交互流程,服务器,网络,网络协议,网络安全

CWD指令为更改访问目录,比如说点进去一个文件等

ftp交互流程,服务器,网络,网络协议,网络安全

250表示已成功进入到切换目录。CWD指令完成

ftp交互流程,服务器,网络,网络协议,网络安全

PWD请求包,表示请求返回当前路径,返回码257表示已返回当前路径信息

ftp交互流程,服务器,网络,网络协议,网络安全

 其他:

RETR: 下载文件。“RETR test.txt \r\n”:下载文件test.txt。

STOR: 上传文件。“STOR test.txt\r\n”:上传文件 test.txt。

QUIT: 关闭与服务器的连接。

从以上数据包可以看出FTP是明文传输。

需要进行数据读取或者传输的时候客户端会给服务器发送数据传输模式。下图为客户端给服务器发送请求包,数据包里显示客户端希望数据传输使用PASV模式,服务器收到之后将自己用于数据传输的端口发送给客户端,客户端的随机端口和服务器的数据传输端口进行三次握手后就可以进行数据交互了。

ftp交互流程,服务器,网络,网络协议,网络安全

ftp交互流程,服务器,网络,网络协议,网络安全 ​   ftp交互流程,服务器,网络,网络协议,网络安全

还有一些其他的,可根据数据包里的内容显示就可以看出来了。每操作完成一次都会进行四次挥手断开数据连接。

3、主动模式和被动模式的区别

主动模式是客户端发送用于数据连接的随机端口给服务器,服务器主动去建立数据连接;被动模式是服务器发送用于数据连接的随机端口给客户端,客户端去建立数据连接。

三、NAT的环境

NAT是针对于TCP和UDP报文中的IP和端口的转换,NAT并不能转换应用层数据里边的字段。而FTP协议是由控制连接和数据连接组成的,在数据连接是建立成功与否是由控制连接中的的应用层载荷字段决定的。比如客户端向服务器发送PORT命令时会在应用层协议字段中带有自己的IP和端口,如果经过NAT,报文中的IP和端口是改变了,但是应用层字段里边的IP和端口不会改变,这时,服务器看到的IP和端口还是NAT前的地址,服务器会向这个NAT前的地址和端口发送三次握手请求,会导致数据连接失败,所以这个时候就需要ALG来改变应用层字段来解决。

ALG是什么?

ALG是应用层网关,开启ALG可以修改数据包中应用层的数据进行解析和做地址转换。

可支持多种应用层协议:FTP、H.323(包括RAS、H.225、H.245)、SIP、DNS、ILS、MSN/QQ、NBT、RTSP、SQLNET、TFTP等。

以FTP为例:

FTP客户端配置

ftp交互流程,服务器,网络,网络协议,网络安全

 AR1配置

AR1

<Huawei>system-view

[Huawei]nat alg ftp enable


[Huawei]interface GigabitEthernet 0/0/0

[Huawei-GigabitEthernet0/0/0]ip address 192.168.1.1 255.255.255.0

[Huawei-GigabitEthernet0/0/0]nat static global 10.1.1.3 inside 192.168.1.0 netmask 255.255.255.0

[Huawei-GigabitEthernet0/0/0]nat static enable


[Huawei]interface GigabitEthernet 0/0/1

[Huawei-GigabitEthernet0/0/1]ip address 10.1.1.1 255.255.255.0


[Huawei]ip route-static 0.0.0.0 0.0.0.0 10.1.1.2


<Huawei>save all

 AR2配置

AR2


<Huawei>system-view


[Huawei]interface GigabitEthernet 0/0/0

[Huawei-GigabitEthernet0/0/0]ip address 10.1.1.2 255.255.255.0


[Huawei]interface GigabitEthernet 0/0/1

[Huawei-GigabitEthernet0/0/1]ip address 10.1.2.1 255.255.255.0

没有配置ALG的情况

1、源地址转换SNAT

ftp交互流程,服务器,网络,网络协议,网络安全 ​ 

1、PORT模式无法建立数据连接,应用层数据未转换。数据连接依赖于控制连接应用层载荷字段中的IP和端口,因为PORT模式应用层载荷时客户端的内网IP和端口,没有做转换,所以导致服务器无法直接连接到客户端。

ftp交互流程,服务器,网络,网络协议,网络安全 ​ 

 ftp交互流程,服务器,网络,网络协议,网络安全 ​ 

2、PASV模式可以正常访问,PASV模式需要服务器提供数据连接端口,只需要客户端去连接这个端口即可。

ftp交互流程,服务器,网络,网络协议,网络安全 ​ 

ftp交互流程,服务器,网络,网络协议,网络安全 ​ 

ftp交互流程,服务器,网络,网络协议,网络安全 ​ 

开启ALG

[Huawei]nat alg ftp enable

PORT模式,可以成功传输文件,因为开启了ALG可针对应用层数据载荷进行转换,所以应用层数据载荷中的IP和端口都转换为了SNAT转换后的IP和端口,服务器可正常建立数据连接。

ftp交互流程,服务器,网络,网络协议,网络安全 ​ 

ftp交互流程,服务器,网络,网络协议,网络安全 ​ 

 ftp交互流程,服务器,网络,网络协议,网络安全 ​ 

2、目的地址映射DNAT

[Huawei-GigabitEthernet0/0/1]nat static protocol tcp global current-interface 20
 inside 192.168.1.1 20

[Huawei-GigabitEthernet0/0/1]nat static protocol tcp global current-interface 21
 inside 192.168.1.1 21

DNAT且未开启ALG(PORT模式可以正常上传下载)

PASV模式无法进行数据连接,应用层数据载荷字段没有转换。

ftp交互流程,服务器,网络,网络协议,网络安全 ​ 

 ftp交互流程,服务器,网络,网络协议,网络安全 ​ 

开启ALG

PASV模式可正常进行数据连接

ftp交互流程,服务器,网络,网络协议,网络安全 ​ 

ftp交互流程,服务器,网络,网络协议,网络安全 ​ 

四、综上所述

当FTP服务器在NAT设备后边的时候,需要使用主动PORT模式,如果需要使用被动PASV模式的话就需要开启ALG功能。

当FTP服务器在外网时,FTP客户端经过SNAT,需要使用被动PASV模式,如果需要使用主动PORT模式的话就需要开启ALG功能。文章来源地址https://www.toymoban.com/news/detail-775739.html

到了这里,关于FTP工作原理及过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FTP服务器

    FTP(File Transfer Protocol) 是相当古老的传输协议之一,它最主要的功能是在服务器与客户端之间进行文件的传输。这个古老的协议使用的是明文传输的方式,且过去有相当多的安全危机历史。为了更安全的使用FTP协议,主要介绍较为安全的vsftpd这个软件。 下面的图片来自百度百

    2024年02月09日
    浏览(41)
  • 监控 FTP 服务器

    文件传输协议 (FTP) 用于在 TCP/IP 网络中的服务器和客户端之间传输文件,它是一种标准协议,广泛用于在各个垂直行业的组织之间从集中位置存储和分发数据。FTP协议的其他一些安全版本如下: SSH 文件传输协议 (SFTP) :它使用SSH(安全外壳协议)加密传输的命令和数据

    2024年02月11日
    浏览(43)
  • ubuntu服务器配置ftp服务

    目录  一、安装vsftpd 二、配置vsftpd 三、设置安全组 四、客户端测试 SFTP服务的配置看主页的下一篇博客:ubuntu云服务器配置SFTP服务-CSDN博客 需求:配置ftp服务用于在windows电脑上直接浏览、下载、上传ubuntu服务器上的文件,用于文件共享,方便实用 效果:用户打开windows资源

    2024年02月13日
    浏览(49)
  • FTP文件传输服务器

    目录 一、FTP协议两种工作模式 二、FTP数据两种传输模式 三、FTP用户分类 四、VSFTP配置案例 4.1匿名开放模式 4.2本地用户模式 4.3虚拟用户模式 五、实验总结 一、FTP 协议两种工作模式 主动模式: 1、客户端主动向ftp服务器发送控制连接,三次握手控制连接建立成功(密码认证

    2024年02月10日
    浏览(51)
  • 匿名访问ftp服务器

    我们启用ftp服务,想要上传或者下载远程文件时,存在着匿名访问ftp服务器问题。 通常,我们使用网页直接进入ftp服务器时,可以选择以匿名登录的方式访问ftp服务器,此时一般不会出现需要填写用户名和密码的问题,并且在网页状态下,我们不能上传文件。 比如,进入到

    2024年02月04日
    浏览(64)
  • vsftpd ftp服务器配置

    2024年02月14日
    浏览(46)
  • Linux搭建 FTP服务器

    vsftpd 是 very secure ftp daemon 的缩写,它是 Linux 上使用最受欢迎、使用最广泛的 FTP 服务器之一,它具有安全,速度快,稳定的特点,很多重要的 FTP 站点比如 ftp.gnu.org、ftp.freebsd.org 都是使用 vsftpd 作为服务器的。 工作模式 服务器使用两个端口和客户端通信,一个是命令端口,

    2024年02月05日
    浏览(61)
  • 【Linux】FTP文件服务器

    FTP (File transfer protocol) 是TCP/IP 协议组中的协议之一。他最主要的功能是在服务器与客户端之间进行文件的传输。FTP就是实现两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载 (download)”文件。将文件从自己计算机中拷贝至远程计算机上,则称

    2024年02月10日
    浏览(57)
  • 如何修改ftp服务器密码

    其实FTP服务就相当于共享文件,你要进入FTP服务器首先要知道提供FTP这台电脑的IP或者域名。FTP服务器是可以设置访问的用户名和密码的,当然也可以设置匿名访问(设置了匿名访问,用户就不需要输用户名和密码了) IIS7服务器管理工具可以批量管理、定时上传下载、同步操作

    2024年02月08日
    浏览(92)
  • centos搭建FTP服务器

    在LINUX虚拟机上,使用vsftpd搭建一个FTP服务器,并创建一个用户名为“ftpuser”的用户,使用windows主机通过ftp向文件夹中复制一个名为自己姓名首字母的txt文件,拍照上传文件在ftp服务器中的情况截图。 步骤: 1.配置主机和虚拟机网络连通 2.在centos上通过yum指令安装vsftpd并启动

    2023年04月08日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包