ftp互動和控制命令總結

2022-07-29 13:15:12 字數 2676 閱讀 3096

一、ftp管理:

基於tcp,首先有客戶端相服務端的知名埠21發起tcp連線建立ftp控制連線,控制連線在整個會話期間都保持開啟,只用來傳送連線/傳送請求。

這裡分為兩種模式:

主動模式(port)和被動模式(pasv),這兩種模式是站在ftp伺服器的「角度」來說的,如果設定為主動模式,則需要傳輸資料時,伺服器主動連線客戶端,那麼客戶端就需要有資料監聽埠(從port h1,h2,h3,h4,p1,p2命令中獲知);如果設定為被動模式,則需要伺服器告訴客戶端(通過對pasv命令響應告知))自己用於資料傳輸的監聽埠,同時在該埠上監聽被動的等待客戶端來連線,被動方式通常用於客戶端位於nat內網,伺服器位於nat外網的場景中以避免被防火牆阻止資料連線的建立。

這裡說一下注意點:port命令的引數h1,h2,h3,h4,p1,p2 前面4個h分別對應客戶端ip位址的4個十進位制數字,p1和p2分別表示埠的高8位和低8位,因次埠計算為p1*256+p2。

二、ftp資料傳輸:

上載檔案時客戶端命令列使用put或mput等命令(對應內部協議命令為stor filename),向伺服器請求上傳filename,客戶端開啟檔案讀取資料傳送給服務端,服務端建立檔案並寫入資料。完成後資料連線關閉。

ftp協議規定了控制協議傳送與儲存的多種選擇,在以下4個方面必須做出乙個選擇。

三、ftp使用者命令

ftp客戶端(命令列)使用者命令:

1、客戶端使用者命令分為兩類,一類是設定操作客戶端自身的,如lcd、hash等,另一類是傳送內部協議命令給伺服器執行的,如get、put、passive等

下表是linux系統上ftp客戶端具有的ftp命令:

客戶端使用者命令在執行後轉換為內部協議命令給伺服器執行,然後以應答碼加訊息的格式回應給客戶端。

命令和應答在客戶和伺服器的控制連線上以 nvt ascii碼形式傳送。這就要求在每行結尾都要返回c r、 l f對(也就是每個命令或每個應答)。這些命令都是3或4個位元組的大寫ascii字元,其中一些帶選項引數。從客戶向伺服器傳送的ftp命令超過30種。下圖是比較常用的幾種命令:

應答都是a s c i i碼形式的3位數字,並跟有報文選項。其原因是軟體系統需要根據數字**來決定如何應答,而選項串是面向人工處理的。由於客戶通常都要輸出數字應答和報文串,乙個可互動的使用者可以通過閱讀報文串(而不必記憶所有數字回答**的含義)來確定應答的含義。

下面是控制通道互動示例:

黃色底紋為控制命令,這些內部命令在使用python的ftplib庫編寫指令碼時,可以使用sendcmd函式直接傳送給伺服器。

220 (vsftpd 3.0.2

)user root

331please specify the password.

pass test

230login successful.

syst

215unix type: l8

pwd257

"/mnt

"port

192,168,1,23,171,91

200 port command successful. consider using

pasv.

list

150here comes the directory listing.

226directory send ok.

port

192,168,1,23,142,173

200 port command successful. consider using

pasv.

list

150here comes the directory listing.

226directory send ok.

cdup

250directory successfully changed.

pwd257"/

"cwd mnt

250directory successfully changed.

type i

200switching to binary mode.

type a

200switching to ascii mode.

pasv

227 entering passive mode (192,168,1,1,155,71

).list

150here comes the directory listing.

226directory send ok.

port

192,168,1,23,133,62

200 port command successful. consider using

pasv.

list

150here comes the directory listing.

226 directory send ok.

FTP連線控制命令格式

comes from 命令以nvt ascii串的格式被傳輸。每個命令以三個或四個大寫的nvt ascii字元開始,後面帶有選項引數和乙個cr lf對來標識命令結束 應答由三個nvt ascii數字及乙個選項訊息組成。乙個長的應答也許會有多個訊息組成,第乙個訊息的三個數字後帶有乙個破折號,最後的訊息...

Service的啟動 控制和互動

為了啟動乙個 service 呼叫startservice 你可以使用動作來隱式啟動乙個已經註冊的 service 或者顯式的指定 service 啟動。如果你的程式沒有 service 所需的許可權,那麼,這個呼叫會丟擲乙個 securityexception 下面的片段顯示了兩種啟動 servi...

Ftp命令和返回值

一 關於ftp協議 ftp協議可通過rpc959的介紹了解。二 ftp命令 也許很多人都用過ftp命令,但是可能也有許多人和我曾經犯一樣的錯誤,錯認了ftp命令。我原來在win2000的控制台下打上ftp,然後進入了ftp提示符下,接著我用上了許多符有 windows 特色的命令,如 dir cd ...