ftp客户端端口设置,FTP服务详解_杰儿_

文章目录 FTPFTP两个通道(控制通道、数据通道)FTP工作的方式(FTP的两种工作模式)FTP工作的方式(PORT - 主动模式)主动模式 -- 工作原理主动模式 -- 建立数据连接与控制连接的图解主动模式 -- 抓包并对包分析 FTP工作的方式(PASV - 被动模式)被动模式 -- 工作原理被动模式 -- 建立数据连接与控制连接的图解被动模式 -- 抓包并对包分析FTP连接虚拟主机连接不上的原因有哪些FTP返回码/响应码:

FTP

FTP是File Transfer Protocol(文件传输协议)的英文缩写,用于Internet上的控制文件的双向传输。同时也是一个应用程序。

Tcp/ip协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。Ftp协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、连接的方式,甚至是否使用相同的操作系统无关。

FTP传输使用的是TCP数据包协议,TCP在建立;连接前会先进行三次握手。不过FTP服务器比较麻烦一些,因为FTP服务器使用了两个连接,分别是命令通道与数据通道。因为是TCP数据包,所以这两个连接都需要经过三次握手。

FTP两个通道(控制通道、数据通道)

原理:FTP协议使用两个TCP连接,一个是命令链接,用于在FTP客户端和服务器;之间传输命令;另一个是数据链接,用于上传或下载数据。

控制通道是FTP服务器进行沟通的重要通道,连接FTP,发送FTP指令都是通过控制通道来完成的。

数据通道是FTP服务器进行文件传输或者列表的通道。

FTP协议中,控制连接均由客户端发起的,而数据连接有PORT与POSV方式。即主动与被动方式。

FTP工作的方式(FTP的两种工作模式)

FTP支持两种模式,一种是主动方式(也称为Standard模式,其FTP的客户端发送PORT命令到FTP服务器),一种是被动方式(也称为Passive模式,其FTP的客户端发送PASV命令带FTP服务器)。

FTP工作的方式(PORT - 主动模式)

在这里插入图片描述

主动模式 – 工作原理

原理:服务端从20端口主动向客户端发起链接。 控制端口21;数据传输端口20;

过程:客户端从一个任意的非特权端口N(N>1024)向FTP服务器的命令端口(默认是21)发送请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端开始监听端口N+1,并在命令链路上用PORT命令发送N+1端口到FTP服务器,于是服务器会从自己的数据端口(20)向客户端指定的数据端口(N+1)发送连接请求,建立一条数据链路来传送数据

(Port模式在建立控制通道的时候,首先与FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要发送数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。 在传输数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP服务端必须与客户端建立一个新的连接用来传送数据。)

(可以看见这种情况下的连接是客户端向服务器建立控制连接,服务器向客户端建立数据连接。客户端的数据连接和控制连接端口号是大于1024的两个端口号(临时端口),而FTP服务器的数据端口为20,控制端口为21)

主动模式 – 建立数据连接与控制连接的图解

在这里插入图片描述

主动模式 – 抓包并对包分析

