FTP協議命令 + 返回值 + 返回值解析


FTP協議命令 + 返回值 + 返回值解析

FTP message format:

  FTP commands are Telnet strings terminated by the Telnet end of line code. The command codes themselves are alphabetic character strings terminated by the character <Space> if parameters follow and <CRLF> otherwise.轉載自:https://blog.csdn.net/wanghaihao_1/article/details/38266433

一、需要注意的幾點

    ①FTP是一種文件傳輸協議,基於TCP,所以客戶端與服務器建立的連接是可靠、安全的,並且要經過三次握手的過程。

    ②FTP傳輸數據默認采用二進制模式,即將文件內容轉換為二進制表示后再傳送,而若HTML等文本文件傳輸時需要轉換成ASCII模式。

    ③FTP客戶端在連接服務器時需要用到兩個端口,其中一個端口(默認為21)用作控制連接端口,負責發送命令和等待響應;另一個端口用作數據傳輸,用來建立數據傳輸通道,端口號為20或其他可用端口號。

    ④FTP有兩種連接模式:主動模式與被動模式。主動模式命令為PORT,此模式下客戶端需要向服務器提供一個IP地址和端口號,由服務器來連接客戶端的指定端口;被動模式命令為PASV,此模式下由服務器向客戶端提供IP地址與端口號,由此解決主動模式下服務器到客戶端的數據端口的連接被防火牆過濾掉的問題。

    ⑤FTP的工作流程為:客戶端連接服務器->服務器連接成功返回->客戶端發送初始化命令->服務器響應命令成功返回->客戶端發送用戶驗證消息->服務器返回驗證結果->驗證通過,客戶端進行數據操作->服務器響應客戶端操作命令->客戶端發送關閉連接命令->服務器響應關閉連接命令。

    ⑥通常FTP服務器只負責進行數據連接,在客戶端發送命令要求關閉連接時,服務器才會關閉連接。但在以下情況服務器也會關閉數據連接:

       1.服務器發送數據結束,通過EOF文件結束標志終止傳送。

       2.客戶端發送ABORT命令。

       3.客戶端改變了端口號。

       4.控制連接通道被關閉。

       5.傳輸過程中發生嚴重錯誤。

    ⑦FTP命令與響應碼:

FTP Commands:

命令    描述                                                                                  響應碼
_________________________________________________________________________________________________________________
ABOR Abort.
           中斷數據連接程序 
_________________________________________________________________________________________________________________
ACCT Account.                                                                             202,230,421,500,501,502,503,530
           系統特權賬號       
_________________________________________________________________________________________________________________
ADAT Authentication/Security Data. 
_________________________________________________________________________________________________________________
ALLO Allocate.
          為服務器上的文件存儲器分配字節 
_________________________________________________________________________________________________________________
APPE Append.
          添加文件到服務器同名文件
_________________________________________________________________________________________________________________
AUTH Authentication/Security Mechanism.
_________________________________________________________________________________________________________________
CCC Clear Command Channel. 
_________________________________________________________________________________________________________________
CDUP Change to parent directory.                                               250,421,500,502,530,550
           改變服務器上的父目錄 
_________________________________________________________________________________________________________________
CONF Confidentiality Protected Command. 
_________________________________________________________________________________________________________________
CWD Change working directory.                                                   250,421,500,501,502,530,550
           改變服務器上的工作目錄 
_________________________________________________________________________________________________________________
DELE Delete.                                                                                250,421,502,530,550
          刪除服務器上的指定文件 
_________________________________________________________________________________________________________________
ENC   Privacy Protected Command. 
_________________________________________________________________________________________________________________
EPRT Extended Data port. 
_________________________________________________________________________________________________________________
EPSV Extended Passive. 
_________________________________________________________________________________________________________________
FEAT Feature. 
_________________________________________________________________________________________________________________
HELP Help.
          返回指定命令信息 
_________________________________________________________________________________________________________________
LANG Language negotiation. 
_________________________________________________________________________________________________________________
LIST List.                                                                                      125,150,226,250,421,425,426,450, 451,500,501,502,530
        如果是文件名列出文件信息,如果是目錄則列出文件列表
_________________________________________________________________________________________________________________
LPRT Long data port. 
_________________________________________________________________________________________________________________
LPSV Long passive. 
_________________________________________________________________________________________________________________
MDTM File modification time. 
_________________________________________________________________________________________________________________
MIC Integrity Protected Command. 
_________________________________________________________________________________________________________________
MKD Make directory.
        在服務器上建立指定目錄
