6. 文件传输协议FTP

6.1 FTP主动和被动模式

(1)FTP协议

  ①与其他协议不同,FTP协议在客户端访问FTP服务器时需要建立两个TCP连接一个用来传输FTP命令,一个用来传输数据

  ②在FTP服务器上需要开放两个端口,一个命令端口(或称为控制端口)和一个数据端口。通常命令端口为21,数据端口为20。当考虑主动/被动模式时,数据端口可能不是20。

(2)主动模式(建立传输数据的TCP连接由FTP服务器主动发起)

  ①工作过程

    A.第1步中,FTP客户端提交PORT命令并允许服务器来回连它的数据端口(1027)。

    B.第2步中,服务器返回确认。

    C.第3步中,FTP服务器向客户端发送TCP连接请求,目标端口为1027源端口为20.为传输数据发起建立连接的请求。

    D.第4步中,FTP客户端发送确认数据服文,目标端口20,源端口1027,建立传输数据的连接。

  ②主要问题

    A.主动模式下FTP服务器只需打开TCP的21端口和20端口。而FTP客户端防火墙要将TCP协议号大于1023的端口全部打开

    B.主动模式下FTP的主要问题在客户端,因为服务器为了建立传输数据的连接,会回连客户端指定的端口。对于客户端防火墙来说,这是从外部系统到内部客户端的连接,通常会被阻塞,除非关闭客户端防火墙。

