FTP相关内容

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 [email protected]
        lftpget
            lftpget ftp://ftpserver/pub/file
        wget
        curl
        gftp
            GUI centos5 最新版2.0.19 (11/30/2008)
        filezilla
        CuteFtp
        FlashFXP
        LeapFtp
        IE ftp://username:[email protected]

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 :不能登录

原文地址:https://www.cnblogs.com/shenxm/p/8577048.html

时间: 2024-11-06 15:38:31

FTP相关内容的相关文章

linux中Makefile文件相关内容

第一章.概述什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional(专业)的程序员,makefile还是要懂.这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义.特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力.因为,makefile关系到了整个

移动端 h5开发相关内容总结——CSS篇

移动端 h5开发相关内容总结——CSS篇 标签: css移动 2016-01-06 15:59 5536人阅读 评论(3) 收藏 举报  分类: HTML+CSS(17)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 1.移动端开发视窗口的添加 h5端开发下面这段话是必须配置的 <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=n

EF Code First 配置的相关内容

I.实体间一对一的关系 添加一个PersonPhoto类,表示用户照片类 1 /// <summary> 2 /// 用户照片类 3 /// </summary> 4 public class PersonPhoto 5 { 6 [Key] 7 public int PersonId { get ; set ; } 8 public byte [] Photo { get ; set ; } 9 public string Caption { get ; set ; } // 标题

【转帖】MATLAB 与 音频处理 相关内容摘记

MATLAB 与 音频处理 相关内容摘记 MATLAB 与 音频处理 相关内容摘记 MATLAB 与 音频处理 相关内容摘记 1 MATLAB 音频相关函数 1 MATLAB 处理音频信号的流程 2 音量标准化 2 声道分离合并与组合 3 数字滤波 3 数据转换 5 基于MATLAB 的数字滤波实验6 MATLAB 音频相关函数 声音数据输入输出函数: 可以方便地读写au和way文件,并可控制其中的位及频率. wavread()和wavwriteO. 声音播放: wavplay():播放wav声

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

本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding:utf-8from com.wenhy.crawler_baidu_baike import url_manager, html_downloader, html_parser, html_outputer print "爬虫百度百科调度入口" # 创建爬虫类class SpiderMai

学习笔记之html5相关内容

写一下昨天学习的html5的相关内容,首先谈下初次接触html5的感受.以前总是听说html5是如何的强大,如何的将要改变世界.总是充满了神秘感.首先来谈一下我接触的第一个属性是  input的里面的一个属性是 type="email".以前用html的时候,type是有很多类型的,有text,password,summit.就是没听说过email.当得知这个email是验证输入的内容是否为email格式的时候.我顿时兴奋了.以前接触到html的时候,如果要验证输入内容时,是需要写js

在生成一系列相关内容后,签名文件生成

然后上传刚刚生成的CSR文件 按下Generate后,稍等一会,证书就生成了,你可以下载然后安装到本机. 3. AppID 需要强调一下的是,这里的AppID和常说的AppleID不是一个概念.AppleID是用户在苹果的账号,在AppStore上下载应用时,需要使用的就是这个账号.而AppID则是应用的身份证,用来表明应用的ID. 在证书生成后,下一步就是生成AppID,相当于帮你想开发的应用生成一张身份证. AppID需要你起一个名字以方便描述.这里不能输入特殊字符. AppID还分成带通配

App Store审核指南中文版(2014.9.10更新):新增Apple Pay相关内容

苹果在9月3日对App Store审核指南进行了重大更新,新添加了扩展.HealthKit.HomeKit以及TestFlight相关内容.另外,在9月10日新品发布会之后,苹果再次更新了App Store审核指南,添加Apple Pay相关内容.文中红色部分是相对于此前版本的新增内容,蓝色部分表示苹果相关官方文档的链接. App Store Review Guidelines(英文版). 前言 感谢您付出宝贵的才华与时间来开发iOS应用程程序.从职业与报酬的角度而言,这对于成千上万的开发员来说

Flume sink 相关内容

SinkRunner.java 开启线程调用相应的Processor(Policy) , 根据  Policy调用process的返回值来决定线程睡眠时间,每次默认延后1s,最大默认为5s. public class SinkRunner implements LifecycleAware { private static final Logger logger = LoggerFactory .getLogger(SinkRunner.class); private static final