檔案伺服器

FTP 是 File Transfer Protocol的縮寫,中文的說法比較少用,可以直接翻成檔案傳輸協定。FTP服務一般執行在TCP/IP的20和21兩個埠,用於在電腦網路上在客戶端和伺服器之間進行檔案傳輸的應用層協定。開啟兩個埠是為了用於在客戶端和伺服器之間傳輸資料流和控制,簡單的說就是將指令和資料分開處理。看似半雙工的工作模式,實際上卻可歸類為全雙工服務。


 FTP指令

現在的FTP檔案傳輸服務都是透過相關軟體進行,這些FTP軟體都有相關使用者介面。使用FTP軟體容易使用,但是在背景下仍然是透過指令進行檔案傳輸服務。大部份的指令都是國際通用的,具體流程可參考FTP傳輸協議流程圖
以下是可以查到的中文對應。
命令 RFC 描述
ABOR
(ABORT)此命令使伺服器終止前一個FTP服務命令以及任何相關資料傳輸。
ACCT
(ACCOUNT)此命令的參數部分使用一個Telnet字串來指明用戶的帳戶。
ADAT RFC 2228 (AUTHENTICATION/SECURITY DATA)認證/安全資料
ALLO
為接收一個檔案分配足夠的磁碟空間
APPE
增加
AUTH RFC 2228 認證/安全機制
CCC RFC 2228 清除命令通道
CDUP
改變到父目錄
CONF RFC 2228 機密性保護命令
CWD
改變工作目錄
DELE
刪除檔案
ENC RFC 2228 隱私保護通道
EPRT RFC 2428 為伺服器指定要連接的擴充位址和埠
EPSV RFC 2428 進入擴充被動模式
FEAT RFC 2389 獲得伺服器支援的特性列表
HELP
如果指定了命令,返回命令使用文件;否則返回一個通用說明文件
LANG RFC 2640 語言協商
LIST
如果指定了檔案或目錄,返回其資訊;否則返回目前工作目錄的資訊
LPRT RFC 1639 為伺服器指定要連接的長位址和埠
LPSV RFC 1639 進入長被動模式
MDTM RFC 3659 返回指定檔案的最後修改時間
MIC RFC 2228 完整性保護命令
MKD
建立目錄
MLSD RFC 3659 如果目錄被命名,列出目錄的內容
MLST RFC 3659 提供命令行指定的物件的資料
MODE
設定傳輸模式(流、塊或壓縮)
NLST
返回指定目錄的檔名列表
NOOP
無操作(啞包;通常用來保活)
OPTS RFC 2389 為特性選擇選項
PASS
認證密碼
PASV
進入被動模式
PBSZ RFC 2228 保護緩衝大小
PORT
指定伺服器要連接的位址和埠
PROT RFC 2228 資料通道保護級別
PWD
列印工作目錄,返回主機的目前目錄
QUIT
斷開連接
REIN
重新初始化連接
REST
從指定點重新開始傳輸
RETR
傳輸檔案副本
RMD
刪除目錄
RNFR
從...重新命名
RNTO
重新命名到...
SITE
傳送站點特殊命令到遠端伺服器
SIZE RFC 3659 返回檔案大小
SMNT
掛載檔案結構
STAT
返回目前狀態
STOR
接收資料並且在伺服器站點儲存為檔案
STOU
唯一地儲存檔案
STRU
設定檔案傳輸結構
SYST
返回系統類型
TYPE
設定傳輸模式(ASCII/二進位).
USER
認證用戶名稱
XCUP RFC 775 改變之目前工作目錄的父目錄
XMKD RFC 775 建立目錄
XPWD RFC 775 列印目前工作目錄
XRCP RFC 743
XRMD RFC 775 刪除目錄
XRSQ RFC 743
XSEM RFC 737 傳送,否則郵件
XSEN RFC 737 傳送到終端

FTP狀態碼