在这里插入图片描述注意事项:主动模式与被动模式其控制管理的连接是一样的,只是数据传输方式,或者说是传输命令,的发起者不一样。主动模式的PORT命令由客户端发起,被动模式的PASV命令由服务器发起。(PORT命令是服务器接到客户端开放的数据连接随机端口后,主动去建立数据连接的;PASV命令是服务器发起的数据连接的随机端口,客户端连接访问该服务端端口,服务器端口是被动连接的。总而言之,主动与被动针对服务器而言的) 在这里插入图片描述第1817-1819包为tcp的三次握手,服务端端口是21,即ftp控制连接建立。 第1820包为服务器应答客户端报文,220;服务器就绪,附加参数为服务端ftp版本号; 第1821包为客户端向服务器端发送确认包; 在这里插入图片描述 第1935包为客户端发送发送请求认证用户名,命令USER,参数实际用户名; 第1936包为服务器端的确认包; 第1937包为服务端对客户端USER命令的应答,331;要求密码; 第1938包为客户端的确认包; 第2056包为客户端向服务器传送密码,命令PASS;后跟明文密码; 第2057包为服务器端的确认包; 第3030包为服务器对客户端PASS命令的应答,230;登录成功; 第3031包为客户端的确认包; 第3032包为客户端向服务器请求系统版本的命令; SYST命令; 第3033为服务器的TCP ACK回应包; 第3034包为服务端对客户端SYST命令的应答,215;系统名称; 第3035包为客户端的确认包; (特别注意:在密码确认后要进行传输类型转换操作,执行passive命令) 第8147包为客户端向服务器请求数据传输类型,命令TYPE,参数I,表示是二进制; 第8148包为服务器对客户端TYPE命令的应答,200;协商数据传输的类型是二进制; 在这里插入图片描述 第8150包为客户端通过PORT命令来告诉服务器端,想用PORT主动方式传输数据; 第8151包为服务端收到命令后,对客户端PORT命令进行应答,200;协商成功,同意使用该模式; 第8152包为客户端向服务器通过STOR命令向服务器发送文件名,是FTP协议中的上传命令,可以针对文件和目录,在此是根目录下的文件l。(RETR命令是FTP的下载命令); 第8053-8155包为建立数据连接的过程,服务器端主动连接客户端; 第8156包为服务器对客户端STOR命令的应答,150;可以发送数据; 第8157包为客户端向服务器发送传输了14比特数据; 第8158与8159包为客户端断开数据连接与服务器端对客户端断开数据连接的确认; 第8160与8161包为服务器断开数据连接与客户端对服务器端断开数据连接的确认; 第8182包为服务器回应客户端数据传输完成,226;完成传输; 在这里插入图片描述第8333包为客户端通过QUIT命令向服务器发送退出请求; 第8334包为服务器对客户端QUIT命令的应答,221;再见。

FTP工作的方式(PASV - 被动模式)

在这里插入图片描述

被动模式 – 工作原理

原理:服务端在指定范围内某个端口被动等待及客户端链接。 控制端口21;数据传输端口 随机

过程:客户端从一个任意的非特权端口N(N>1024)向FTP服务器的命令端口(默认是21)发送请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PASV命令发送。于是服务器会开启一个任意的非特权端口P(P>1024),并在命令链路上把端口发送给客户端,然后客户端从自己的数据端口(N+1)向服务器的数据端口(P)发送连接请求,建立一条数据链路来传送数据。

(FTP服务器收到Pasv命令后,随机打开一个临时端口(也叫自由端口,端口号大于1023小于65535)并且 通知客户端在此端口上传送数据的请求,客户端连接服务器此端口然后FTP将通过这个端口进行数据的传送,这个时候FTP服务器不在需要建立一个新的和客户端直接爱你的连接。) (可以看见这种情况下的连接都是客户端向服务器发起的。其服务端的数据端口是临时端口,而不是常规的20)

被动模式 – 建立数据连接与控制连接的图解

在这里插入图片描述

被动模式 – 抓包并对包分析

