| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> FTP服务详解 -> 正文阅读 |
|
[系统运维]FTP服务详解 |
文章目录FTPFTP是File Transfer Protocol(文件传输协议)的英文缩写,用于Internet上的控制文件的双向传输。同时也是一个应用程序。 Tcp/ip协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。Ftp协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、连接的方式,甚至是否使用相同的操作系统无关。 FTP传输使用的是TCP数据包协议,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 - 主动模式)主动模式 – 工作原理
过程:客户端从一个任意的非特权端口N(N>1024)向FTP服务器的命令端口(默认是21)发送请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端开始监听端口N+1,并在命令链路上用PORT命令发送N+1端口到FTP服务器,于是服务器会从自己的数据端口(20)向客户端指定的数据端口(N+1)发送连接请求,建立一条数据链路来传送数据 (Port模式在建立控制通道的时候,首先与FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要发送数据的时候在这个通道上发送PORT命令。 (可以看见这种情况下的连接是客户端向服务器建立控制连接,服务器向客户端建立数据连接。客户端的数据连接和控制连接端口号是大于1024的两个端口号(临时端口),而FTP服务器的数据端口为20,控制端口为21) 主动模式 – 建立数据连接与控制连接的图解主动模式 – 抓包并对包分析注意事项:主动模式与被动模式其控制管理的连接是一样的,只是数据传输方式,或者说是传输命令,的发起者不一样。主动模式的PORT命令由客户端发起,被动模式的PASV命令由服务器发起。(PORT命令是服务器接到客户端开放的数据连接随机端口后,主动去建立数据连接的;PASV命令是服务器发起的数据连接的随机端口,客户端连接访问该服务端端口,服务器端口是被动连接的。总而言之,主动与被动针对服务器而言的) FTP工作的方式(PASV - 被动模式)被动模式 – 工作原理
过程:客户端从一个任意的非特权端口N(N>1024)向FTP服务器的命令端口(默认是21)发送请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PASV命令发送。于是服务器会开启一个任意的非特权端口P(P>1024),并在命令链路上把端口发送给客户端,然后客户端从自己的数据端口(N+1)向服务器的数据端口(P)发送连接请求,建立一条数据链路来传送数据。 (FTP服务器收到Pasv命令后,随机打开一个临时端口(也叫自由端口,端口号大于1023小于65535)并且 通知客户端在此端口上传送数据的请求,客户端连接服务器此端口然后FTP将通过这个端口进行数据的传送,这个时候FTP服务器不在需要建立一个新的和客户端直接爱你的连接。) 被动模式 – 建立数据连接与控制连接的图解被动模式 – 抓包并对包分析值得注意的是:本地访问自己搭建的ftp,wireshark根本捕获不到ftp数据包,这是因为,wireshark捕获的网卡的数据包,本地访问本地必然没有经过无线网卡。所以我找了两个跨网段的机器进行了测试,捕获ftp数据包。 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返回码/响应码:(响应代码 / 解释说明)
其他:【由于文件内容过长,因此分开写】 参考链接: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 9:47:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |