sftp是ssh内含的协议,只要sshd服务器启动了,它就可用,它本身不需要ftp服务器启动。 FTP服务器和客户端要进行文件传输,就需要通过端口来进行。FTP协议需要的端口一般包括两种:
控制链路--------TCP端口21
所有你发往FTP服务器的命令和服务器反馈的指令都是通过服务器上的21端口传送的。
数据链路--------TCP端口20
数据链路主要是用来传送数据的,比如客户端上传、下载内容,以及列目录显示的内容等。 FTP服务器和客户端要进行文件传输,就需要通过端口来进行。
【 FTP连接的两种方式】:
在数据链路的建立上,FTP Server 为了适应不同的网络环境,支持两种连接模式:主动模式(Port)和被动模式(Pasv)。其实这两种连接模式主要是针对数据链路进行的,和控制链路无关。
主动模式
主动模式是这样工作的:客户端把自己的高位端口和服务器端口21建立控制链路。所有的控制命令比如Is或get都是通过这条链路传送的。
当客户端需要服务器端给它传送数据时,客户端会发消息给服务器端,告诉自己的位置和打开的高位端口(一般大于1024的端口都就叫高位端口),等候服务器 的20端口和客户端打开的端口进行连接,从而进行数据的传输。当服务器端收到信息后,就会和客户端打开的端口连接,这样数据链路就建立起来了。
采用主动模式连接服务器的客户端,当它位于NAT或者防火墙的保护之后时会碰到连接失败的问题。这是因为当防火墙接到服务器发送过来的信息的时候,并不知道应该发送给内部网络中的哪一台客户端造成的。
被动模式
被动模式是这样工作的:当客户端发送数据请求后,服务器也会发信息给客户端,告诉客户端:服务器在本地打开了一个高位端口P,你现在来连接我吧。当客户端收到该信息时,就会去连接服务器端的端口P,连接成功后,数据链路就建立了。
从上面的解释中我们可以看到,两种模式主要的不同是数据连接建立的不同。对于Port模式,是客户端在本地打开一个端口等服务器去连接建立数据连接,而Pasv模式就是服务器打开一个端口等待客户端去建立一个数据连接。

最新文章

  1. Starling中通过PivotX 和 PivotY 修改原点
  2. 主流ORM对比分析,莫人云亦云
  3. Ubuntu 16.04中安装Chromium浏览器
  4. Uva 11395 Sigma Function (因子和)
  5. mybatis的物理分页:mybatis-paginator
  6. centos使用denyhosts的问题,会将自己的IP自动加到hosts.deny的解决办法。
  7. 网上图书商城项目学习笔记-035工具类之JdbcUtils及TxQueryRunner及C3P0配置
  8. LINUX 内核调试基础+编程基础
  9. Asp.Net mvc筛选器中返回信息中断操作
  10. 设计模式总结6--适配器模式 adapter pattern
  11. [iOS Animation]-CALayer 图层几何学
  12. mpi中的广播
  13. PermGen space 内存溢出
  14. Nginx详解二十五:Nginx架构篇之Nginx常见的问题
  15. Android开发 - 更"聪明"的申请权限方式
  16. 吴裕雄 01-mysql管理
  17. Wooden Sticks(hdu1501)(sort,dp)
  18. cocoapods 报错
  19. lua调用c++函数返回值作用
  20. php 双引号字符串里包变量的用法

热门文章

  1. 关于bootstrap按钮的偏移
  2. redis的日常操作(1)
  3. JavaScript基础入门12 - 面向对象编程
  4. 【学习笔记】python3中yaml文件使用
  5. 通过id()函数学习python的数据存储以及引用方式
  6. php composer 开发自己的包
  7. LeetCode.1103-向人们分发糖果(Distribute Candies to People)
  8. flask 之(六) --- API|RestfulApi
  9. wms、wmts和wfs的区别
  10. 1 初识数据库操作 2 JDBC 入门