程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

FTP客户端和FTP服务器交互

balukai 2025-08-06 18:44:01 文章精选 4 ℃

1、FTP图解


2、FTP模式说明

FTP主动模式:客户端随机端口发起对FTP服务器21端口的访问,随之通过建立的这条控制连接tcp会话进行账号密码认证,当要获取文件时,客户端会发送请求服务器要下载文件,并指明要连接的端口号(例如5000),此时服务器通过20端口连接服务器的5000端口建立数据连接,并发送相关文件给客户端,当文件传输完成后,数据连接中断,客户端每一次请求下载文件,服务端均会发起一条数据连接用来传输文件。


FTP被动模式:客户端随机端口发起对FTP服务器21端口的访问,随之通过建立的这条控制连接tcp会话进行账号密码登陆,当要获取文件时,客户端会发送请求服务器要下载文件,服务端指明要连接的端口号(例如5000),此时客户端通过随机端口号连接服务端的5000端口号建立数据连接,服务器端随之发送相关文件给客户端,当文件传输完成后,数据连接中断,客户端每一次请求下载文件,服务端均会发起一条数据连接用来传输文件。

3、主动连接FTP交互过程(被动模式与主动模式类似)

1)客户端发起对服务器21端口的访问,通过TCP 三次握手建立了控制通道连接


2)客户端输入账号密码登录FTP服务器,服务器返回230代码表示客户端认证成功


3)当客户端使用"get xxx.txt"获取文件时,客户端会使用命令"PORT"发送给FTP服务器自己可用的端口号"Active port",紧着这FTP服务器通过20端口号连接这个"Active port"(示例65392端口),至此FTP数据通道建立完成


注:当文件传输完成后,FTP数据通道会自动断开,当客户端再获取文件时,FTP数据通道将再次建立。

4、题外话

1)若客户端和服务器端之间存在防火墙,那么防火墙该如何放通策略让FTP能够正常运行呢?


2)若客户端和服务器端之间存在NAT设备,又该如何处理呢?

最近发表
标签列表