華為雲彈性雲伺服器ECS搭建FTP服務實踐
摘要:在使用華為彈性雲伺服器ECS搭建FTP服務的時候,經常會遇到搭建完成後無法訪問的問題。本篇透過演示windows IIS搭建FTP方法,講解ftp主動模式、被動模式原理來說明無法訪問的原因及解決方案。
我們在使用華為彈性雲伺服器ECS搭建FTP服務的時候,經常會遇到搭建完成後無法訪問的問題。本篇案例透過講解ftp主動模式、被動模式原理來說明無法訪問的原因及解決方案。
華為雲上的彈性公網IP地址EIP和彈性雲伺服器ECS的私網IP地址是動態繫結的,透過NAT的方式進行對映。FTP協議應用層中攜帶了IP地址或埠等資訊,因此一般需要ALG的幫助才能正常穿越NAT。我們在華為雲主機上搭建ftp伺服器後,一般預設無法從公網去訪問,要理解這個原因,首先要了解下ftp的主動模式和被動模式的概念。
一、FTP主動模式與被動模式
1、主動模式
客戶端從一個任意的非特權埠N(N>1024,如下圖的1026埠)連線到FTP伺服器的21埠。然後客戶端開始監聽N+1(如下圖的1027埠),併傳送FTP命令“port N+1”到FTP伺服器。接著伺服器會從它自己的資料埠(20)連線到客戶端指定的資料埠(N+1)。
用更通俗的語言來理解這個互動過程:
- 客戶端用一個大於1024的埠N與FTP伺服器的21埠建立一個控制通道,傳送一條命令告訴FTP服務端(即通常說的PORT命令),我的資料通道的通訊地址是IP1(本機網路卡IP),資料通道的埠N+1,服務端收到請求後回覆ACK確認。
- 服務端確認後,用源埠20主動與客戶端IP1:N+1建立連線,進行資料通訊。
2、被動模式
當開啟一個FTP連線時,客戶端開啟兩個任意的非特權本地埠N>1024和N+1(分別如下圖的1026埠和1027埠)。第一個埠連線伺服器的21埠,客戶端提交PASV命令給服務端,這樣做的結果是伺服器會開啟一個任意的非特權埠(P>1024),併傳送PORT P(如下圖2024)命令給客戶端。然後客戶端發起從本地埠N+1到伺服器的埠P的連線用來傳送資料。
用更通俗的語言來理解這個互動過程:
- 客戶端使用源埠N與FTP服務端建立一個控制通道,傳送一條命令告訴服務端(即通常說的PASV命令),我將使用被動模式與你通訊。服務端收請求後,會告知客戶端我的IP是IP2(預設為主機網路卡IP)和監聽埠P,你可以和我的這個IP和埠通訊。
- 客戶端收到1)中的資訊後,使用源埠N+1,與服務端IP2:P建立連線,進行資料通訊。
二、windows IIS搭建FTP方法演示
server 版本:Windows Server 2012 R2 標準版 64位簡體中文
IIS版本: IIS 8
1、安裝FTP服務
“控制皮膚”—“管理工具”—“伺服器管理器”—“儀表盤”
2、ftp服務部署
客戶端IE瀏覽器一般預設配置採用被動模式訪問FTP伺服器,如果透過EIP去訪問雲上ECS部署的FTP服務,會報如下錯誤:
理解了FTP被動模式的原理後,我們就很容易理解訪問失敗的原因:
第一步控制通道通訊過程中,服務端回覆給客戶端的資料面IP是服務端網路卡的私網IP(此處為172.16.0.170)而不是服務端的公網IP地址,導致客戶端第二步資料通道建連失敗。
三、解決方案
1.客戶端IE修改為主動模式
如下圖所示所示,在“工具->Internet選項->高階”將“使用被動FTP…“勾選去掉。前面說過,FTP主動模式下,FTP伺服器會
但有一點需要注意,如果客戶端本地網路是透過NAT方式訪問外網的,也可能會有問題,所以不建議採用該方案。
2、服務端配置“FTP防火牆支援”
如下圖所示,在“防火牆的外部IP地址”中填寫主機的彈性公網IP即可,此時仍然採用FTP被動模式。建議使用該種方式,該種方法可以支援被動模式訪問FTP,且對客戶端本地網路無特殊要求。
注意:被動模式下,FTP伺服器的安全組入方向需要放通FTP資料通道的埠號(預設為1024~65535的埠號),否則,FTP伺服器也無法訪問。如上圖所示,此處FTP伺服器資料通道埠設定為1025~10018,所以FTP伺服器網路卡對應安全組主要新增如下入方向規則,如下圖所示。
以上,是在華為雲上如何使用華為雲彈性雲伺服器ECS搭建FTP的實踐。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1727/viewspace-2796601/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於ECS搭建FTP服務(阿里雲)FTP阿里
- 彈性雲伺服器(Elastic Cloud Server,ECS)伺服器ASTCloudServer
- ECS彈性雲伺服器常用埠、安全組伺服器
- 阿里雲的ecs伺服器,建立ftp站點阿里伺服器FTP
- 微服務在彈性雲實現無損釋出實踐微服務
- 阿里雲ECS伺服器部署Dart服務端程式阿里伺服器Dart服務端
- 阿里雲ECS彈性裸金屬(神龍)伺服器為雙11保駕護航阿里伺服器
- linux雲服務搭建Minecraft伺服器LinuxRaft伺服器
- EventBridge 整合雲服務實踐
- 華為釋出好望雲服務
- FTP服務搭建FTP
- 天翼云云主機上搭建FTP服務最佳實踐FTP
- 華為雲的Kubernetes實踐之路
- 彈性配置為構建提速 - CODING & 騰訊雲 CVM 最佳實踐
- ECS彈性網路卡+彈性公網IP配置最佳實踐之策略路由路由
- 告別伺服器崩潰,華為雲ECS有何優勢伺服器
- linux ftp服務搭建LinuxFTP
- 阿里雲伺服器ECS配置及LAMP環境搭建及配置(新手攻略第一彈)阿里伺服器LAMP
- 華為雲:彈性負載均衡健康檢查異常負載
- 雲原生體系下 Serverless 彈性探索與實踐Server
- 詳解華為雲基因容器服務GCSGC
- DevOps雲翼日誌服務實踐dev
- 華為雲:微服務架構下的效能保障最佳實踐微服務架構
- 華為雲服務治理 | 微服務常見故障模式微服務模式
- 華為雲Flexus雲服務 Ubuntu 系統下安裝DockerFlexUbuntuDocker
- 阿里雲伺服器ECS搭建網站詳細教程阿里伺服器網站
- 基於ECS搭建GitLab服務Gitlab
- linux雲服務搭建七日殺伺服器Linux伺服器
- 華為雲胡亞凡 華為雲NoSQL資料庫的探索與實踐分享SQL資料庫
- 如何解決公網無法訪問阿里雲ECS搭建的MongoDB服務阿里MongoDB
- 華為雲服務治理 — 隔離倉的作用
- 使用滴滴雲彈性推理服務部署 Inception-v3 模型模型
- 直播預告 | 容器服務 ACK 彈性預測最佳實踐
- openGauss資料庫部署實踐(華為雲開發者雲實驗)資料庫
- 阿里雲ECS雲伺服器新手上路阿里伺服器
- 在騰訊雲容器服務 TKE 中利用 HPA 實現業務的彈性伸縮
- ECS雲伺服器搭建Mysql,並提供公網連線伺服器MySql
- 華為雲伺服器教程伺服器