_________________________________________________________________________________________________________________
MLSD 
_________________________________________________________________________________________________________________
MLST       列出指定目錄內容                                                          同LIST命令
_________________________________________________________________________________________________________________
MODE Transfer mode.
             傳輸模式(S=流模式,B=塊模式,C=壓縮模式)
_________________________________________________________________________________________________________________
NLST   Name list. 
_________________________________________________________________________________________________________________
NOOP No operation.                                                                      200,421,500
            無動作,除了來自服務器上的承認 
_________________________________________________________________________________________________________________
OPTS Options. 
_________________________________________________________________________________________________________________
PASS Password.                                                                             202,230,332,421,500,501,530
          系統登錄密碼          
_________________________________________________________________________________________________________________
PASV Passive mode.                                                                     227,421,500,501,503
          請求服務器等待數據連接                             
_________________________________________________________________________________________________________________
PBSZ Protection Buffer Size. 
_________________________________________________________________________________________________________________
PORT Data port.                                                                           200,421,500,501,530
          IP 地址和兩字節的端口 ID 
_________________________________________________________________________________________________________________
PROT Data Channel Protection Level. 
_________________________________________________________________________________________________________________
PWD Print working directory.                                                        257,421,500,501,502,550
        顯示(打印)當前工作目錄 
_________________________________________________________________________________________________________________
QUIT Logout.
         從 FTP 服務器上退出登錄 
_________________________________________________________________________________________________________________
REIN Reinitialize.                                                                           120,220,421,500,502
         重新初始化登錄狀態連接 
_________________________________________________________________________________________________________________
REST Restart of interrupted transfer.                                            350,421,500,501,502,530
          由特定偏移量重啟文件傳遞 
_________________________________________________________________________________________________________________
RETR Retrieve.                                                                             110,125,150,226,250,421,425,426, 450,451,500,501,504,530,550
          從服務器上找回(復制)文件                           
_________________________________________________________________________________________________________________
RMD Remove directory.
         在服務器上刪除指定目錄 
_________________________________________________________________________________________________________________
RNFR Rename from.
           對舊路徑重命名 
_________________________________________________________________________________________________________________
RNTO Rename to.
           對新路徑重命名 
_________________________________________________________________________________________________________________
SITE Site parameters.
         由服務器提供的站點特殊參數 
_________________________________________________________________________________________________________________
SIZE File size. 
_________________________________________________________________________________________________________________
SMNT Structure mount.
           掛載指定文件結構 
_________________________________________________________________________________________________________________
STAT Status.                                                                                 211,212,213,421,450,500,501,502,530
           在當前程序或目錄上返回信息 
_________________________________________________________________________________________________________________
STOR Store.     110,125,150,226,250,421,425,426,450,451,452,500,501,504,530,532,550,551,552,553
           儲存(復制)文件到服務器上                           
_________________________________________________________________________________________________________________
STOU Store unique.
           儲存文件到服務器名稱上
_________________________________________________________________________________________________________________
STRU File structure.
          數據結構(F=文件,R=記錄,P=頁面) 
_________________________________________________________________________________________________________________
SYST System.
          返回服務器使用的操作系統
_________________________________________________________________________________________________________________
TYPE Representation type.                                                                          200,421,500,501,504,530
          數據類型(A=ASCII,E=EBCDIC,I=binary) 
_________________________________________________________________________________________________________________
USER User name.                                                                                         230,331,332,421,500,501,530
          系統登錄的用戶名 
_________________________________________________________________________________________________________________
XCUP Change to the parent of the current working directory. 
_________________________________________________________________________________________________________________
XMKD Make a directory. 
_________________________________________________________________________________________________________________
XPWD Print the current working directory. 
_________________________________________________________________________________________________________________
XRCP 
_________________________________________________________________________________________________________________
XRMD Remove the directory. 
_________________________________________________________________________________________________________________
XRSQ 
_________________________________________________________________________________________________________________
XSEM Send, Mail if cannot. 
_________________________________________________________________________________________________________________
XSEN Send to terminal. 
_________________________________________________________________________________________________________________

FTP服務器的響應是3位的響應碼,其中第一位表示響應是好、是壞還是未完:
Code Description
_________________________________________________________________________________________________________________
1yz    Positive Preliminary reply.
        肯定的初步答復:這些狀態代碼指示一項操作已經成功開始,但客戶端希望在繼續操作新命令前得到另一個答復。
_________________________________________________________________________________________________________________
2yz    Positive Completion reply.
        肯定的完成答復:一項操作已經成功完成。客戶端可以執行新命令。
_________________________________________________________________________________________________________________
3yz    Positive Intermediate reply.
        肯定的中間答復:該命令已成功,但服務器需要更多來自客戶端的信息以完成對請求的處理。
