FTP相关介绍

FTP

	1)File Transfer Protocol ( FTP ) 是相当古老的网络协议之一,他最主要的功能就是进行 Server端与 Client 端之间的档案传送的功能。这个协议使用的是明码传输方式,因此在使用过程中存在安全问题。
2)FTP的传输使用的是tcp传输协议,是一种C/S模式架构,服务端通过FTP服务向用户提供FTP服务,客户端通过客户端命令连接服务器来进行指令的执行与数据的传输。
3)TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。FTP的任务是从一台计算机将文件传送到另一台计算机,不受操作系统的限制。需要进行远程文件传输的计算机必须安装和运行ftp客户程序。

FTP双通道协议:数据和命令连接

	三次握手来建立tcp会话连接,而FTP服务使用了这种建立连接的过程。这种连接分别是数据传输连接和命令通信连接。
数据传输连接:指数据的传输,是按需创建和关闭的连接。
命令通信连接:指文件管理类命令,始终在线的连接。

FTP的传输方式

	FTP的传输有两种方式:ASCII、二进制(默认)。
ASCII传输方式
假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。
但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝。
二进制传输模式
在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。
如在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会损坏数据。(ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果传输二进制文件,所有的位都是重要的。)

FTP支持的模式

	FTP支持两种模式:Standard (PORT方式,主动方式),Passive (PASV,被动方式)。
主动(port模式):服务器主动连接
主动方式是指数据传输连接由服务器主动创建,服务端主动去连接客户端的某个随机端口。
过程:
1》客户端先随机一个端口如5000,然后客户端以这个端口去连接服务端的21端口来完成命令连接的建立
2》在完成命令连接建立后,服务端会根据当前的配置(主动方式)以tcp的20号端口主动去连接对应客户端的50001(5000+1)号端口来进行数据传输的连接。
3》在数据传输连接建立完成后就开始数据的传输,数据传输的格式就是上面所说明的(源数据是什么格式编码的就以什么格式传输)
or
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT 命令告诉服务器:“我打开了XX端口,你过来连接我”。于是服务器从20端口向客户端的 XX端口发送连接请求,建立一条数据链路来传送数据。 被动(passive模式):客户端主动连接
被动方式是指数据传输连接由客户端的某个随机端口去连接服务端的某个随机端口。
过程:
1》客户端先随机一个端口如5000,然后客户端以这个端口去连接服务端的21端口来完成命令连接的建立。
2》在完成命令连接建立后,服务端会根据当前的配置(被动方式)告诉客户端请连接我的6000端口(随机)来进行数据的传输。
3》于是乎,客户端就以5001(5000+1)号端口去连接服务端的6000端口来进行数据传输的连接。
4》在数据传输连接建立完成后,就开始数据的传输,数据传输的格式就是上面所说明的(源数据是什么格式编码的就以什么格式传输)。
or
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请 求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV 命令告诉客户端:“我打开了XX端口,你过来连接我”。于是客户端向服务器的XX端口 发送连接请求,建立一条数据链路来传送数据。
服务器被动模式数据端口示例:
227 Entering Passive Mode (192,168,175,138,224,59)
服务器数据端口为:224*256+59
从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。

FTP的相关应用软件程序

	FTP 服务器:
Wu-ftpd
Proftpd
Pureftpd
ServU
IIS
vsftpd
Very Secure FTP Daemon,CentOS默认FTP服务器;高速、稳定,下载速度是WU-FTP的两倍。ftp数据单机最多可支持15000个并发 客户端软件:
ftp
ftp -A ftpserver port -A主动模式 -p被动模式
lftp
lftp –u username ftpserver
lftp username@ftpserver
lftpget
lftpget ftp://ftpserver/pub/file
wget
curl
gftp
GUI centos5 最新版2.0.19 (11/30/2008)
filezilla
CuteFtp
FlashFXP
LeapFtp
IE ftp://username:password@ftpserver

FTP用户身份

	FTP可以实现不同等级的用户身份登录验证,这就可以根据不同的用户身份来分配不同的数据操作权限。
Real帐户
这类用户是指在FTP服务上拥有帐号。当这类用户登录FTP服务器的时候,其默认的主目录就是其帐号命名的目录。但是,其还可以变更到其他目录中去。如系统的主目录等等。
Guest用户
在FTP服务器中,我们往往会给不同的部门或者某个特定的用户设置一个帐户。但是,这个账户有个特点,就是其只能够访问自己的主目录。服务器通过这种方式来保障FTP服务上其他文件的安全性。这类帐户,在Vsftpd软件中就叫做Guest用户。拥有这类用户的帐户,只能够访问其主目录下的目录,而不得访问主目录以外的文件。
Anonymous(匿名)用户
这也是我们通常所说的匿名访问。这类用户是指在FTP服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源,是可以下载这些共享资源,一般不可以上传资源。即使有些匿名FTP主机确实允许用户上传文件,用户也只能将文件上传至某一指定上传目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载。对应的用户有ftp,anonymous,不需要密码就可以登录访问。
系统用户:
Linux 用户, 用户/etc/passwd, 密码/etc/shadow
虚拟用户:
是非系统用户,是特定服务的专用用户,有独立的用户/密码文件。虚拟用户在系统上根本就不存在,因此无法完成对服务器的操作,所以通过虚拟用户可以一定程度上减少ftp攻击对系统的威胁。
在组建FTP服务器的时候,我们就需要根据用户的类型,对用户进行归类。默认情况下,Vsftpd服务器会把建立的所有帐户都归属为Real用户。

