標題是想到 Pokemon 的通信交換畫面啦,線連著然後交換 Pokemon 的感覺,很有檔案傳輸的意象(?)。在 Windows 上架設 FTP Hosting,IIS 是其中一個算是容易簡便的設定方式。
FTP 全名 File Transfer Protocol,意指檔案傳輸協定。Server 端架設 FTP 服務能夠讓使用者藉由特定方式存取,將檔案傳到 Server 上或從 Server 上下載檔案。有些人就會選擇在自有空間上架設這種服務,方便儲存一些自己的檔案。
之前架設網站的時候也看到過,IIS 對 Site 層級新的時候,可以選擇要建立 Website 或是 FTP Site,今天要看的就是這個部分的設定。如果你這邊沒看到選項,很可能是你安裝的時候沒有勾選到請回去見 Day2 的流程再走一次,確認 FTP 相關功能在那邊是有勾選開啟的。
最開始要設定的時候也很簡單,基本就只有名字跟你要當成 FTP 的資料夾路徑設定。
相對於 Http 80 跟 443 的廣為人知,FTP 可能比較少人用,但一樣他們有預設 Port 號,處理問題的時候如果看到這些 Port 要有知道這是 FTP 的敏銳,分別是 20 和 21,20 是傳送,21 是接收。IP 位置就看你希望怎麼被存取到這台,可以根據你希望架設的 IP 做設定。Enable Virtual Host Names 的功能是允許用類似 domain 的形式讓 FTP 被存取,相對於記 IP,這個可能更友善一點。還有如果你只有一個 IP,但有多個 FTP 站台,那也需要使用這個讓各站台的存取能夠被區分,不然都是同 IP 同樣指到 21,Server 會沒辦法正確分辨要去給哪個站台。
這個頁面也可以同時設定 SSL,如果僅在內網使用,可以不需要,如果要對外曝光的最好還是有對應的安全設定。有掛上憑證的 FTP 會稱作 FTPS,該協定目前一般檔案總管是不支援的,得去下載對應的 FTP 程式才能夠開啟使用。
再來是存取相關權限設定,可以依據各個情況去設定,基本會對應於該資料夾的存取權限,後續想要修改就是去直接用 Edit Permission 的功能。只能讀的權限不能上傳,需要有讀寫才能夠做檔案的上傳。上面的驗證模式是允不允許匿名存取,或是會依登入身分吃到對應認證。兩者同時啟用的時候,會以基本驗證為準。
若這是第一次在這台機器上做 FTP 的設定,也要檢查一下關於防火牆有沒有允許 FTP 通過,我這邊以我本機的 Win10 作範例:
依序按照上面,可以看到目前你的防火牆有沒有允許該應用程式對應的 port 做通訊,依據你的使用情境決定在 Private / Public 的網路環境下開不開起。
這些都設定完後本機的 FTP Server 就應該要起來了,記得如果你是 FTPS 的話就沒辦法用 File Explorer 開啟,要去找像是 FileZelia 之類的軟體來支援。
當你要開啟 ftp 類型的地址時,記得前面加上 ftp:// 作為協定口,可以看到下圖一個是透過資料夾直接存取的,一個是透過 ftp 的方式存取的。
更多人來看這種系列文的時候應該還是將 IIS 當作 Web Server 架設網站多一些,所以 FTP 的篇幅我們只會有這篇來做一個概述。IIS 一樣有提供 FTP 功能類的一些模組,如下圖:
基本上我不會一個一個介紹,這邊稍微列一下剛剛架設過程中路過的設定,如果後續建起後想要更改分別是到下面這三個模組去更改:
其他模組我不一一走過,有興趣的人可以再自行嘗試。
這篇沒講到的細節,或是想要多了解 SSL 的概念,可以參考 Microsoft 的這篇 [MS-FTPS]: File Transfer Protocol over Secure Sockets Layer (FTPS) | Microsoft Learn,很詳細的講述了 FTP 協定的各個層面。如果一般你的使用需求不會用到,那本篇內容讓你對 IIS 上的 FTP 有個初步的認識我覺得就已經足夠,需要的時候再去深查囉。