_________________________________________________________________________________________________________________
4yz    Transient Negative Completion reply.
        瞬態否定的完成答復:該命令不成功,但錯誤是暫時的。如果客戶端重試命令,可能會執行成功。
_________________________________________________________________________________________________________________
5yz    Permanent Negative Completion reply.
        永久性否定的完成答復:該命令不成功,錯誤是永久性的。如果客戶端重試命令,將再次出現同樣的錯誤。
_________________________________________________________________________________________________________________

響應碼第二位表示了特定的分類,具體內容如下:
Code Description
_________________________________________________________________________________________________________________

x0z    Syntax. These replies refer to syntax errors, syntactically correct commands that don't fit any functional category, unimplemented or superfluous commands.
        語法錯誤,表示不符合任何功能分類的命令,可能是未實現的命令或者多余的命令。
_________________________________________________________________________________________________________________
x1z    Information. These are replies to requests for information, such as status or help.
        信息類型
_________________________________________________________________________________________________________________
x2z    Connections. Replies referring to the control and data connections.
        連接類型
_________________________________________________________________________________________________________________
x3z    Authentication and accounting. Replies for the login process and accounting procedures.
        與注冊或者登陸相關命令的應答
_________________________________________________________________________________________________________________
x4z   未定義
_________________________________________________________________________________________________________________
x5z    File system. These replies indicate the status of the Server file system vis-a-vis the requested transfer or other file system action.
        文件系統狀態 
_________________________________________________________________________________________________________________

響應碼第三位是對第二位的分級,給出了差錯的附加含義,具體內容如下:
Code Description
_________________________________________________________________________________________________________________
110    Restart marker reply.                              重新啟動標記答復。
120    Service ready in nnn minutes.                      服務已就緒,在nnn分鍾后開始。   
125    Data connection already open; transfer starting.   數據連接已打開,正在開始傳輸。 
150    File status okay; about to open data connection.   文件狀態正常,准備打開數據連接。
200    Command okay.                                      命令確定。
202    Command not implemented, superfluous at this site. 未執行命令,站點上的命令過多
211    System status, or system help reply.               系統狀態,或系統幫助答復。
212    Directory status.                                  目錄狀態。
213    File status.                                       文件狀態。
214    Help message.                                      幫助消息。
215    NAME system type.                    NAME系統類型,其中,NAME是Assigned Numbers文檔中所列的正式系統名稱。
220    Service ready for new user.                        服務就緒,可以執行新用戶的請求。
221    Service closing control connection.                服務關閉控制連接。如果適當,請注銷。
225    Data connection open; no transfer in progress.     數據連接打開,沒有進行中的傳輸。
226    Closing data connection.                 關閉數據連接。請求的文件操作已成功(例如,傳輸文件或放棄文件)。
227    Entering Passive Mode <h1,h2,h3,h4,p1,p2>.         進入被動模式(h1,h2,h3,h4,p1,p2)。
228    Entering Long Passive Mode.
229    Extended Passive Mode Entered.
230    User logged in, proceed.                           用戶已登錄,繼續進行。
250    Requested file action okay, completed.             請求的文件操作正確,已完成。
257    "PATHNAME" created.                                已創建“PATHNAME”。
331    User name okay, need password.                     用戶名正確,需要密碼。
332    Need account for login.                            需要登錄帳戶。
350    Requested file action pending further information. 請求的文件操作正在等待進一步的信息。
421    Service not available, closing control connection. 
        服務不可用,正在關閉控制連接。如果服務確定它必須關閉,將向任何命令發送這一應答。
425    Can't open data connection.                        無法打開數據連接。
426    Connection closed; transfer aborted.               連接被關閉,數據傳輸中斷。
450    Requested file action not taken.                   未執行請求的文件操作。文件不可用。
451    Requested action aborted. Local error in processing.請求的操作異常終止:正在處理本地錯誤。
452    Requested action not taken.                        未執行請求的操作。系統存儲空間不夠。
500    Syntax error, command unrecognized.      語法錯誤,命令無法識別。這可能包括諸如命令行太長之類的錯誤。
501    Syntax error in parameters or arguments.           在參數中有語法錯誤。
502    Command not implemented.                           未執行命令。
503    Bad sequence of commands.                          錯誤的命令序列。
504    Command not implemented for that parameter.        未執行該參數的命令。
521    Supported address families are <af1, .., afn>
522    Protocol not supported.
530    Not logged in.                                     未登錄。
532    Need account for storing files.                    存儲文件需要帳戶。
550    Requested action not taken.                        未執行請求的操作。文件不可用。
551    Requested action aborted. Page type unknown.       請求的操作異常終止:未知的頁面類型。
552    Requested file action aborted.                     請求的文件操作異常終止:超出存儲分配(對於當前目錄或數據集)。
553    Requested action not taken.                        未執行請求的操作。不允許的文件名。
554    Requested action not taken: invalid REST parameter.
555    Requested action not taken: type or struct mismatch.
_________________________________________________________________________________________________________________

        FTP響應通常是單行的,格式為"響應碼 + 空格 + 提示信息 + \r\n"。如果需要產生一條多行應答,第1行在第3位數字應答碼之后包含一個連字號,而不是空格,最后一行包含相同的3位數字應答碼,后跟一個空格字符。

