1. 程式人生 > >ftp和sftp

ftp和sftp

工作 新手 數據連接 大於 linux tails 基礎 通過 .net

一、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

ftp和sftp