天天看點

FTP 工作模式

FTP 工作模式 FTP 是 File Transfer Protocol (檔案傳輸協定)的縮寫,用來在兩台計算機之間互相傳送檔案。相比于 HTTP , FTP 協定要複雜得多。複雜的原因,是因為 FTP 協定要用到兩個 TCP 連接配接,一個是指令鍊路,用來在 FTP 用戶端與伺服器之間傳遞指令;另一個是資料鍊路,用來上傳或下載下傳資料。 FTP 協定有兩種工作方式: PORT 方式和 PASV 方式,中文意思為主動式和被動式。

Port 模式:

ftp server:tcp 21 <------client:dynamic

ftp server:tcp 20 ------>client:dynamic Pasv 模式:

ftp server:tcp 21 <----client:dynamic

ftp server:tcp dynamic <----client:dynamic

PORT (主動)方式的連接配接過程是:用戶端向伺服器的 FTP 端口(預設是 21 )發送連接配接請求,伺服器接受連接配接,建立一條指令鍊路。當需要傳送資料時,用戶端在指令鍊路上用 PORT 指令告訴伺服器: “ 我打開了 XXXX 端口,你過來連接配接我 ” 。于是伺服器從 20 端口向用戶端的 XXXX 端口發送連接配接請求,建立一條資料鍊路來傳送資料。 PASV (被動)方式的連接配接過程是:用戶端向伺服器的 FTP 端口(預設是 21 )發送連接配接請求,伺服器接受連接配接,建立一條指令鍊路。當需要傳送資料時,伺服器在指令鍊路上用 PASV 指令告訴用戶端: “ 我打開了 XXXX 端口,你過來連接配接我 ” 。于是用戶端向伺服器的 XXXX 端口發送連接配接請求,建立一條資料鍊路來傳送資料。 注意:選擇用 PASV 方式還是 PORT 方式登入 FTP 伺服器,選擇權在 FTP 用戶端,而不是在 FTP 伺服器。   FTP 常見問題現象于分析 一、無法通路 FTP SERVER

原因可能是

1 、有防火牆過濾了 ftp 請求

2 、用戶端強制使用 PASV MODE 連接配接,而 FTP SERVER 不支援或沒有開啟 PASV MODE

3 、網絡無法通路 二、用戶端能夠登陸,但是無法浏覽資料

原因可能是

1 、用戶端處于内網,而且 GATEWAY 沒有相關設定允許 PORT MODE 通路遠端 FTP SERVER

2 、用戶端本身有網絡限制了自己 1024 以上端口的通路(如: TCP/IP 篩選)

3 、用戶端使用的軟體沒有開啟或支援 PASV MODE 的通路 三、有的能登陸,有的不能登陸

原因是不能登陸的用戶端沒有使用 PASV MODE 通路 FTP SERVER   FTP 通路出錯排查步驟 1 、确認能夠在 FTP SERVER 上以 127.0.0.1 通路自己

2 、确認在 FTP SERVER 上能夠以使用的 IP 通路

3 、确認用戶端和伺服器端網絡通暢

4 、确認雙方的防火牆設定正确

5 、确認雙方的通路模式正确   FTP 常見問題的解決 一、 FTP SERVER 有公網 IP, 且前面有防火牆 1 、在防火牆上開啟 21 端口(預設)

2 、在 FTP SERVER 上開啟 PASV MODE 支援

3 、在 FTP SERVER 上指定 PASV MODE 使用的端口範圍

4 、在防火牆上開放相應的 PASV MODE 所需要的端口 二、 FTP SERVER 處于内網 1 、如果有防火牆,參照上面的設定

2 、在 GATEWAY 上做端口映射,映射 TCP 21 端口到 FTP SERVER 的 21 端口

3 、在 FTP SERVER 上指定 PASV MODE 使用的端口範圍

4 、還需要額外的在 GATEWAY 上再映射 20 端口和 PASV MODE 使用的端口到 FTP SERVER 上

三、 FTP CLIENT 1 、在防火牆上允許對外 21 端口的通路

2 、在防火牆上開啟 1024 端口以支援使用 PORT MODE 從内網通路外網的 FTP SERVER

3 、開啟 FTP CLIENT 使用軟體的 PASV 模式支援(如 IE 預設是不使用 PASV MODE )

說明 1 、 PASV MODE 端口範圍的作用:

當用戶端以 PASV 方式連接配接伺服器的時候,伺服器就會在這個端口範圍裡挑選一個端口出來,給用戶端連接配接。如果不指定,預設是随機的 1024 以上的端口。 說明 2 、 IE 開啟 PASV MODE 的方法:控制台 ->INTERNET 選項 -> 進階标簽 -> 啟用被動 FTP

總結:在架設 FTP SERVER 出現問題後,根據經驗,用以下原則進行設定可以解決大多數問題

1 、 FTP SERVER 啟用并指定 PASV MODE 使用的端口範圍,如果有防火牆在防火牆上允許這些端口的通路

2 、 FTP CLIENT 盡量不要使用 IE , IE 隻是一個粗糙的 FTP CLIENT 工具,預設不開啟 PASV MODE ,通路出錯資訊單一

3 、 FTP CLIENT 關閉 TCP/IP 篩選

4 、盡量使用 PASV MODE 通路 FTP 伺服器,而非 PORT MODE