FTP的状态码

	1XX :信息 	125 :数据连接打开
2XX :成功类状态 200 :命令OK
230 :登录成功
3XX :补充类 331 :用户名OK
4XX :客户端错误 425 :不能打开数据连接
5XX :服务器错误 530 :不能登录

FTP相关内容的更多相关文章

  1. linux用户权限相关内容查看

    linux用户权限相关内容查看 1   用户信息 创建用户一个名为 webuser 的账号,并填写相应的信息: root@iZ94fabhqhuZ:~# adduser webuser Adding ...

  2. SharePoint安全 - 在Goolge和Bing中查找SharePoint相关内容

    博客地址 http://blog.csdn.net/foxdave 本篇提供两个查询串字典,分别对应Google和Bing的搜索,用来查询SharePoint网站的相关内容 Google ShareP ...

  3. 韩顺平细说Servlet视频系列之tom相关内容

    韩顺平细说Servlet视频系列之tom相关内容 tomcat部署项目操作(注意:6.0版本以后的支持该操作,5.x版本需要另外配置?待验证!) 项目发布到tomcat的webapps文件下,然后启动 ...

  4. jQuery实现页内查找相关内容

    当需要在页面中查找某个关键字时,一是可以通过浏览器的查找功能实现,二是可以通过前端脚本准确查找定位,本文介绍通过jQuery实现的页面内容查找定位的功能,并可扩展显示查找后的相关信息. 本文以查找车站 ...

  5. Struts2(四)——页面相关内容

    上篇博客总结了数据流转各个方面的内容,这篇重点说一下框架对于界面上知识. 一,说到页面,记得在总体介绍中,说到Struts2比Struts1的一方面优势就是它支持更多的视图技术(Freemarker, ...

  6. 学习笔记之html5相关内容

    写一下昨天学习的html5的相关内容,首先谈下初次接触html5的感受.以前总是听说html5是如何的强大,如何的将要改变世界.总是充满了神秘感.首先来谈一下我接触的第一个属性是  input的里面的 ...

  7. 基于KNN的相关内容推荐

    如果做网站的内容运营,相关内容推荐可以帮助用户更快地寻找和发现感兴趣的信息,从而提升网站内容浏览的流畅性,进而提升网站的价值转化.相关内容 推荐最常见的两块就是“关联推荐”和“相关内容推荐”,关联推荐 ...

  8. 第一天上午——HTML网页基础知识以及相关内容

    今天上午学习了HTML基础知识以及相关内容,还有DW的基本使用方法. HTML(HyperText Markup Language):超文本标记语言,超文本:网页中除了包含文本文字之外,还包含了图片, ...

  9. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

随机推荐

  1. excel 分类汇总函数

    1.先用数组公式对单元格区域 B3:B39 ,进行提取去重复非空调单元格信息.单元格B52数组公式: =INDIRECT(TEXT(MIN(IF((COUNTIF(B$51:B51,B$3:B$39) ...

  2. php-cpp用来开发php的拓展

    官网: http://www.php-cpp.com/documentation/install, 找时间要学一下.

  3. 【转】利用shell命令操作Memcached

    原文: 张宴的博客 —— http://zyan.cc/post/384/ -------------------------------------------------------------- ...

  4. C#实现模拟登录百度并发送私信

    首先获取Token,根据Token获取PubliKey,使用RSA加密POST数据 private Regex _regex = new Regex(@"\{.*\}", Rege ...

  5. php中的register_shutdown_function和fastcgi_finish_request

    在php中又两个方法都是在请求快结束的时候执行.方法名分别是 register_shutdown_function和fastcgi_finish_request.虽然执行的时机差不多,但是功能和应用场 ...

  6. Linux CentOS下安装、配置mysql数据库

    假设要在Linux上做j2ee开发.首先得搭建好j2ee的开发环境.包含了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有具体解说了Linux学习之CentOS(七)--Cen ...

  7. HTML CSS 编码规范

    返璞归真,代码规范也是一门艺术 黄金定律 永远遵循同一套编码规范 -- 可以是这里列出的,也可以是你自己总结的.如果你发现本规范中有任何错误,敬请指正.通过open an issue on GitHu ...

  8. kafka 和 zookeeper 常用命令记录

    启动zookeeper zkServer.sh start 启动kafka服务器 kafka-server-start.sh /software/kafka_2.10-0.10.2.1/config/ ...

  9. 更改scroll样式

    /*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/ ::-webkit-scrollbar { width: 2px; height: 80%; background: #fff; } /*定 ...

  10. mysql表分区 partition

    表分区 partition 当一张表的数据非常多的时候,比如单个.myd文件都达到10G, 这时,必然读取起来效率降低. 可不可以把表的数据分开在几张表上? 1: 从业务角度可以解决.. (分表,水平 ...