FTP檔案傳輸協議兩種方式的工作原理

2021-07-25 22:57:05 字數 1633 閱讀 3195

ftp是一種檔案傳輸協議,它支援兩種模式,一種方式叫做standard (也就是 active,主動方式),一種是 passive (也就是pasv,被動方式)。 standard模式 ftp的客戶端傳送 port 命令到ftp server。passive模式ftp的客戶端傳送 pasv命令到 ftp server。

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

standard模式

ftp 客戶端首先和ftp server的tcp 21埠建立連線,通過這個通道傳送命令,客戶端需要接收資料的時候在這個通道上傳送port命令。 port命令包含了客戶端用什麼埠接收資料。在傳送資料的時候,伺服器端通過自己的tcp 20埠傳送資料。 ftp server必須和客戶端建立乙個新的連線用來傳送資料。

passive模式

在建立控制通道的時候和standard模式類似,當客戶端通過這個通道傳送pasv 命令的時候,ftp server開啟乙個位於1024和5000之間的隨機埠並且通知客戶端在這個埠上傳送資料的請求,然後ftp server 將通過這個埠進行資料的傳送,這個時候ftp server不再需要建立乙個新的和客戶端之間的連線。

現在的ftp軟體裡面包括在ie5以上的版本裡面也已經支援這兩種模式了。一般一些ftp客戶端的軟體就比較好設定了,一般都有乙個pasv的選項,比如cuteftp,傳輸的方式都有standard和pasv的選項,可以自己進行選擇;另外在ie裡面如果要設定成pasv模式的話可以選中工具-internet選項-高階-為ftp站點啟用資料夾檢視,否則就採用standard模式。

ie客戶端的配置:

很多防火牆在設定的時候都是不允許接受外部發起的連線的,所以ftp的standard模式在許多時候在內部網路的機器通過防火牆出去的時候受到了限制,因為從伺服器的tcp 20無法和內部網路的客戶端建立乙個新的連線,造成無法工作。當然也可以設定成功,首先要建立一條規則就是允許內部的ip連線外部的ip的21埠;第二條就是禁止外部ip的tcp 20埠連線內部ip的<1024的埠,這條是為了防止外部連線內部的常規埠;第三條驗證ack是否等於1,這個的原理就參見tcp建立連線的三次握手吧。所以如果安全的配置的話非常困難,這個時候就想起來了pasv模式,因為不用建立新的連線,所以也就不會涉及到後面的問題了。但是管理員可能不想使用pasv模式,因為這個時候ftp server會開放乙個隨機的高階口,儘管在iis4和iis5裡面埠的範圍是1024-5000,但是許多ftp server的埠範圍達到了1024-65535,這個時候在這個主動開放的隨機埠上是有完全的訪問許可權的,如果iis也要設定成開放的埠為1024-65535,具體方法如下:

1. regedt32

2. 找到hkey_local_machine\system\currentcontrolset\services\tcpip\parameters

3. 編輯-新增-數值

value name: maxuserport data type: reg_dword value: 65534

所以如果遇到了有防火牆的話或者怕配置麻煩的話還是採用pasv模式比較好些,但是如果真的對安全的需求很高的話建議採用standard模式。

在iis中的ftp伺服器端對兩種客戶端都支援,沒有辦法選擇單獨支援某一種客戶端。

ftp服務埠號20(資料埠)加一就是ftp控制埠的號碼21。

cutftp客戶端:

或:

FTP傳輸兩種方式

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

FTP 檔案傳輸協議

1.什麼是ftp 檔案傳輸協議 英文 file transfer protocol,簡稱為ftp 是用於在網路上進行檔案傳輸的一套標準協議。它屬於網路傳輸協議的應用層。ftp是乙個8位的客戶端 伺服器協議,能操作任何型別的檔案而不需要進一步處理,就像mime或unencode一樣。缺點 ftp有著極...

檔案傳輸協議 FTP

ftp是在兩個計算機之間傳輸檔案的協議。一般有兩種情形,一種是需要登入的ftp檔案伺服器,另外一種ftp伺服器是匿名的,它允許任何人進行訪問。ftp使用兩條tcp連線 一條用來控制,另一條用來資料傳輸。用於控制的tcp連線主要在ftp的控制部分使用。例如 登入使用者名稱和密碼的驗證,傳送檔案的名稱等...