在这里插入图片描述值得注意的是:本地访问自己搭建的ftp,wireshark根本捕获不到ftp数据包,这是因为,wireshark捕获的网卡的数据包,本地访问本地必然没有经过无线网卡。所以我找了两个跨网段的机器进行了测试,捕获ftp数据包。 在这里插入图片描述第738-740包为tcp的三次握手,服务端端口是21,即ftp控制连接建立。 在这里插入图片描述第741包为服务器应答客户端报文,220;服务器就绪,附加参数为服务端ftp版本号; 第1053包为客户端发送发送请求认证用户名,命令USER,参数实际用户名; 第1055包为服务端对客户端USER命令的应答,331;要求密码; 第1372包为客户端向服务器传送密码,命令PASS;后跟明文密码; 第2405包为服务器对客户端PASS命令的应答,230;登录成功; 在这里插入图片描述第2407包为客户端向服务器请求系统版本的命令; 第2408为服务器的TCP ACK回应包; 第2409包为服务端对客户端SYST命令的应答,215;系统名称; 在这里插入图片描述在2723之前执行put命令,上传文件; 第2723包为客户端向服务器请求数据传输类型,命令TYPE,参数I,表示是二进制; 第2724包为服务器对客户端TYPE命令的应答,200;协商数据传输的类型是二进制; 第2726包为客户端通过PASV命令来告诉服务器端,想用PASV方式传输数据; 第2727包为服务端收到命令后,在服务端建立一个数据端口69*256+131=17795端口监听,并把这个数据端口号返回给客户端; 在这里插入图片描述第2728-2730包,客户端发起的三次握手,去连接服务器端的17795这个数据端口,准备进行数据传输; 在这里插入图片描述第2731包为客户端向服务器通过STOR命令向服务器发送文件名,是FTP协议中的上传命令,可以针对文件和目录,在此是根目录下的文件l。(RETR命令是FTP的下载命令); 第2732包为服务器对客户端STOR命令的应答,150;可以发送数据; 在这里插入图片描述第2733-2735为数据传输的过程,客户端向服务器传输文件的内容。因为在此处文件内容为空(读者可以在文件内输入部分内容,查看效果); 第2736包为服务器回应客户端数据传输完成,226;完成传输; 在这里插入图片描述第2885包为客户端通过QUIT命令向服务器发送退出请求; 第2886包为服务器对客户端QUIT命令的应答,221;再见。

FTP连接虚拟主机连接不上的原因有哪些

1.由于用户名或密码不正确,文件传输协议连接失败。为了服务器,的安全,许多虚拟主机禁止匿名连接。如果用户名或密码错误,ftp连接将失败。

2.虚拟主机的域名解析问题导致ftp连接失败。

检查您使用的IP地址是否与我们公司用户后台订单中提供的IP地址一致;

3.是你关闭了FTP使用的端口导致的吗

FTP默认需要20和21端口,但是大量用户使用局域网。因此,服务器将使用大量1024到6000的动态端口。您不能禁止任何文件传输协议使用的端口,否则文件传输协议将无法正常工作。

4.有防火墙吗

防火墙设置将导致FTP服务器连接失败,因此您可以关闭或重置防火墙,然后再次连接以查看连接是否成功。如果安装了防火墙,请检查端口21是否打开,并允许与外部服务器链接进行互通(通常,如果防火墙的安全级别设置为高,则拒绝与外部服务器互通,因此请将防火墙的安全级别修改为中等以下);

5.虚拟主机不稳定,停机导致ftp连接失败。

当您租用的虚拟主机关闭时,您无法连接到FTP。您可以使用PING命令来测试FTP服务器是否处于正常状态。

6.短时间频繁连接FTP导致连接失败。

如果您的FTP链接的最后一行提示:530notloggedin,则当前只允许2个会话。然后FTP链接断了,说明你链接太多了。您的原始登录记录在服务器缓存中。一般请等30分钟再试。

7.7时提示SOCKET错误。FTP登录。

如果您上传文件时系统提示套接字错误,请检查您是否在软件的编辑菜单的连接中选择使用防火墙设置和PASV模式设置。如果您之前选择了这些选项,您可以取消这两个选项并重新连接它们。如果您的计算机上安装了诺顿等防病毒软件,请暂时关闭它。

FTP工具一般分为FLASHFXP、LEAPFTP、CuteFTP,统称FTP三剑客,多为中文版和破解版。使用FTP连接虚拟主机上传网站程序,简单方便

FTP返回码/响应码:

(响应代码 / 解释说明)

110 新文件指示器上的重启标记

120 服务器准备就绪的时间(分钟数)

125 打开数据连接,开始传输

150 打开连接

200 成功

202 命令没有执行

211 系统状态回复

212 目录状态回复

