關於linux中FTP的兩種傳輸模式及常用的命令

2021-07-24 17:32:31 字數 2715 閱讀 9608

ascii 和binary模式區別:

用html 和文字編寫的檔案必須用ascii模式上傳,用binary模式上傳會破壞檔案,導致檔案執行出錯。

binary模式用來傳送可執行檔案,壓縮檔案,和檔案。

ascii 模式和binary模式的區別是回車換行的處理,binary模式不對資料進行任何處理,asci模式將回車換行轉換為本機的回車字元,比如unix下是\n,windows下是\r\n,mac下是\r

ascii模式下會轉換檔案

不能說是不同系統對回車換行解釋不同

而是不同的系統有不同的行結束符

unix系統下行結束符是乙個位元組,即十六進製制的0a

而ms的系統是兩個位元組,即十六進製制的0d0a

mac系統是乙個位元組,即十六進製制的0d

在拷貝任何非文字檔案之前,用binary 命令告訴ftp逐字拷貝,不要對這些檔案進行處理.

cd 在遠端機上改變工作目錄

lcd 在本地機上改變工作目錄

ascii 設定檔案傳輸方式為ascii模式

binary 設定檔案傳輸方式為二進位制模式

get(mget) 從遠端機傳送指定檔案到本地機

put(mput) 從本地機傳送指定檔案到遠端機

open 連線遠端ftp站點

! 轉到shell中

從遠端系統獲取檔案

get和mget命令用於從遠端機上獲取檔案。get命令的一般格式為:

get 檔名

您還可以給出本地檔名,這個檔名是這個要獲取的檔案在您的本地機上建立時的檔名。如果您不給出乙個本地檔名,那麼就使用遠端檔案原來的名字。

mget命令一次獲取多個遠端檔案。mget命令的一般格式為:

mget 檔名列表

使用用空格分隔的或帶萬用字元的檔名列表來指定要獲取的檔案,對其中的每個檔案都要求使用者確認是否傳送。

向遠端系統傳送檔案

put和mput命令用於向遠端機傳送檔案。put命令的一般格式為:

put 檔名

mput命令一次傳送多個本地檔案,mput命令的一般格式為:

mput 檔名列表

使用用空格分隔的或帶萬用字元的檔名列表來指定要傳送的檔案。對其中的每個檔案都要求使用者確認是否傳送。

ftp的工作方式 

ftp支援兩種模式,一種方式叫做standard (也就是 port方式,主動方式),一種是 passive (也就是pasv,被動方式)。

standard模式 ftp的客戶端傳送 port 命令到ftp伺服器。passive模式ftp的客戶端傳送 pasv命令到 ftp server。 

下面介紹乙個這兩種方式的工作原理: 

port模式ftp 客戶端首先和ftp伺服器的tcp 21埠建立連線,通過這個通道傳送命令,客戶端需要接收資料的時候在這個通道

上傳送port命令。 port命令包含了客戶端用什麼埠接收資料。在傳送資料的時候,伺服器端通過自己的tcp 20埠連線至客戶端

的指定埠傳送資料。 ftp server必須和客戶端建立乙個新的連線用來傳送資料。 

passive模式在建立控制通道的時候和standard模式類似,但建立連線後傳送的不是port命令,而是pasv命令。ftp伺服器收到

pasv命令後,隨機開啟乙個高階埠(埠號大於1024)並且通知客戶端在這個埠上傳送資料的請求,客戶端連線ftp伺服器此端

口,然後ftp伺服器將通過這個埠進行資料的傳送,這個時候ftp server不再需要建立乙個新的和客戶端之間的連線。 

很多防火牆在設定的時候都是不允許接受外部發起的連線的,所以許多位於防火牆後或內網的ftp伺服器不支援pasv模式,因為

客戶端無法穿過防火牆開啟ftp伺服器的高階埠;而許多內網的客戶端不能用port模式登陸ftp伺服器,因為從伺服器的tcp 20無

法和內部網路的客戶端建立乙個新的連線,造成無法工作。

ftp的連線模式有兩種,port和pasv。port模式是乙個主動模式,pasv是被動模式,這裡都是相對於伺服器而言的。

主動模式就是伺服器以20埠主動的去連線客戶端的某個大於1024的埠(這個埠是客戶端通過port命令告訴伺服器的)。

被動模式就是客戶端用某個大於1024的埠去連線伺服器的某個大於1024的埠。

如果從c/s模型這個角度來說,port對於伺服器來說是outbound,而pasv模式對於伺服器是inbound,這一點請特別注意,尤其是在使用防火牆的企業裡,這一點非常關鍵,如果設定錯了,那麼客戶將無法連線。

ftp兩種傳輸模式小結

ftp是有兩種傳輸的模式的,主動模式和被動模式,之前一直沒怎麼去搞明白之,現在找了下資料,

乙個完整的ftp檔案傳輸需要建立兩種型別的連線,一種為檔案傳輸下命令,稱為控制連線,另一種實現真正的檔案傳輸,稱為資料連線。ftp控制連線建立之後,即可開始傳輸檔案,傳輸檔案的連線稱為ftp資料連線。ftp資料連線就是ftp傳輸資料的過程,它有兩種傳輸模式

port(主動)方式的連線過程是:客戶端向伺服器的ftp埠(預設是21)傳送連線請求,伺服器接受連線,建立一條命令鏈路。當需要傳送資料時,客戶端在命令鏈路上用port命令告訴伺服器:「我開啟了***x埠,你過來連線我」。於是伺服器從20埠向客戶端的***x埠傳送連線請求,建立一條資料鏈路來傳送資料。

pasv(被動)方式的連線過程是:客戶端向伺服器的ftp埠(預設是21)傳送連線請求,伺服器接受連線,建立一條命令鏈路。當需要傳送資料時,伺服器在命令鏈路上用pasv命令告訴客戶端:「我開啟了***x埠,你過來連線我」。於是客戶端向伺服器的***x埠傳送連線請求,建立一條資料鏈路來傳送資料。

關於FTP的兩種連線模式

我對於ftp這方面的知識比較薄弱,最近在實習的時候剛好有需要去了解,所以想寫下來整理一下,如果有不對的地方望指正。ftp服務一般執行在20和21兩個埠。一次完整的 ftp 會話,包含有兩個連線,乙個稱之為命令通道 控制連線,通過21埠 乙個稱之為資料通道 資料連線,通過20埠 其中資料連線有兩種傳輸...

ftp的兩種模式

常用ftp的人都知道,ftp在傳輸檔案的時候分為兩種模式 ascii模式 和 二進位制模式 1 ascii模式是一般是用來傳輸文字檔案的 2 二進位制模式是用來傳輸二進位制檔案的 一般我們使用ftp工具進行檔案傳輸的時候,工具內部應該會識別檔案型別,而如果我們使用windows內建的ftp,在命令列...

FTP傳輸兩種方式

for ftpfile ff fsname 分析對方公司,估計是改變了傳輸方式,將ftp伺服器改為了linux後採用了二進位制上傳,因此出現了這種問題。ftp協議的任務是從一台計算機將檔案傳送到另一台計算機,它與這兩台計算機所處的位置 聯接的方式 甚至是是否使用相同的作業系統無關。假設兩台計算機通過...