FTP:文件傳輸協議(指令及響應代碼)

  文件傳輸協議(FTP)使得主機間可以共享文件。 FTP 使用 TCP 生成一個虛擬連接用於控制信息,然后再生成一個單獨的 TCP 連接用於數據傳輸。控制連接使用類似 TELNET 協議在主機間交換命令和消息。FTP 的主要功能如下:

  • 提供文件的共享(計算機程序 / 數據);
  • 支持間接使用遠程計算機;
  • 使用戶不因各類主機文件存儲器系統的差異而受影響;
  • 可靠且有效的傳輸數據。

  FTP ,盡管可以直接被終端用戶使用,但其應用主要還是通過程序實現。FTP 控制幀即指 TELNET 交換信息,包含 TELNET 命令和選項。然而,大多數 FTP 控制幀是簡單的 ASCII 文本,可以分為 FTP 命令或 FTP 消息。 FTP 消息是對 FTP 命令的響應,它由帶有解釋文本的應答代碼構成。

命令 描述
ABOR 中斷數據連接程序
ACCT <account> 系統特權帳號
ALLO <bytes> 為服務器上的文件存儲器分配字節
APPE <filename> 添加文件到服務器同名文件
CDUP <dir path> 改變服務器上的父目錄
CWD <dir path> 改變服務器上的工作目錄
DELE <filename> 刪除服務器上的指定文件
HELP <command> 返回指定命令信息
LIST <name> 如果是文件名列出文件信息,如果是目錄則列出文件列表
MODE <mode> 傳輸模式(S=流模式,B=塊模式,C=壓縮模式)
MKD <directory> 在服務器上建立指定目錄
NLST <directory> 列出指定目錄內容
NOOP 無動作,除了來自服務器上的承認
PASS <password> 系統登錄密碼
PASV 請求服務器等待數據連接
PORT <address> IP 地址和兩字節的端口 ID
PWD 顯示當前工作目錄
QUIT 從 FTP 服務器上退出登錄
REIN 重新初始化登錄狀態連接
REST <offset> 由特定偏移量重啟文件傳遞
RETR <filename> 從服務器上找回(復制)文件
RMD <directory> 在服務器上刪除指定目錄
RNFR <old path> 對舊路徑重命名
RNTO <new path> 對新路徑重命名
SITE <params> 由服務器提供的站點特殊參數
SMNT <pathname> 掛載指定文件結構
STAT <directory> 在當前程序或目錄上返回信息
STOR <filename> 儲存(復制)文件到服務器上
STOU <filename> 儲存文件到服務器名稱上
STRU <type> 數據結構(F=文件,R=記錄,P=頁面)
SYST 返回服務器使用的操作系統
TYPE <data type> 數據類型(A=ASCII,E=EBCDIC,I=binary)
USER <username> 系統登錄的用戶名

 

標准FTP信息如下: 

響應代碼 解釋說明
110 新文件指示器上的重啟標記
120 服務器准備就緒的時間(分鍾數)
125 打開數據連接,開始傳輸
150 打開連接
200 成功
202 命令沒有執行
211 系統狀態回復
212 目錄狀態回復
213 文件狀態回復
214 幫助信息回復
215 系統類型回復
220 服務就緒
221 退出網絡
225 打開數據連接
226 結束數據連接
227 進入被動模式(IP 地址、ID 端口)
230 登錄因特網
250 文件行為完成
257 路徑名建立
331 要求密碼
332 要求帳號
350 文件行為暫停
421 服務關閉
425 無法打開數據連接
426 結束連接
450 文件不可用
451 遇到本地錯誤
452 磁盤空間不足
500 無效命令
501 錯誤參數
502 命令沒有執行
503 錯誤指令序列
504 無效命令參數
530 未登錄網絡
532 存儲文件需要帳號
550 文件不可用
551 不知道的頁類型
552 超過存儲分配
553 文件名不允許
沒有堅守就沒有事業,沒有執着就沒有未來!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM