1. 程式人生 > >在IIS上搭建FTP服務

在IIS上搭建FTP服務

目錄

 

正文

FTP服務

     FTP是檔案傳輸協議(File Transfer Protocol)的簡稱,該協議屬於應用層協議(埠號通常為21),用於Internet上的雙向檔案傳輸(即檔案的上傳和下載)。在網路上有很多伺服器提供FTP服務,用來存放大量的檔案供他人下載。FTP服務的主要作用是讓遠端使用者可以連線上來,檢視伺服器上有哪些檔案,然後下載,當然使用者也可以將本地檔案上傳到伺服器,共享給其他人以便下載。FTP服務提供上傳下載服務的同時,管理員也可以設定不同使用者對不同資料夾的訪問許可權(讀、寫)。

回到頂部

在Win7的IIS上搭建FTP服務

     初學Web開發的人,一般的情況下都認為IIS只能提供Web服務。其實IIS不僅可以提供Web服務,還可以提供其他服務,如網路新聞服務(NNTP)、簡單郵件傳輸服務(SMTP),當然還有檔案傳輸服務(FTP)。只是在IIS上,用得最多的是Web服務。預設安裝的情況下,IIS也只會安裝Web服務,FTP服務只在特定選擇的情況下才會被安裝到IIS環境中。下面,我們來看看在Win7的IIS上安裝FTP服務的步驟:

1、開啟“控制面板”的“程式和功能”:

2、進入到“程式和功能”的介面,選擇左側的“開啟或關閉Windows功能”,開啟“Windows”功能對話方塊:

3、展開“Internet資訊服務”節點,發現預設情況下“FTP伺服器”子節點並沒有被選中,選中該子節點,點選“確定”按鈕,Windows開始安裝FTP服務(由於Win7的所有元件安裝檔案其實已經在Win7的安裝過程中被拷貝到系統中,故不想WinXP下安裝元件需要系統盤):

4、安裝完成後,你會在“服務”管理工具中看到“MIcrosoft FTP Service”服務:

回到頂部

在IIS中新增FTP站點

1、在“管理工具”的“Internet資訊服務(IIS)管理器”中,選中伺服器,點選右鍵選單中的“新增FTP站點…”子選單項:

2、在“新增FTP站點”對話方塊的“FTP站點名稱”中輸入你所期望的站點名稱,並選擇你期望用來存放檔案的“內容目錄”:

3、點選“下一步”按鈕,進入IP地址繫結和SSL設定,由於我們這裡不使用SSL,所以SSL選項選擇“無”,至於什麼是“SSL”,本人將在後續的文章中講解:

4、繼續點選“下一步”,進入到“身份驗證和授權資訊”環節,“身份驗證”選擇“匿名”和“基本”,

“授權”的“允許訪問”選擇“所有使用者”,“許可權”選擇“讀取”:

5、點選“完成”按鈕,完成FTP站點的新增過程。這時會發現IIS管理器“網站”節點下多了一項剛才新增的FTP站點。

 

回到頂部

FTP站點的配置及授權

 

1、不想讓所有使用者都可訪問,需要設定FTP站點的許可權(FTP身份驗證、授權規則)。我們在Windows系統中新增一個名為“FTPUser”的使用者,在“開始選單”中選擇“計算機”,點選右鍵選單中的“管理”子選單:

開啟“本地使用者和組”的“使用者”節點,

新增使用者名稱為“ftpuser”的新使用者:

點選“建立”按鈕為Windows系統建立新的使用者。

可能的錯誤:

 

需要配置本地策略。步驟:控制面板->系統和安全->管理工具->本地安全策略->

主要是修改以下兩個策略

1、密碼必須符合複雜性要求——禁用

2、密碼長度最小值——設定為0

 

3、在IIS管理器的FTP站點中,選中你要授權的資料夾,並切換到“功能檢視”,選中“FTP授權規則”,

 

雙擊“FTP授權規則”,進入“授權規則”管理介面,點選右鍵選單的“新增允許規則”,彈出對話方塊,選擇“指定的使用者”並輸入“ftpuser”,設定其許可權為“讀取”和“寫入”:

點選“確定”完成“授權規則”的新增。

 

回到頂部

 FTP被動模式訪問

FTP伺服器一般都支援主動和被動模式,連線採用何種模式是有FTP客戶端軟體決定。

主動 FTP :
    命令連線:客戶端 >1024 埠 → 伺服器 21 埠
    資料連線:客戶端 >1024 埠 ← 伺服器 20 埠

  被動 FTP :
    命令連線:客戶端 >1024 埠 → 伺服器 21 埠
    資料連線:客戶端 >1024 埠 ← 伺服器 >1024 埠

  PORT(主動)方式的連線過程是:客戶端向伺服器的FTP埠(預設是21)傳送連線請求,伺服器接受連線,建立一條命令鏈路。 當需要傳送資料時, 客戶端在命令鏈路上用PORT命令告訴伺服器:“我打開了***X埠,你過來連線我”。於是伺服器從20埠向客戶端的***X埠傳送連線請求,建立 一條資料鏈路來傳送資料。  

  PASV(被動)方式的連線過程是:客戶端向伺服器的FTP埠(預設是21)傳送連線請求,伺服器接受連線,建立一條命令鏈路。 當需要傳送資料時, 伺服器在命令鏈路上用PASV命令告訴客戶端:“我打開了***X埠,你過來連線我”。於是客戶端向伺服器的***X埠傳送連線請求,建立一條資料鏈 路來傳送資料。

早先所有客戶端都使用主動模式,而且工作的很好,而現在因為客戶端防火牆的存在,將會關閉一些埠,這樣主動模式將會失敗。在這種情況下就要使用被動模式,但是一些埠也可能被伺服器的防火牆封掉。不過因為ftp伺服器需要它的ftp服務連線到一定數量的客戶端,所以他們總是支援被動模式的。這就是我們為什麼要使用被動模式的原意,為了確保資料可以正確的傳輸,使用 被動模式要明顯優於主動模式。

 

IIS下搭建的ftp被動模式設定:

伺服器上ftp用被動模式,伺服器只開50000-60000的埠用於客戶端訪問,而看了下用1025-1034這樣的埠並不行,用抓包也看到被動時,伺服器端指定的埠是50492,大多是在5萬-6萬之間(這個是為什麼,暫時沒搞清)。

 

而這個埠是變動的,故如果只設置一個埠是不行的(50000-50000這樣不行)

相應的伺服器也得在“安全組規則”裡開這些埠。

 

轉載:https://www.cnblogs.com/peterYong/p/6596667.html