当前位置: 首页 > news >正文

mac使用被动ftp模式(pasv)_浅谈FTP,SFTP,FTPS区别

b19614a4-4b10-eb11-8da9-e4434bdf6706.png

一、FTP(文件传输协议)

FTP全称是File Transfer Protocol。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:”下载”(Download)和”上传”(Upload)。”下载”文件就是从远程主机拷贝文件至自己的计算机上;”上传”文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20,FTP的任务是从一台计算机将文件传送到另一台计算机,不受操作系统的限制。

FTP的传输有两种方式:ASCII、二进制。

1.ASCII传输方式

假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。

但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝。

2.二进制传输模式

在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。

如在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会损坏数据。(ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果传输二进制文件,所有的位都是重要的。)

FTP支持两种模式:Standard (PORT方式,主动方式),Passive (PASV,被动方式)。

1.Port模式

FTP 客户端首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。

2.Passive模式

建立控制通道和Standard模式类似,但建立连接后发送Pasv命令。服务器收到Pasv命令后,打开一个临时端口(端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口传送数据。

很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

二、FTPS (一种多传输协议)

一种多传输协议,相当于加密版的FTP。默认端口号是21。当你在FTP服务器上收发文件的时候,你面临两个风险。第一个风险是在上载文件的时候为文件加密。第二个风险是,这些文件在你等待接收方下载的时候将停留在FTP服务器上,这时你如何保证这些文件的安全。你的第二个选择(创建一个支持SSL的FTP服务器)能够让你的主机使用一个FTPS连接上载这些文件。这包括使用一个在FTP协议下面的SSL层加密控制和数据通道。一种替代FTPS的协议是安全文件传输协议(SFTP)。这个协议使用SSH文件传输协议加密从客户机到服务器的FTP连接。SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

FTPS是在安全套接层使用标准的FTP协议和指令的一种增强型FTP协议,为FTP协议和数据通道增加了SSL安全功能。FTPS也称作“FTP-SSL”和“FTP-over-SSL”。SSL是一个在客户机和具有SSL功能的服务器之间的安全连接中对数据进行加密和解密的协议。

和sftp连接方法类似,在windows中可以使用FileZilla等传输软件来连接FTPS进行上传,下载文件,建立,删除目录等操作,在FileZilla连接时,有显式和隐式TLS/SSL连接之分,连接时也有指纹提示。

b59614a4-4b10-eb11-8da9-e4434bdf6706.png

SSL/TLS协议在传输层(TCP/IP)之上、但是在应用层之下工作的。因此,它可以很容易在诸如HTTP,Telnet,POP3,IMAP4,SMTP和FTP等应用层协议上实现。SSL安全扩展至少有两种不同的初始化方法:显式安全和隐式安全。

显示安全:为了建立SSL连接,显式安全要求FTP客户端在和FTP服务器建立连接后发送一个特定的命令给FTP服务器。客户端使用服务器的缺省端口。

隐式安全: 当FTP客户端连接到FTP服务器时,隐式安全将会自动和SSL连接一起开始运行。在隐式安全中服务器定义了一个特定的端口(TCP端口990)让客户端来和其建立安全连接。

三、SFTP(安全文件传送协议)

sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。

相关文章:

  • rs232接口_你知道RS232与RS485接口的区别吗?
  • agx 安装ros opencv_「OpenCV+Python」一行代码搞定张正友相机标定及图像矫正
  • 三菱plc232数据线驱动下载_2020山东三菱PLCFX3GA40MT回收回收量大收购诚信回收
  • getaway网关转发去前缀_如何极度压榨网络性能:揭秘 UCloud 的物理云网关
  • esp32 camera_利用Phyphox和ESP32蓝牙探究光敏电阻电流与光强的关系
  • iphone如何信任软件_不是什么数据都能恢复的:留神那些号称可以恢复iPhone数据的工具...
  • 360安全浏览器兼容模式怎么设置_网络资讯:360安全浏览器怎么样
  • csrf攻击原理与解决方法_动图之磁翻板液位计原理及指示异常的判定解决方法...
  • ligergrid 奇偶行效果_淘宝补单多久有效果?如何操作?
  • mybatis核心工厂类是哪一个_温州核心区将建文化新地标!设计方案出炉,你喜欢哪一个?...
  • 大多数日志文件的后缀名是_网络日志分析的重要性
  • eclipse可以写前端吗_ISO9001质量体系认证证书上可以写两个公司名称吗?
  • 数字电路数据选择器及其应用实验报告_岂止于大,一文读懂大数据及其在推荐系统的应用...
  • java前沿技术_初学者如何才能成为一名优秀的Java程序员
  • xampp去运行php文件_五、??文件包含漏洞
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 【EOS】Cleos基础
  • C++入门教程(10):for 语句
  • CentOS7简单部署NFS
  • Java 网络编程(2):UDP 的使用
  • JAVA之继承和多态
  • Linux gpio口使用方法
  • Ruby 2.x 源代码分析:扩展 概述
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 码农张的Bug人生 - 见面之礼
  • 前端性能优化--懒加载和预加载
  • 使用Swoole加速Laravel(正式环境中)
  • !!Dom4j 学习笔记
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • ${factoryList }后面有空格不影响
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (31)对象的克隆
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)四层和七层负载均衡的区别
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET Core 成都线下面基会拉开序幕
  • .Net MVC4 上传大文件,并保存表单
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • @Service注解让spring找到你的Service bean
  • @SuppressWarnings(unchecked)代码的作用
  • @WebServiceClient注解,wsdlLocation 可配置
  • []常用AT命令解释()
  • [AutoSar NVM] 存储架构
  • [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)
  • [C#小技巧]如何捕捉上升沿和下降沿