文件传输协议FTP、SFTP和SCP

ftp、sftp、vsftp、ssh、vsftpd、sshd、scp

通信协议分层:

应用层:
HTTP(Hypertext Transfer Protocol 超文本传输协议,显示网页)
DNS(Domain Name System)
FTP(File Transfer Protocol)文件传输协议,对应FTP服务
SFTP(SSH File Transfer Protocol,和FTP不一样)安全文件传输协议, 对应SFTP服务
SCP(Secure copy,based on SSH)
SSH (Secure Shell) 一组协议

通信层:
TCP(Transmission Control Protocol 三次握手传输协议)
UDP

网络层:
IP(Internet Protocol)
ICMP(Internet Control Message Protocol,主要用于路由发送错误报告)

链接层:
MAC(media access control)

常见守护进程及工具:
VSFTP:一个提供SFTP服务功能的软件
VSFTPD:VSFTP软件的守护进程
SSHD:SSH服务的守护进程

常见的提供FTP服务的软件:proftp、tftp
常见的提供SFTP服务的软件:vsftp、openssh(openssh-server, openssh-client) 等

文件传输协议:
一、FTP
FTP,文件传输协议(File Transport Protocol),工作在OSI网络模型的第七层—应用层,使用TCP传输。

FTP是基于客户–服务器(CS)模型设计的,ftp客户端发起会话,与ftp服务器建立连接。FTP会话期间要建立建立两个连接:控制连接和数据连接。控制连接一般使用21端口,主要于户传送命令和响应等控制信息,在整个交互过程中始终处于连接状态;数据连接一般使用服务器的20端口,只在每一次文件传送时打开,数据传送完成后则会关闭。当控制连接撤销时,FTP会话结束。
FTP支持的模式:Standard(PORT方式、主动模式)、Passive(PASV、被动模式)。

1、主动模式:
FTP客户端首先与服务器的TCP21端口建立控制连接,用来发送控令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器通过自己的TCP20端口连接至客户端的指定端口发送数据。

2、被动模式:
被动模式下控制连接与主动模式是一致的,不同的是控制连接建立后会发送PASV命令,服务器收到PASV命令后,打开一个临时端口并且通知客户端,客户端连接至ftp的此端口,然后ftp服务器通过这个端口传送数据。

总结:主动与被动是针对FTP服务器而言的,主动模式下,FTP服务器使用20端口主动连接客户端的指定端口。被动模式下,FTP服务器告知客户端自己要使用的端口,然后等待客户端的连接。

匿名FTP:
一般情况下如果想与一台ftp服务器进行文件传输,需要有该服务器的授权,即使用该服务器的注册用户进行登录后,才能传输文件。而这种情况违背了互联网的开放性,互联网上的FTP服务器成千上万,不可能要求每个用户在每台FTP服务器上都拥有帐号。
匿名FTP是这样一种机制,用户可通过它连接到远程FTP服务器上,进行文件的上传或下载,而不需要成为其注册用户。系统管理员建立一个特殊的用户帐号(匿名帐号),一般名为anonymous或ftp,互联网上的任何人在任何地方都可使用该用户的帐号。
通过FTP程序连接匿名FTP服务器的方式同连接普通FTP服务器的方式类似,只是在要求提供用户帐号时必须输人anonymous或ftp,而该用户帐号的口令可以是任意的字符。
当远程服务器提供匿名FTP服务时,会预先指定某些目录及文件向公众开放,允许匿名用户的存取,而系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP服务器都只允许用户下载文件,而不允许用户上传文件。

二、SFTP
SFTP(Secure File Transfer Protocol)安全文件传输协议, SFTP在linux系统中,传输默认的端口为22端口,这种传输方式更为安全,传输双方既要进行密码安全验证,还要进行基于密钥的安全验证,有效的防止了“中间人”的威胁和攻击。

三、SSH
SSH(Secure Shell)是一组协议,在进行数据传输之前,SSH先对联机数据包通过加密技术处理,加密后在进行数据传输,确保了传递的数据安全。在默认状态下,SSH服务主要提供两个服务功能:一个是提供类似telnet远程联机服务器的服务;另一个是类似FTP服务的sftp-server,借助SSH协议来传输数据的,提供更安全的SFTP服务。所以SSH服务本身就可以提供SFTP服务。

四、SCP
SCP(Secure Copy):SCP就是Secure copy,是用来进行远程文件复制的,并且整个复制过程是加密的。数据传输使用ssh,并且和使用和ssh相同的认证方式,提供相同的安全保证。

五、VSFTP
VSFTP(Very Secure FTP)是在类Unix系统上使用的FTP服务软件,其对应的守护进程是vsftpd(vsftp daemon)。

六、vsftpd
vsftpd是VSFTP服务的守护进程。

七、sshd
sshd是SSH服务的守护进程。

总结:因为ss提供类似ftp的服务,所以不必再安装vsftp软件。

比较:
FTP 基于TCP来传输文件,明文传输用户信息和数据。
SFTP 基于SSH来加密传输文件,可靠性高,可断点续传。
SCP 是基于SSH来加密拷贝文件,但要知道详细目录,不可断点续传。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值