ftp和sftp

一、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客户端连接至此端口,进行通信。不需要创建一个新的连接。

  用法:命令模式下输入 ftp+IP地址,然后输入用户名密码,前提是你的Linux环境里安装了了ftp服务,登录后用get或者mget命令取文件,用put上传文件,bye命令退出。

二、sftp

  ftp是安全文件传输协议,于ftp类似。

  原理:SFTP是SSH的一部分,在SSH软件包中,已经包含了一个SFTP(Secure File Transfer Protocol)的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作。由于这种传输方式使用了加密/解密技术,文件传送相对来说是很安全的。

  用法:命令模式下输入 sftp 用户名@ip地址,其它命令和ftp类似。

三、ftp和sftp的区别

  我们平时习惯了使用ftp来上传下载文件,尤其是很多Linux环境下,我们一般都会通过第三方的SSH工具连接到Linux,但是当我们需要传输文件到Linux服务器当中,很多人习惯用ftp来传输,其实Linux默认是不提供ftp的,需要你额外安装FTP服务器。而且ftp服务器端会占用一定的VPS服务器资源。其实笔者更建议使用sftp代替ftp。

  主要因为:一、可以不用额外安装任何服务器端程序(我比较中意这个,哈哈~~,很多公司为了安全性Linux没有外网环境,只有SSH的时候,想传输文件是很悲催的问题)。二、会更省系统资源。三、SFTP使用加密传输认证信息和传输数据,相对来说会更安全。四、也不需要单独配置,对新手来说比较简单(开启SSH默认就开启了SFTP)。

  FTP是一种文件传输协议,一般是为了方便数据共享的。包括一个FTP服务器和多个FTP客户端。FTP客户端通过FTP协议在服务器上下载资源。而SFTP协议是在FTP的基础上对数据进行加密,使得传输的数据相对来说更安全。但是这种安全是以牺牲效率为代价的,也就是说SFTP的传输效率比FTP要低(不过现实使用当中,没有发现多大差别)。个人肤浅的认为就是:一;FTP要安装,SFTP不要安装。二;SFTP更安全,但更安全带来副作用就是的效率比FTP要低些。

 

文章参考了以下地址:

http://www.cnblogs.com/xuliangxing/p/7120130.html

https://blog.csdn.net/zhanghao143lina/article/details/53004532

http://www.cnblogs.com/xuliangxing/p/7120205.html

posted @ 2018-07-15 13:14  谁的小流浪  阅读(623)  评论(0编辑  收藏  举报