ftp协议基础

文件共享服务

ftp:应用层,可以跨平台,但对数据的编辑难以实现;

nfs(Sun):内核,跨平台困难;

samba:跨平台,在Linux或Unix实现CIFS(SMB)协议--即Unix通用文件系统协议;

现有的三类存储模型

DNS:直接附加存储,例如机箱内的硬盘;

NAS:网络附加存储,通过网络文件服务器提供文件级别的共享存储,工作于应用空间,nfs和samba的CIFS就是NAS的实现;

SAN:网络附加存储,通过网络文件服务器提供块级别的共享存储,工作于内核空间;

ftp:Flie Transfer Protocol,文件传输协议

基础知识点

应用层协议

有多个连接,默认刚启用时监听于21/tcp,基于socket完成跨主机通信

C/S架构

Server:

wu-ftpd(华盛顿大学研发),proftpd,pureftp,vsftp,ServU

Client:

ftp,lftp,lftpget,wget,curl,filezilla(Windows、Linux),gftp(Linux GUI),flashfxp(Windows),cuteftp(Windows)

响应码

1xx:提示信息

2xx:成功类状态码

3xx:提示用户需进一步提供补充类信息的状态码

4xx:客户端错误

5xx:服务端错误

详见最下示例图

用户认证

虚拟用户:仅用于访问某种特定服务中的资源

nsswitch

network  server switch,网络名称转换,是一种名称解析框架

配置文件:/etc/nsswitch.conf

模块:/lib64/libnss*,/usr/lib64/libnss*

pam

pluggable authentication module,插入式认证模块,是一种用户认证框架

