FTP主动模式与被动模式

FlashFXP提供了两种连接FTP服务器的方式主动模式(PORT)、被动模式(PASV),而FlashFXP的默认设置为主动模式(PORT),更改FlashFXP将连接FTP服务器的方式的方法如下:

站点->站点管理器->选择需要更改的FTP站点->选项 在“使用被动模式”中点击两次去掉复选框中的勾(默认为灰色)。 

FTP协议的数据传输存在两种模式:

主动模式(PORT Mode)和被动模式(Passive Mode)。这两种模式发起连接的方向截然相反,主动模式是从服务器端向 客户端发起;被动模式是客户端向服务器端发起连接。是否采取被动模式取决于客户程序,在ftp命令行中使用passive命令就可以关闭/打开被动模式。

主动模式(port/active mode)下,服务端端口固定,客户端端口随机

被动模式下,客户端发送‘PASV’请求到服务端,服务端端口随机,客户端端口固定

随机端口计算方式:ip,203.39代表端口,计算方法是203 * 256 + 39 = 52007

端口号大于1023小于65535

FTP数据端口为20,控制端口为21,与FTP server建立连接通过控制端口,即21端口号。

数据端口不一定为20,在主动模式下,数据端口为20,被动模式下则由服务器和客户端协商而定。

ftp 192.168.1.10 // 登录ftp服务器 ls // 展示目录文件 cd 目录名 // 切换目录名 lcd // 设置本地接收文件的目录 get filename // 下载ftp server上的文件 put filename // 将本地文件上传到ftp server上 quote PASV // windows下开启被动模式 passive // Linux下开启被动模式

主动和被动主要体现在拿放文件的时候,也就是客户端向服务端get/put文件。

1、主动模式原理图

主动模式主要是客户端打开某个随机端口,等待服务端主动连接。

在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,发送FTP用户名和密码,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令,告诉服务端客户端采用主动模式并开放了端口。FTP服务器接收到PORT命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。

2、被动模式原理图

被动模式主要是服务端打开某个随机端口,被动等待服务端来连接。

在被动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,发送用户名和密码进行登陆,同时会开启N+1端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P(端口P的范围是可以设置的,后面会说到这个是很重要的)进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。

3、wireshark抓包

这里使用leapFtp工具来连接ftp服务器,在编辑菜单的参数设置中,可以选择连接模式

服务器ip:192.168.145.128  客户端ip:192.168.145.1

登录部分都是一致的流程

(1)主动模式

1)在第66个报文中,由客户端发起port命令,并告诉服务器连接端口52007进行数据传输,port 192.168.145.1.203.39,其中前面四个表示ip,203.39代表端口,计算方法是203 * 256 + 39 = 52007

2)在第69个报文中,服务器主动连接客户端的52007端口

3)在第73个报文中,进行ftp数据传输,可以看到服务器用的是20端口,客户端用的是52007端口

(2)被动模式

1)在第37个报文由客户端发送pasv请求

1)在第38个报文中,服务端返回应答,192.168.145.128.73.79,其中73.79代表端口,计算方法是73 * 256 + 79 = 18767,并等待客户端连接

2)在第40个报文中,客户端主动连接服务器的18767端口

  1. 3)在第44个报文中,进行ftp数据传输,可以看到服务器用的是18767端口

使用TCP传输较大数据时,都会将数据分片,然后按照顺序依次传输。当Wireshark抓包时候,数据包标记为TCP Out-Of-Order,意思是该数据包的发送顺序不对。这意味着网络状况不好。当然,Wireshark有时会重传的包识别为乱序包。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值