FTP
一、两种传输方式
ASCII
传输方式
假定用户正在拷贝的文件包含的简单ASCII
码文本,如果在远程机器上运行的不是UNIX
,当文件传输时ftp
通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。
但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件。在拷贝任何非文本文件之前,用binary
命令告诉ftp
逐字拷贝。
二进制传输方式
在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。
如在ASCII
方式下传输二进制文件,即使不需要也仍会转译。这会损坏数据。(ASCII
方式一般假设每一字符的第一有效位无意义,因为ASCII
字符组合不使用它。如果传输二进制文件,所有的位都是重要的。)
二、两种工作模式
主动模式(PORT
)
-
FTP 客户端首先和服务器的
TCP 21
端口建立连接,用来发送命令; -
客户端需要接收数据的时候在这个通道上给服务器发送
PORT
命令。PORT
命令包含了客户端用来接收数据的端口号; -
在传送数据的时候,服务器端通过自己的
TCP 20
端口连接至客户端的指定端口发送数据。(FTPserver
必须和客户端建立一个新的连接用来传送数据。)
被动模式(PASV
)
-
FTP
客户端首先和服务器的TCP 21
端口建立连接,用来发送命令(建立控制通道和Standard
模式类似); -
建立连接后发送
Pasv
命令。 -
服务器收到
Pasv
命令后,打开一个临时端口(端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求; -
客户端连接
FTP
服务器此端口,然后FTP
服务器将通过这个端口传送数据。
简而言之,主动模式的FTP
是指服务器主动连接客户端的数据端口,被动模式的FTP
是指服务器被动地等待客户端连接自己的数据端口。
被动模式的FTP
通常用在处于防火墙之后的FTP
客户端访问外界FTP
服务器的情况,因为在这种情况下,防火墙通常配置为不允许外界访问防火墙之后主机,而只允许由防火墙之后的主机发起的连接请求通过。因此,在这种情况下不能使用主动模式的FTP
传输,而被动模式的FTP
可以良好的工作。(相反,客户端访问处于防火墙之后的FTP
服务器则要用到主动模式)
FTPS
与SFTP
的对比
-
都是为
ftp
连接加密,协议非常相似。 -
FTPS
是借助ssl
协议加密,SFTP
是借助ssh
加密。ssl
是为http/smtp
等加密设计的,ssh
是为telnet/ftp
等加密、建立传输通道而设计的。 -
其实
ssh
建立传输通道就是为了加密和传输,而且这个通道是可以用来远程登录。 -
如果只说它们的功能,通俗的讲,
ssh
就像铺管子,ssl
就像打包裹,铺管子和打包裹都会使数据安全,都是一个制作密钥的过程,而因为ssh
是一个管子所以它很适合ftp
的安全传输。
简单的讲:sftp
协议是ssh
中的一条独立的协议,利用sftp
服务器就可以传输数据。
而ftps
是ftp-over-ssl
的意思,即ftp
借助ssl
协议加密传输,不但要用ftp
服务器还要用ssl
协议加密。(如果是ftp-over-ssh
,就是完全不同于sftp
的传输方式了,就是利用ftp
服务器和ssh
协议加密传输数据。 )
Ftp、Ftps与Sftp之间的区别
Ftp
FTP 是File Transfer Protocol
(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet
上的控制文件的双向传输。同时,它也是一个应用程序(Application
)。基于不同的操作系统有不同的FTP
应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP
的使用当中,用户经常遇到两个概念:”下载”(Download
)和”上传”(Upload
)。”下载”文件就是从远程主机拷贝文件至自己的计算机上;”上传”文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet
语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
Ftp服务器
简单地说,支持FTP
协议的服务器就是FTP
服务器。
与大多数Internet
服务一样,FTP
也是一个客户机/服务器系统。用户通过一个支持FTP
协议的客户机程序,连接到在远程主机上的FTP
服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。
Ftps
一种多传输协议,相当于加密版的FTP
。当你在FTP
服务器上收发文件的时候,你面临两个风险。第一个风险是在上载文件的时候为文件加密。第二个风险是,这些文件在你等待接收方下载的时候将停留在FTP
服务器上,这时你如何保证这些文件的安全。你的第二个选择(创建一个支持SSL
的FTP
服务器)能够让你的主机使用一个FTPS
连接上载这些文件。这包括使用一个在FTP
协议下面的SSL
层加密控制和数据通道。一种替代FTPS
的协议是安全文件传输协议(SFTP
)。这个协议使用SSH
文件传输协议加密从客户机到服务器的FTP
连接。
FTPS
是在安全套接层使用标准的FTP
协议和指令的一种增强型FTP
协议,为FTP
协议和数据通道增加了SSL
安全功能。FTPS
也称作“FTP-SSL
”和“FTP-over-SSL
”。SSL
是一个在客户机和具有SSL
功能的服务器之间的安全连接中对数据进行加密和解密的协议。
和sftp
连接方法类似,在windows中可以使用FileZilla
等传输软件来连接FTPS
进行上传,下载文件,建立,删除目录等操作,在FileZilla
连接时,有显式和隐式TLS/SSL
连接之分,连接时也有指纹提示。
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
。
SFTP
和FTPS
的区别
SFTP
和FTPS
都是为ftp
连接加密,协议非常相似。
一个是借助ssl
协议加密,一个时借助ssh
加密。
ssl
是为http/smtp
等加密设计的,ssh
是为telnet/ftp
等加密、建立传输通道而设计的。
其实ssh
建立传输通道就是为了加密和传输,而且这个通道是可以用来远程登录。如果只说它们的功能,通俗的讲,ssh
就像铺管子,ssl
就像打包裹,铺管子和打包裹都会使数据安全,都是一个制作密钥的过程,而因为ssh
是一个管子所以它很适合ftp
的安全传输。
简单的讲:sftp
协议是ssh
中的一条独立的协议,利用sftp服务器就可以传输数据。而ftps
是ftp-over-ssl
的意思,即ftp
借助ssl
协议加密传输,不但要用ftp
服务器还要用ssl
协议加密。(如果是ftp-over-ssh
,就是完全不同于sftp
的传输方式了,就是利用ftp
服务器和ssh
协议加密传输数据。 )
FTP
和SFTP
的区别
文件传送协议FTP
(File Transfer Protocol)是TCP/IP
协议簇中的一个成员,也是现在因特网上最广泛的文件传送协议。FTP
协议包括两个部分,一个是FTP
客户端,另一个是FTP
服务器。当然,FTP
服务器是用来存储文件资源的,FTP
客户端通过访问FTP
服务器来获得资源的。
一般情况下,当使用FTP
服务的时候,我们都知道默认是21
号端口,其实还有一个20
号端口。FTP
使用两个TCP
连接,21
号端口负责控制连接,20
号端口负责数据连接,这样才不会混乱,是FTP
可以更好的为我们服务。FTP
协议的工作方式可以分为主动方式和被动方式两种,主动是指FTP
客户端发送PORT
命令连接FTP
服务器,被动是FTP
客户端发送PASV
命令连接FTP
服务器。
主动方式:在通过21
号端口连接好控制通道后,客户端发送给服务器PORT
命令,就是给服务器说咱们俩通信你可以在那个端口进行,于是服务器打开20
号端口,连接上客户端的指定的端口进行连接,传送数据。需要创建一个新的连接。
被动方式:在通过21
号端口连接好控制通道后,客户端发送给服务器PASV
命令,就是给服务器说咱们俩通信的端口号你选择,然后服务器随机选择一个端口(大于1024
),FTP
客户端连接至此端口,进行通信。不需要创建一个新的连接。
安全文件传送协议SFTP
(Secure File Transfer Protocol)可以为文件传送提供安全的加密/解密技术。基本语法和FTP
差不多。SFTP
是SSH
的一部分,在SSH
软件包中,已经包含了一个SFTP
(Secure File Transfer Protocol)的安全文件传输子系统,SFTP
本身没有单独的守护进程,它必须使用sshd
守护进程(端口号默认是22)来完成相应的连接操作。由于这种传输方式使用了加密/解密技术,文件传送相对来说是很安全的,但是是有代价的,它的传输效率比FTP
要低得多。
SSL
证书是HTTP
明文协议升级HTTPS
加密协议的重要渠道,是网络安全传输的加密到通道。关于更多SSL
证书的资讯,请关注GDCA
(数安时代)。GDCA
致力于网络信息安全,已通过WebTrust
的国际认证,是全球可信任的证书签发机构。GDCA
专业技术团队将根据用户具体情况为其提供最优的产品选择建议,并针对不同的应用或服务器要求提供专业对应的HTTPS
解决方案。