配置文件:/etc/pam.conf,/etc/pam.d/*

模块:/lib64/security/

系统用户

匿名用户

ftp服务器的两种数据连接模式

命令连接

传输文件管理类命令,完成整个数据的发送控制;持久连接,直到用户终止才拆除;

数据连接

传输用户请求的数据;非持久连接,每次传输数据前建立,传输完成后连接自动拆除

示例说明:用户要到ftp服务器上下载某个文件

数据传输格式

支持文本传输和二进制传输,通常基于数据原生编码格式选择传输格式

数据传输模式

主动:由服务器创建连接

命令连接:

Client:50000 -->Server:21

数据连接:

Server:20/tcp -->Client:50000+1

客户端用一个随机端口(如50000)向服务器的21/tcp端口发起命令连接,连接成功后,服务器用(21-1)/tcp端口向客户端的随机端口(50000-1,若被占用就50000-2)主动发起数据连接,此即主动模式

由于客户端大多装有防火墙,服务器主动建立的数据连接会被防火墙阻挡,由此催生了被动连接。

被动:由客户端创建连接

命令连接:

Client:50000 -->Server:21

121,23:121×256+23

数据连接:

Client:50000+1--> Server:随即端口

当服务器接收到客户端的命令连接后立即启动一个子进程,该子进程监听于一个随机端口;然后服务器通过命令连接通知客户端该子进程及其监听端口号(如121,23),从而客户端即可向此端口发起主动的数据连接,详见下示例图。

服务器防火墙有连接追踪(connectiontrack)功能,可以识别与客户端发起的命令连接相关的数据连接,从而对其开放相应的端口

示例图

ftp和lftp命令

使用lftp命令连接ftp服务器时,匿名用户会直接登录

要想使用特定用户登录,需用到以下命令:

lftp -u USERNAME[,PASSWORD] ftpIP

lftp支持断点续传和多线程下载,依赖于axel工具,需编译安装

1、下载源码包

2、编译安装,生成axel工具

3、复制到/bin目录下即可使用

4、axel语法格式

axel -n 3 -o /root ftp://172.16.0.1/pub/somefile

-n:指明启用的下载线程数

-o:指明下载文件的保存位置

最后指明下载资源的路径

补充

ftp协议是明文的,出于安全考虑,可使用下列协议代替

ftps:基于SSL

sftp:基于SSH

时间: 2024-11-10 13:57:02

ftp协议基础的相关文章

【RL-TCPnet网络教程】第35章 FTP文件传输协议基础知识

第35章      FTP文件传输协议基础知识 本章节为大家讲解FTP(File Transfer Protocol,文件传输协议)的基础知识,方便后面章节的实战操作. (本章的知识点主要整理自网络) 35.1  初学者重要提示 35.2  FTP基础知识参考资料 35.3  FTP基础知识点 35.4  总结 35.1  初学者重要提示 FTP文件传输协议在实际项目中有比较重要的实用价值,需要初学者对FTP的基础知识也有个认识. 35.2  FTP基础知识参考资料 大家可以从以下地址获得FTP

FTP协议总结

说明:本文仅供学习交流,转载请标明出处,欢迎转载! FTP协议(文件传输协议)建立在TCP协议的基础之上,用来从一个主机把文件复制到另外一个主机.在FTP客户机与服务器之间,采用来了两条TCP连接,这两条连接分别是控制连接和数据连接.在控制连接过程中,FTP服务器使用的端口号为21,在数据连接过程中,FTP服务使用的端口号为20,而客户机在整个过程中使用的端口号都是临时端口号,这两个临时端口号可以相同,也可以不同,当然在绝大多数情况下,这两个临时端口号都是不同的.在整个从连接的发起到数据传输的整

【TCP/IP协议基础】

TCP/IP协议基础 -------------------------------------------------------------------------------- 1.TCP/IP协议栈 四层模型 TCP/IP这个协议遵守一个四层的模型概念:应用层.传输层.互联层和网络接口层. 网络接口层 模型的基层是网络接口层.负责数据帧的发送和接收,帧是独立的网络信息传输单元.网络接口层将帧放在网上,或从网上把帧取下来. 互联层 互联协议将数据包封装成internet数据报,并运行必要的

FTP协议及工作原理

1. FTP协议 什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写. 该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明 和可靠高效地传送数据.简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载 (download)”文件.若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)

FTP协议的粗浅学习--利用wireshark抓包分析相关tcp连接

一.为什么写这个 昨天遇到个ftp相关的问题,关于ftp匿名访问的.花费了大量的脑细胞后,终于搞定了服务端的配置,现在客户端可以像下图一样,直接在浏览器输入url,即可直接访问. 期间不会弹出输入用户名密码来登录的窗口. 今天我主要是有点好奇,在此过程中,究竟是否是用匿名账户“anonymous”该账户登录了,还是根本不需要登录呢? 于是用wireshark抓包了一下. 二.抓包过程 我这边直接用了捕获过滤器抓本机和ftp之间的包.抓包后直接ctrl+F进行文本查找. 果然发现是发送了USER

FTP协议

FTP协议 FTP即文件传输协议是应用层提供交互式会话系统,基于TCP连接的,FTP客户端和服务器之间是可靠的.面向连接的.为数据提供可靠保证,标准连接端口端口是21,数据传输端口是20. FTP主要作用:让用户连接上一个远程计算机(这些计算机运行着FTP服务器程序),来查看远程计算机有什么文件,将远程计算机的文件拷贝到本地计算机上(下载-get),或将本地计算机文件送到远程计算机上(上传-put). FTP的协议的特点: 支持C/S模式,一个FTP服务器可以同时给多个客户端传送数据. 是一个应

理解FTP协议

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/5186117.html FTP协议用于在本地文件系统与远程文件系统之间传送文件. FTP使用两个并行的TCP连接: 控制连接:控制连接用于在客户和服务器之间发送控制信息.如用户名和口令.改变远程目录的命令或上传和下载文件的命令. 数据连接:数据连接用于传送文件. TCP服务器在21端口上监听控制连接,如果有客户要

python之模块ftplib(FTP协议的客户端)

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块ftplib(FTP协议的客户端) #需求:快速进行ftp上传 ,下载,查询文件 from ftplib import FTP ftp = FTP() #设置变量 timeout = 30 port = 21 ftp.connect('192.168.1.188',port,timeout) # 连接FTP服务器 ftp.login('UserName','888888') # 登录 p

小白日记27:kali渗透测试之Web渗透-Http协议基础,WEB

Http协议基础 Web技术发展[http://www.cnblogs.com/ProgrammerGE/articles/1824657.html] 静态WEB[网页] 动态WEB 属于一种应用程序 基于数据库 每个人看到的内容不同 根据用户输入,返回不同结果 WEB攻击类型有数百种 WEB攻击面 1.Network 2.OS 3.WEB Server 4.APP Server 5.Web Application 6.Database 7.Browser HTTP协议基础[http://www