(3)被动模式(命令连接和数据连接都由客户端发起,FTP服务器只是被动连接

  ①工作过程

    A.在第1步中,客户端的命令端口与服务器的命令端口建立连接,并发送命令“PASV”。(注意:与主动模式不同,客户端不需要提交回连的数据端口)。

    B.服务器返回命令“PORT 2024”告诉客户端,服务器用哪个端口侦听数据连接。

    C.客户端初始化一个从自己的数据端口到服务器端指定的数据端口的数据连接

    D.服务器给客户端的数据端口返回一个“ACK”响应。

  ②主要问题

    A.被动模式解决了主动模式的问题,但同时也给服务器带来更多的问题。最大的问题就是需要允许从任意远程终端到服务器高位端口的连接,而服务器需要开放端口范围

    B.FTP服务允许管理员指定FTP服务器使用的端口范围。

6.2 实战

(1)在Win2003上搭建FTP服务器

  ①“添加/删除Windows组件”→“Windows组件”→“应用程序服务器”→双击“Internet信息服务”→“文件传输协议(FTP)服务”

  ②在D盘下建立文件夹作为FTP的根目录(如D:\homeWork)

  ③删除默认FTP,新建FTP站点,填写IP和端口(保留默认即可)。注意,当出现“FTP用户隔离”时选择“不隔离用户”。

(2)访问FTP服务器,

  ①客户端xp访问ftp服务器并上传/下载文件,然后运行netstat –an查看端口,可以看到FTP服务端使用的是两个(21端口和x端口,如果x为20说明是主动模式,否则为被动模式)

  ②更改FTP连接模式:IE→“Internet选项”→“高级”→取消或选择“使用被动FTP”。(注意,采用主动或被动模式是由客户端选择的)

(3)FTP隔离用户模式

  ①用户隔离的目的同一个FTP站点下,不同用户访问不同的目录(或文件)而不影响其他用户的目录或文件。要使用该功能,需在创建FTP站点是指定为“隔离用户”模式(如下图)

  ②规划目录结构:隔离用户模式的FTP站点对目录的名称和结构有一定要求。首先FTP站点的主目录必须是NTFS分区,然后在主目录中创建一个名为“LocalUser”的子目录最后“LocalUser”目录下创建和用户帐号名称相一致的文件夹和一个名为Public的文件夹

  ③创建让所有用户共享的文件夹。步骤如下:

    A.在public、Wang和Zhang目录下分别创建一个文件夹(如Share)

    B.在虚拟机中新增一块磁盘,然后右键“我的电脑”→“管理”→“磁盘管理”找到新增加的磁盘(如磁盘1),并授于“everyone”对磁盘的访问权限“完全控制”

    C.将新磁盘1映射到三个Share文件中去方法:在“磁盘管理”中右键“磁盘1”→“更改驱动号和路径”→“添加”→选择“装入以下空白NTFS文件夹中”,并浏览到上述的Share文件夹。按同样的方法将磁盘1映射其他Share文件夹去。

  ④ 访问FTP:输入ftp站点地址后,分别以匿名、Wang和Zhang用户进行访问。(注意:必须先在FTP服务器上创建Wang和Zhang两个用户,创建命令如net user Wang 123 /add等)

6.3 FTP命令访问ftp服务器

(1)ftp的常用命令:open(连接ftp服务器)、ls(列出目录)、mkdir(创建目录)、get(下载文件)、put(上传文件)、quit(退出ftp命令行)

(2)实例分析

C:\Documents and Settings\Administrator>ftp
ftp> open 192.168.80.20 //连接到ftp服务器
Connected to 192.168.80.20.
Microsoft FTP Service
User (192.168.80.20:(none)): zhang //输入账户
Password required for zhang.
Password: //输入密码,不回显输入,不能是空密码
User zhang logged in.
ftp> ? //显示可用命令
Commands may be abbreviated. Commands are: ! delete literal prompt send
? debug ls put status
append dir mdelete pwd trace
ascii disconnect mdir quit type
bell get mget quote user
binary glob mkdir recv verbose
bye hash mls remotehelp
cd help mput rename
close lcd open rmdir
ftp> dir //列出FTP服务器上的内容
PORT command successful.
Opening ASCII mode data connection for /bin/ls.
-- :56PM <DIR> Share
-- :25PM zhang.txt
Transfer complete.
ftp: 收到 字节,用时 .00Seconds .00Kbytes/sec.
ftp> mkdir abc //创建abc子目录
"abc" directory created.
ftp> dir
PORT command successful.
Opening ASCII mode data connection for /bin/ls.
-- :49AM <DIR> abc
-- :56PM <DIR> Share
-- :25PM zhang.txt
Transfer complete.
ftp: 收到 字节,用时 .00Seconds .00Kbytes/sec.
ftp> get zhang.txt //下载文件,文件名有空格要加引号,如"Zhang hai.txt"。
//默认保存在C:\Documents and Settings\Administrator下
PORT command successful.
Opening ASCII mode data connection for zhang.txt( bytes).
Transfer complete.
ftp: 收到 字节,用时 .00Seconds .00Kbytes/sec.
ftp> put //使用命令上传文件
Local file "c:\wrar511sc.exe" //指本文件路径和名称
Remote file winrar.exe //指定上传之后的文件名
PORT command successful.
Opening ASCII mode data connection for winrar.exe.
Transfer complete.
ftp: 发送 字节,用时 .05Seconds .57Kbytes/sec.
ftp> dir
PORT command successful.
Opening ASCII mode data connection for /bin/ls.
-- :49AM <DIR> abc
-- :56PM <DIR> Share
-- :59AM winrar.exe
-- :25PM zhang.txt
Transfer complete.
ftp: 收到 字节,用时 .00Seconds .00Kbytes/sec.
ftp> quit //退出ftp命令行

第9章 应用层(5)_文件传输协议FTP的更多相关文章

  1. 【知识强化】第六章 应用层 6.3 文件传输协议FTP

    这节课我们来学习一下文件传输协议FTP. 我们知道一个文件的传输过程呢一定需要协议的规定,那在文件传送协议这一块呢有很多个协议.比较主要的两个一个是文件传送协议FTP,一个是简单文件传送协议TFTP. ...

  2. 文件传输协议FTP、SFTP和SCP

    网络通信协议分层 应用层: HTTP(Hypertext Transfer Protocol 超文本传输协议,显示网页) DNS(Domain Name System) FTP(File Transf ...

  3. 【传输文件】文件传输协议FTP、SFTP和SCP

    网络通信协议分层 应用层: HTTP(Hypertext Transfer Protocol 超文本传输协议,显示网页) DNS(Domain Name System) FTP(File Transf ...

  4. 文件传输协议-FTP

    一.FTP概述 FTP(File Transfer Protocol 文件传输协议)C/S结构的应用层协议.由服务端和客户端两个部分共同实现文件传输功能 FTP服务器普遍部署于内网中,具有容易部署.方 ...

  5. 文件传输协议FTP

    之前已经了解了TCP/IP这种低级别的协议,还有一些网络协议包括文件传输(FTP,STP).阅读Usenet新闻组(NNTP).电子邮件发送(SMTP).从服务器上下载电子邮件(POP3.IMAP)等 ...

  6. FTP(文件传输协议)工作原理

    目前在网络上,如果你想把文件和其他人共享.最方便的办法莫过于将文件放FTP服务器上,然后其他人通过FTP客户端程序来下载所需要的文件. 1.FTP架构 如同其他的很多通讯协议,FTP通讯协议也采用客户 ...

  7. 文件传输协议(FTP)

    文件传输协议(FTP)用于用户在两台主机之间进行远距离的文件传输,并保证传输的可靠性. FTP采用客户机/服务器的方式,由FTP服务器和FTP客户机两部分组成. FTP服务器中以目录结构保存着各种文件 ...

  8. 安全文件传输协议之SFTP的使用

    一.SFTP概述 在前几篇文章,我们讲到了文件传输协议FTP(File Transfer Protocol),那也是使用比较广泛的文件服务器,但是我们需要知道,Linux系统并不自带FTP程序 如果要 ...

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

    第35章      FTP文件传输协议基础知识 本章节为大家讲解FTP(File Transfer Protocol,文件传输协议)的基础知识,方便后面章节的实战操作. (本章的知识点主要整理自网络) ...

随机推荐

  1. 算法设计与分析基础 (Anany Levitin 著)

    第1章 绪论 1.1 什么是算法 1.2 算法问题求解基础 1.2.1 理解问题 1.2.2 了解计算设备的性能 1.2.3 在精确解法和近似解法之间做出选择 1.2.4 算法的设计技术 1.2.5 ...

  2. 关于C# winform怎么调用webapi来获取到json数据

    C/S系统也可以和B/S系统一样实现“前后端分离”,那这样写winform就相当于纯粹的前端页面了,然后再单独部署一个webapi项目,通过api调用数据库进行数据的操作,有利于维护和数据安全性的提高 ...

  3. C# 键盘响应事件及键值对照表

    键盘响应事件总结 键盘响应事件是在用户按下某个键后触发的事件,可以是任意操作,但不是任意键都可以被捕获的. 原型:public event KeyPressEventHandler KeyPress ...

  4. C#使用Xamarin开发Android应用程序 -- 系列文章

    Xamarin开发Android应用程序 利用Xamaria构建Android应用-公交发车信息屏 Xamarin版的C# SVG路径解析器 C#使用Xamarin开发可移植移动应用(1.入门与Xam ...

  5. 电脑上不安装Oracle时,C# 调用oracle数据库,Oracle客户工具 【转载】

    http://www.cnblogs.com/jiekzou/p/5047850.html Oracle的安装包通常都比较大,安装又比较费时,而且如果安装过程中不幸出错,各种蛋疼,即便是安装过N遍的老 ...

  6. 将react升级到15之后的坑

    问题来源: 运用ant-design 的metion组件必须要使用react 15.x以上的版本,而目前所用的版本是 react 0.14.x版本,所以就不得不对react进行升级   出现的问题: ...

  7. i++和++i的笔试题

    i = ++i + i++ + i++ + i++; 把每个 i++或者++i看作一个部分,他们的分别再下一个 i++或者++i改变,中途赋值的话,就返回这个部分的值 来自:https://www.j ...

  8. 服务发现:Zookeeper vs etcd vs Consul 参考自http://dockone.io/article/667

    服务发现:Zookeeper vs etcd vs Consul [编者的话]本文对比了Zookeeper.etcd和Consul三种服务发现工具,探讨了最佳的服务发现解决方案,仅供参考. 如果使用预 ...

  9. XE5 Android 开发实现手机打电话和发短信 [转]

    其实都可以通过intent和URI调用系统功能.Windows程序员可以理解成是ShellExecute.这个是万金油.可以有调用各种功能.后面会介绍. 1.短信息.很简单 方法a.不使用Intent ...

  10. 一加3刷不了官方recoery

    遇到 target reported max download size of 直接用救砖工具,恢复出厂. http://www.oneplusbbs.com/thread-2849353-1-1.h ...