213 文件状态回复

214 帮助信息回复

215 系统类型回复

220 服务就绪

221 退出网络

225 打开数据连接

226 结束数据连接

227 进入被动模式(IP 地址、ID 端口)

230 登录完成

250 文件行为完成

257 路径名建立

331 要求密码

332 要求帐号

350 文件行为暂停

421 服务关闭

425 无法打开数据连接

426 结束连接

450 文件不可用

451 遇到本地错误

452 磁盘空间不足

500 无效命令

501 错误参数

502 命令没有执行

503 错误指令序列

504 无效命令参数

530 未登录网络

532 存储文件需要帐号

550 文件不可用

551 不知道的页类型

552 超过存储分配

553 文件名不允许

其他:【由于文件内容过长,因此分开写】 FTP环境搭建及使用实例–linux系统(使用shell脚本或者使用配置文件)

参考链接: 1.https://pan.baidu.com/s/1UqgzyHNR_r7I8N88wcTBWw?pwd=pr3o 提取码:pr3o 2.https://blog.csdn.net/weixin_46470342/article/details/107316434

FTP服务安装与端口说明 - 易无极 - 博客园如何进入指定端口的ftp服务器_百度知道FTP远程文件传输服务安装与配置 - 腾讯云开发者社区-腾讯云FTP基础知识 FTP port(主动模式) pasv(被动模式) 及如何映射FTPFTP的连接方式(防火墙的配置) - 乌托邦眺望 - 博客园ftp服务器有哪些工作模式?自己如何搭建ftp服务器?-贝锐官网FTP服务详解_杰儿__er的博客-CSDN博客FTP的客户端和服务器端都处在防火墙(NAT)后面如何通信 ...C语言实现的简易FTP客户端FTP协议内网FTP的外网访问方法,设置路由端口转发java实现的完整FTP客户端FTP上传下载端口FTP服务器和客户端在安卓手机上安装FTP客户端应用,实现通过手机访问计算机FTP服务器。FTP服务器端口说明FTP被动模式设置VxWorks镜像FTP服务器配置说明.docxftp服务器的搭建及windows ftp客户端的连接,域名解析到ftp目录过程Linux c使用Socket通信实现FTP客户端程序使用c++实现一个FTP客户端(一)修改ftp默认端口Multithreaded-FTP-Client-and-Server:客户端和服务器都是多线程的手机上安装FTP客户端软件(AndFTP),实现通过手机访问计算机FTP服务器Linux基础篇——ftp的安装与配置FTP 客户端程序FTP端口协商原理云服务器安装ftp服务端,客户端无法访问客户端(windows)访问FTP服务器遇到的问题(总结)FTP 端口和工作模式用户用FTP客户端访问FTP服务器,TCP/IP各层是如何工作的?linux下FTP客户端主动模式设置Ftp主动模式和被动模式以及java连接ftp模式设置ftp客户端 可以登录但是下载不了的解决docker-alpine-ftp-server:带有vsftpd服务器的小型灵活的Docker映像xlight ftp服务器无法启动提示说端口被其他程序使用不能启动服务器于端口21该如何解决iOS FTP客户端的见解FTP服务器serv-u设置端口映射(主动模式和被动模式)
ftp服务器的端口号是ftp服务器的默认服务端口是ftp服务默认使用服务器哪些端口ftp 被动端口ftp服务器的端口ftp 被动模式 端口ftp 开放端口ftp默认数据端口ftp 端口设置ftp服务默认设置端口ftp客户端需要开启哪些端口http默认端口ftp服务器默认端口号ftp端口怎么设置ftp客户端指定端口ftp默认使用端口ftp默认端口Ftp默认端口手机一般几月份出新机刘恒到底多大岁数选泵参考特性曲线最新iqoo7像素360度高清全景影像系统国际象棋真人实战对战云韵高清壁纸 4k视频转mp3转换器安卓男生为什么换头像改微信名军旗下的歌声完整版微信转文本怎么转