FTP狀態碼中文對應並且格式化的資料非常難找,大部份的資料都是以英文對照為主。下列資料是將搜尋到的中文資料格式化後後排列出,可能並不完整。
110 重新啟動標記回覆。
120 服務就緒,在 nnn 分鐘。
125 資料連線已經開啟;傳輸開始。
150 檔案狀態無誤;將開啟資料連線。
200 指令已經沒有問題了。
202 在這個站台的指令不實作、 多餘。
211 系統狀態或系統說明回覆。
212 目錄狀態。
213 檔案狀態。
214 說明訊息。
215 名稱系統型別,其中名稱是一個正式的系統名稱從指派的數字的文件中的清單。
220 供新使用者的服務。
221 服務正在關閉控制連接。如果可以請登出。
225 資料連線已開啟;沒有正在傳輸中。
226 關閉資料連線。要求的檔案動作成功 (例如,檔案傳輸或檔案中止)。
227 進入被動模式 (h1、 h2、 h3、 h4、 p1,p2)。
229 延伸被動模式輸入。
230 使用者已登入,繼續執行。
232 已登入,使用者的權限的安全性資料交換。
234 的-安全性資料交換完成。
235 已順利完成安全性資料交換。
250 要求的檔案動作無誤,完成。
257 路徑名稱 」 建立。
331 的使用者名稱無誤,需要密碼。
332 需要登入帳戶。
334 要求安全性機制 [確定]。
335 安全性資料是可接受的。更多資料才能完成安全性資料交換。
336 使用者名稱無誤,需要密碼。
350 要求的檔案動作擱置中的其他相關資訊。
421 服務無法使用,正在關閉控制連接。如果服務知道其必須關閉,這可能是對任何命令的回覆。
425 無法開啟資料連接。
426 連接已關閉;傳輸中止。
431 需要某些無法使用的資源,處理安全性。
450 未採取要求的檔案動作。檔案無法使用 (例如,檔案忙碌)。
451 要求的動作已中止。正在處理本機錯誤。
452 要求未採取的動作。在系統中沒有足夠的儲存空間。
500 語法錯誤,無法辨認的命令。這可能包括命令列過長的錯誤。
501 參數或引數中的語法錯誤。
502 未執行命令。
503 錯誤的命令順序。
504 並未實作該參數的命令。
521 無法開啟 資料連線,使用這個連接埠正常設定。
522 伺服器不支援要求的網路通訊協定。
530 未登入。
532 需要帳戶以儲存檔案。
533 命令保護層級拒絕原則的原因。
534 原則原因拒絕要求。
535 (雜湊、 序列等等) 的失敗的安全性檢查。
536 要求的連接埠正常層級不支援的機制。
537 命令保護層級不支援的安全性機制。
550 要求未採取的動作。檔案無法使用 (例如,找不到檔案或沒有存取權)。
551 要求的動作已中止: 頁面類型不明。
552 要求的檔案動作已中止。超過儲存配置 (針對目前的目錄或資料集)。
553 要求未採取的動作。不允許的檔案名稱。
631 完整性保護回覆。
632 機密性和完整性保護回覆。
633 機密性保護回覆。
150 FTP 使用兩個連接埠: 21 傳送命令,而 20 用於傳送資料。狀態碼 150 表示伺服器將在連接埠 20開啟新的連線,以便傳送某些資料。
226 命令開啟資料連接在連接埠 20,要執行的動作,例如傳送檔案。已順利完成此動作,以及資料連線已關閉。
230 用戶端傳送正確的密碼之後,就會顯示此狀態碼。它會指出使用者已成功地登入。
331 用戶端傳送使用者名稱後,您會看到這個狀態碼。不論所提供的使用者名稱是否為系統上有效的帳戶,皆會出現相同的狀態碼。
426 命令開啟資料連線來執行動作,該動作已取消,但資料連線已關閉。
530 此狀態碼表示使用者無法登入,因為使用者名稱和密碼組合不正確。如果您利用使用者帳戶登入,則您可能輸入錯誤的使用者名稱或密碼,或您已選擇僅允許匿名存取。如果您使用「匿名」帳戶登入,您可能已設定 IIS 來拒絕匿名存取。
550 命令不會執行,因為指定的檔案無法使用。例如,當您嘗試取得的檔案不存在,或當您嘗試將檔案放置在沒有寫入權限的目錄中時,就會發生這個狀態碼。

當存取 FTP 伺服器上的內容時,伺服器會傳回一個數字的狀態碼,指出回應的狀態。狀態碼列舉出所有可能發生的情況,無論是由終端機或是透過軟體存取FTP都要確認狀態碼進行動作。

主動與被動

主動式 FTP 連線建立過程
  • 客戶端打開自已機器大於 1024 的連接埠,並連到伺服器的連接埠 21,建立「控制連線」。
  • 客戶端開始對伺服器下指令,告訴伺服器客戶端用來傳輸檔案的連接埠為何。
  • 伺服器從連接埠 20 連到客戶端所開放的埠號 (大於 1024),以建立「資料連線」。

客戶端有防火牆時雖然可以送出連線並取得回應,但客戶端的連接埠卻不允許伺服器連過來。所以伺服器要建立資料連線時時會失敗,而無法建立連線。

被動式FTP連線建立過程
  • 客戶端打開自已機器大於 1024 的連接埠,並連到伺服器的連接埠 21,建立「控制連線」。
  • 客戶端開始對伺服器下指令,告訴伺服器進入「被動模式」。
  • 伺服器打開一個大於 1024 的連接埠,等待客戶端的連線。
  • 客伺端打開自已機器大於 1024 的連接埠,並連到伺服器以建立「資料連線」。
由於控制連線及資料連線都是由客戶端主動連過去伺服器,如此即可避開防火牆問題。

沒有留言:

張貼留言