编程问答
ftp、sftp、vsftp、ssh、vsftpd、sshd -凯发ag旗舰厅登录网址下载
零、概要总结
一、ftp
ftp,文件传输协议(file transport protocol),工作在osi网络模型的第七层 -- 应用层,使用 tcp 传输。
ftp 是基于 c / s 模型设计的,ftp 客户端发起会话,与 ftp 服务器建立连接。ftp会话期间要建立建立两个连接:
-
控制连接,一般使用服务器的 21 端口。主要于户传送命令和响应等控制信息,在整个交互过程中始终处于连接状态。
-
数据连接,一般使用服务器的 20 端口,只在每一次文件传送时打开,数据传送完成后则会关闭。
当控制连接撤销时,ftp会话结束。
ftp支持的模式:standard(port方式、主动模式)、passive(pasv、被动模式)。
1、主动模式
ftp client 首先与 server 的 tcp 21 端口建立控制连接,用来发送控令,client 需要接收数据的时候在这个通道上发送 port命令。port命令包含了 client 用什么端口接收数据。在传送数据的时候,server 通过自己的 tcp 20 端口连接至 client 的指定端口发送数据。
2、被动模式:
被动模式下控制连接与主动模式是一致的,不同的是控制连接建立后 client 会发送 pasv 命令,server 收到 pasv 命令后,打开一个临时端口并且通知客户端,客户端连接至 ftp 的此端口,然后 ftp 服务器通过这个端口传送数据。
总结:主动与被动是针对 ftp server 而言的。主动模式下,ftp服务器使用 20 端口主动连接 client 的指定端口。被动模式下,ftp server 告知 client 自己要使用的端口,然后等待 client 的连接。
匿名ftp
一般情况下如果想与一台 ftp server 进行文件传输,需要有该 server 的授权,即:使用该 server 的注册用户进行登录后,才能传输文件。而这种情况违背了互联网的开放性,互联网上的 ftp 服务器成千上万,不可能要求每个用户在每台ftp服务器上都拥有帐号。
匿名 ftp 是这样一种机制,用户可通过它连接到远程 ftp server 上进行文件的上传或下载,而不需要成为其注册用户。系统管理员建立一个特殊的用户帐号(匿名帐号),一般名为 anonymous 或 ftp ,互联网上的任何人在任何地方都可使用该用户的帐号。
通过 ftp 程序连接匿名 ftp 服务器的方式同连接普通 ftp 服务器的方式类似,只是在要求提供用户帐号时必须输人anonymous 或 ftp,而该用户帐号的口令可以是任意的字符。
当远程服务器提供匿名 ftp 服务时,会预先指定某些目录及文件向公众开放,允许匿名用户的存取,而系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名 ftp 服务器都只允许用户下载文件,而不允许用户上传文件。
二、sftp
sftp(secure file transfer protocol),使用 ssh 协议进行 ftp 传输的协议叫 sftp(安全文件传输协议)。sftp 在 linux 系统中,传输默认的端口为 22 端口,这种传输方式更为安全,传输双方既要进行密码安全验证,还要进行基于密钥的安全验证,有效的防止了“中间人”的威胁和攻击。
三、ssh
ssh(secure shell)本身是一组协议。在进行数据传输之前,ssh 先对联机数据包通过加密技术处理,加密后再进行数据传输,确保了传递的数据安全。
在默认状态下,ssh 服务主要提供 2 个服务功能:
提供类似 telnet 远程联机服务的服务。
类似 ftp 服务的 sftp-server,借助 ssh 协议来传输数据的,提供更安全的sftp服务。
所以 ssh 服务本身就可以提供 sftp 服务。
linux下,自带的 ssh 服务器端软件为 openssh,其守护进程为 sshd 。
四、vsftp
vsftp(very secure ftp)是在类 unix 系统上使用的 ftp 服务软件(注意不是 sftp)。
五、vsftpd
vsftpd 是 vsftp 服务的守护进程。
六、sshd
sshd 是 ssh 服务(openssh)的守护进程。
七、总结
因为 ssh 提供类似 ftp 的服务,所以不必再安装 vsftp 软件。
(saw:game over!)
总结
以上是凯发ag旗舰厅登录网址下载为你收集整理的ftp、sftp、vsftp、ssh、vsftpd、sshd的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。
- 上一篇:
- 下一篇: javascript / node.js