1. 程式人生 > >第9章 應用層(5)_文件傳輸協議FTP

第9章 應用層(5)_文件傳輸協議FTP

public 被動模式 更多 保留 允許 服務器端 磁盤 stat 命令

6. 文件傳輸協議FTP

6.1 FTP主動和被動模式

(1)FTP協議

  ①與其他協議不同,FTP協議在客戶端訪問FTP服務器時需要建立兩個TCP連接一個用來傳輸FTP命令,一個用來傳輸數據

  ②在FTP服務器上需要開放兩個端口,一個命令窗口(或稱為控制窗口)和一個數據窗口。通常命令端口為21,數據端口為20。當考慮主動/被動模式時,數據端口可能不是20。

(2)主動模式(建立傳輸數據的TCP連接由FTP服務器主動發起)

技術分享

  ①工作過程

    A.第1步中,FTP客戶端提交PORT命令並允許服務器來回連它的數據端口(1027)。

    B.第2步中,服務器返回確認。

    C.第3步中,FTP服務器向客戶端發送TCP連接請求

,目標端口為1027源端口為20.為傳輸數據發起建立連接的請求。

    D.第4步中,FTP客戶端發送確認數據服文,目標端口20,源端口1027,建立傳輸數據的連接。

  ②主要問題

    A.主動模式下FTP服務器只需打開TCP的21端口和20端口。而FTP客戶端防火墻要將TCP協議號大於1023的端口全部打開

    B.主動模式下FTP的主要問題在客戶端,因為服務器為了建立傳輸數據的連接,會回連客戶端指定的端口。對於客戶端防火墻來說,這是從外部系統到內部客戶端的連接,通常會被阻塞,除非關閉客戶端防火墻。

(3)被動模式(命令連接和數據連接都由客戶端發起,FTP服務器只是被動連接

技術分享

  ①工作過程

    A.在第1步中,客戶端的命令端口與服務器的命令端口建立連接,並發送命令“PASV”。(註意:與主動模式不同,客戶端不需要提交回連的數據端口)。

    B.服務器返回命令“PORT 2024”告訴客戶端,服務器用哪個端口偵聽數據連接。

    C.客戶端初始化一個從自己的數據端口到服務器端指定的數據端口的數據連接

    D.服務器給客戶端的數據端口返回一個“ACK”響應。

  ②主要問題

    A.被動模式解決了主動模式的問題,但同時也給服務器帶來更多的問題。最大的問題就是需要允許從任意遠程終端到服務器高位端口的連接,而服務器需要開放端口範圍

    B.FTP服務允許管理員指定FTP服務器使用的端口範圍。

6.2 實戰

(1)在Win2003上搭建FTP服務器

  ①“添加/刪除Windows組件”→“Windows組件”→“應用程序服務器”→雙擊“Internet信息服務”→“文件傳輸協議(FTP)服務”

  ②在D盤下建立文件夾作為FTP的根目錄(如D:\homeWork)

  ③刪除默認FTP,新建FTP站點,填寫IP和端口(保留默認即可)。註意,當出現“FTP用戶隔離”時選擇“不隔離用戶”。

(2)訪問FTP服務器,

  ①客戶端xp訪問ftp服務器並上傳/下載文件,然後運行netstat –an查看端口,可以看到FTP服務端使用的是兩個(21端口和x端口,如果x為20說明是主動模式,否則為被動模式)

  ②更改FTP連接模式:IE→“Internet選項”→“高級”→取消或選擇“使用被動FTP”。(註意,采用主動或被動模式是由客戶端選擇的)

(3)FTP隔離用戶模式

  ①用戶隔離的目的同一個FTP站點下,不同用戶訪問不同的目錄(或文件)而不影響其他用戶的目錄或文件。要使用該功能,需在創建FTP站點是指定為“隔離用戶”模式(如下圖)

技術分享

  ②規劃目錄結構:隔離用戶模式的FTP站點對目錄的名稱和結構有一定要求。首先FTP站點的主目錄必須是NTFS分區,然後在主目錄中創建一個名為“LocalUser”的子目錄最後“LocalUser”目錄下創建和用戶帳號名稱相一致的文件夾和一個名為Public的文件夾

技術分享

  ③創建讓所有用戶共享的文件夾。步驟如下:

    A.在public、Wang和Zhang目錄下分別創建一個文件夾(如Share)

    B.在虛擬機中新增一塊磁盤,然後右鍵“我的電腦”→“管理”→磁盤管理找到新增加的磁盤(如磁盤1),並授於“everyone”對磁盤的訪問權限“完全控制”

    C.將新磁盤1映射到三個Share文件中去方法:在“磁盤管理”中右鍵“磁盤1”→“更改驅動號和路徑”→“添加”→選擇“裝入以下空白NTFS文件夾中”,並瀏覽到上述的Share文件夾。按同樣的方法將磁盤1映射其他Share文件夾去。

技術分享

  ④ 訪問FTP:輸入ftp站點地址後,分別以匿名、Wang和Zhang用戶進行訪問。(註意:必須先在FTP服務器上創建Wang和Zhang兩個用戶,創建命令如net user Wang 123 /add等)

第9章 應用層(5)_文件傳輸協議FTP