華爲雲彈性雲服務器ECS搭建FTP服務實踐

摘要:在使用華爲彈性雲服務器ECS搭建FTP服務的時候,常常會遇到搭建完成後沒法訪問的問題。本篇經過演示windows IIS搭建FTP方法,講解ftp主動模式、被動模式原理來講明沒法訪問的緣由及解決方案。

咱們在使用華爲彈性雲服務器ECS搭建FTP服務的時候,常常會遇到搭建完成後沒法訪問的問題。本篇案例經過講解ftp主動模式、被動模式原理來講明沒法訪問的緣由及解決方案。windows

華爲雲上的彈性公網IP地址EIP和彈性雲服務器ECS的私網IP地址是動態綁定的,經過NAT的方式進行映射。FTP協議應用層中攜帶了IP地址或端口等信息,所以通常須要ALG的幫助才能正常穿越NAT。咱們在華爲雲主機上搭建ftp服務器後,通常默認沒法從公網去訪問,要理解這個緣由,首先要了解下ftp的主動模式和被動模式的概念。瀏覽器

1、FTP主動模式與被動模式

一、主動模式

客戶端從一個任意的非特權端口N(N>1024,以下圖的1026端口)鏈接到FTP服務器的21端口。而後客戶端開始監聽N+1(以下圖的1027端口),併發送FTP命令「port N+1」到FTP服務器。接着服務器會從它本身的數據端口(20)鏈接到客戶端指定的數據端口(N+1)。安全

用更通俗的語言來理解這個交互過程:服務器

  1. 客戶端用一個大於1024的端口N與FTP服務器的21端口創建一個控制通道,發送一條命令告訴FTP服務端(即一般說的PORT命令),個人數據通道的通訊地址是IP1(本機網卡IP),數據通道的端口N+1,服務端收到請求後回覆ACK確認。
  2. 服務端確認後,用源端口20主動與客戶端IP1:N+1創建鏈接,進行數據通訊。

二、被動模式

當開啓一個FTP鏈接時,客戶端打開兩個任意的非特權本地端口N>1024和N+1(分別以下圖的1026端口和1027端口)。第一個端口鏈接服務器的21端口,客戶端提交PASV命令給服務端,這樣作的結果是服務器會開啓一個任意的非特權端口(P>1024),併發送PORT P(以下圖2024)命令給客戶端。而後客戶端發起從本地端口N+1到服務器的端口P的鏈接用來傳送數據。網絡

用更通俗的語言來理解這個交互過程:併發

  1. 客戶端使用源端口N與FTP服務端創建一個控制通道,發送一條命令告訴服務端(即一般說的PASV命令),我將使用被動模式與你通訊。服務端收請求後,會告知客戶端個人IP是IP2(默認爲主機網卡IP)和監聽端口P,你能夠和個人這個IP和端口通訊。
  2. 客戶端收到1)中的信息後,使用源端口N+1,與服務端IP2:P創建鏈接,進行數據通訊。

2、windows IIS搭建FTP方法演示

server 版本:Windows Server 2012 R2 標準版 64位簡體中文工具

IIS版本: IIS 8spa

一、安裝FTP服務

「控制面板」—「管理工具」—「服務器管理器」—「儀表盤」3d

二、ftp服務部署

客戶端IE瀏覽器通常默認配置採用被動模式訪問FTP服務器,若是經過EIP去訪問雲上ECS部署的FTP服務,會報以下錯誤:server

理解了FTP被動模式的原理後,咱們就很容易理解訪問失敗的緣由:

第一步控制通道通訊過程當中,服務端回覆給客戶端的數據面IP是服務端網卡的私網IP(此處爲172.16.0.170)而不是服務端的公網IP地址,致使客戶端第二步數據通道建連失敗。

3、解決方案

1. 客戶端IE修改成主動模式

以下圖所示所示,在「工具->Internet選項->高級」將「使用被動FTP…「勾選去掉。前面說過,FTP主動模式下,FTP服務器會

但有一點須要注意,若是客戶端本地網絡是經過NAT方式訪問外網的,也可能會有問題,因此不建議採用該方案。

二、服務端配置「FTP防火牆支持」

以下圖所示,在「防火牆的外部IP地址」中填寫主機的彈性公網IP便可,此時仍然採用FTP被動模式。建議使用該種方式,該種方法能夠支持被動模式訪問FTP,且對客戶端本地網絡無特殊要求。

注意:被動模式下,FTP服務器的安全組入方向須要放通FTP數據通道的端口號(默認爲1024~65535的端口號),不然,FTP服務器也沒法訪問。如上圖所示,此處FTP服務器數據通道端口設置爲1025~10018,因此FTP服務器網卡對應安全組主要添加以下入方向規則,以下圖所示。

以上,是在華爲雲上如何使用華爲雲彈性雲服務器ECS搭建FTP的實踐。

相關文章
相關標籤/搜索