[Windows Azure] 在 Virtual Machines (Windows 2008 R2) 建立 FTP Server
在 Windows Azure 的服務裡有 Virtual Machines 的服務,可以用它來建立FTP Server
我們可以利用RDP進入VM,基於安全性考量,請將 RDP 的 EndPoint 改成 5000以上的 Port Number,總之就是不要用3389
Administrator的帳號密碼複雜度弄強一點,防火牆不要亂關,因為我的VM被駭,被改了密碼,當時我用的密碼是 pass@w0rd1
從Server Manager
建立 FTP Server
安裝中
完成
安裝好FTP後就可以來開始設定了
Step1.建立一個新的 FTP Site
輸入Server site name 以及實體路徑
若要安全性高一點可以禁止匿名訪問,允許存取的人員可以用特別的 UserGroup,在這裡為了方便說明,我選擇了All User
加入虛擬目錄
設定實體路徑
設定資料夾權限
設定可寫入資料夾權限
設定瀏覽方式
打開命令提示字元輸入 ftp 127.0.0.1
測試能否登入
Step2.設定防火牆
Step3.設定外部IP
外部 IP 就是你的 Public virtual IP address (VIP)
更詳細的FTP設定,請參考
http://www.iis.net/learn/publish/using-the-ftp-service/configuring-ftp-firewall-settings-in-iis-7
如何設定被動模式 FTP 伺服器的 Windows 防火牆
http://technet.microsoft.com/zh-tw/library/dd421710%28WS.10%29.aspx
以上的設定都是屬於原本TFP Service的設定,接下來才是Windows Azure VM 所要關心的。
Step4.設定 EndPoint
在這裡我是用Windows Azure PowerShell來處理,不會使用的捧油,請參考以下兩篇:
http://www.dotblogs.com.tw/yc421206/archive/2013/01/30/89360.aspx
http://www.dotblogs.com.tw/yc421206/archive/2013/01/30/89397.aspx
Get-AzureVM -ServiceName "tako-alm2012" -Name "tako-alm2012" | Add-AzureEndpoint -LocalPort 21 -PublicPort 55621 -Name FTPint -Protocol TCP | Update-AzureVM
完成畫面如下
Step5.重啟 ftp service
在這裡我是利用cmd bat script 處理,將以下內容另存成*.bat
cd %windir%\system32\inetsrv
netsh advfirewall set global StatefulFtp enable
net stop ftpsvc
net start ftpsvc
pause
exit
接著就可以來測試一下了,我在自己的電腦連線至ftp alm2012.cloudapp.net,登入是登入了但卡在 Passive Mode
Step6.開啟 Passive EndPoint Port
我需要開啟100個Passive Endpoint port,所以仍是使用Windows Azure PowerShell,詳細做法請參考:
http://www.dotblogs.com.tw/yc421206/archive/2013/01/30/89397.aspx
將以下內容存成*.ps1,別忘了要替換成正確的服務名稱
do
{ Get-AzureVM -ServiceName "tako-alm2012" -Name "tako-alm2012" | Add-AzureEndpoint -LocalPort $i -PublicPort $i -Name FTPPassive$i -Protocol TCP | Update-AzureVM; $i++}
until ($i -gt 7100 )
執行*.ps1後就可以在入口網站上看到 EndPoint 慢慢的加進來了
然後再重啟一下ftp service,套用剛剛的*.bat檔
然後再測試一下,這次就能順利的登入 FTP Server 並且上傳資料囉!
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET