【網頁設計白話文】什麼是 FTP / SFTP?如何用 FileZilla 傳輸檔案

#網站知識

【網頁設計白話文】什麼是 FTP / SFTP?如何用 FileZilla 傳輸檔案

如果您曾經尋找網站公司開發軟體,有時候可能會聽到某些工作流程,要依賴 FTP 上傳檔案,例如自動匯入資料,或者上傳行銷用網頁檔案等等。

到底什麼是 FTP 呢? FTP 又要如何使用,這篇文章會替大家簡單說明。

如果您剛拿到 FTP 帳密,正在尋找如何連線,可以跳到這篇文章的後半部 #如何進行 FTP / SFTP 連線

FTP 是什麼?

FTP 全名為 File Transfer Protocol (檔案傳輸協定),顧名思義,他是一個非常普遍的電腦與電腦之間的檔案傳輸協定。這個協定被實現出來的目標是:

  1. 促進檔案的共享(電腦程式或資料)

  2. 鼓勵間接或者隱式的使用遠端電腦

  3. 向使用者封鎖不同主機中各種檔案儲存系統(File system)的細節

  4. 可靠和高效的傳輸資料

通常 FTP 被用在個人電腦與伺服器之間的檔案傳輸,不過您想要用 FTP 在個人電腦之間傳輸檔案也是可以做到的。

FTP 協議也可以支援匿名使用,在早期網路剛開始流行時,許多網站主會架設 FTP 伺服器,並把許多共享資源或軟體放在 FTP 上,再讓大家自由下載。某些大學教授也會把教材檔案放在 FTP 供學生們取用。任何人知要能知道 FTP 的 IP 位址,就可以上去抓取檔案。

而 FTP 與 P2P 的檔案傳輸協議,例如 AirDrop 或藍芽之類的差異在於,FTP 是主從式架構,其中一台電腦必須成為 FTP 伺服器,另一台電腦則成為 FTP 客戶端,才能夠傳輸檔案。而 FTP 的連線啟動度較慢,也偏向無狀態化,所以較適合用在傳輸大型檔案時使用。

FTP 的連線原理

FTP 屬於 TCP 服務的一種,但與其他協定如 HTTP、SMTP 等不一樣的點在於,FTP 在連線時會使用到兩個通道。

一開始連線時打開的會是 20 port ,用來讓客戶端連線與下指令的通道,成為「控制流」。一旦控制流發送了上傳或下載的指令,兩台電腦之間就會建立起 21 port 的傳輸連線,用來傳輸檔案,稱為「資料流」。

這時候,原本的控制流不會受到影響,可以繼續發送指令傳輸更多新的檔案。若是傳輸過程中,過了很久沒有發送新的指令,控制流可能會被伺服器中斷,但資料流可以繼續傳輸檔案直到完成為止。

FTP 的主被動模式

FTP 的資料傳輸又有分成主動 (PORT) 與被動 (PASV) 模式,早期 FTP 剛發明出來時,都是主動模式。主動模式的運作方式是當控制流建立連線後,會從使用者這邊打開一個大於 1024 的 port,讓伺服器連線過來建立資料流。但這種模式的缺點在於,用戶端這邊如果有防火牆,伺服器就無法連線過來。

由於 FTP 剛發明時,沒有預想到未來防火牆的發展,所以當防火牆普及後,原本的連線方式受到阻礙。因此後來又制定了被動模式的協定,改成資料流由用戶端連線伺服器。這也是為什麼現在的 FTP 連線,幾乎 90% 要求你打開被動模式的因素。

不過被動模式反過來變成伺服器的安全性受到影響,所以也不是最好的解決方案。大多數時候,主被動模式是由用戶端發出要求的,但伺服器可以由管理員設定是否要接受這個模式。

更安全的 SFTP

FTP 最大的缺點是它缺乏加密,指令或資料容易受到攔截和篡改。在連線加密被視為基本要求的現代,已經越來越少企業允許使用傳統的 FTP 了,而是改用更安全的 SFTP,又稱為 SSH FTP。

SSH 是 Secure Shell Protocol 的簡寫,可以在網路中建立安全隧道來實現客戶端與伺服器之間的連線。SSH最常見的用途是遠端登入系統,人們通常利用SSH來傳輸命令列介面和遠端執行命令。而 SFTP 就是運用 SSH 作為傳輸協定來進行身分認證與檔案傳輸加密。

SFTP 與 SSH 一樣是使用 22 port,所以不再需要原本的 20 與 21 port。使用 SFTP 有以下好處:

  • 接口簡潔: SFTP 只需要一個 port,比 FTP 更易於管理和設定。

  • 易於管理: 只需要開設 SSH 連線帳密,就等於擁有 SFTP 的連線能力。

  • 安全性增強: SFTP 的加密和身分驗證功能可保護你的資料。

  • 符合行業標準: 許多行業(如醫療和金融)都要求使用「安全的文件傳輸方式」來保護敏感數據,使用 SFTP 可以實現這些要求。

因此,近年來,多數軟體廠商或 IT 人員,在處理檔案傳輸時,幾乎都是以 SFTP 為主了。

如何進行 FTP / SFTP 連線

假設您的網站公司或軟體公司,提供給您一組 SFTP 帳密請您上傳檔案,通常應該會類似這樣

  • Host: 221.xxx.xxx.xxx (四組數字) or ftp.site.com (網域名稱)

  • Username: xxx

  • Password: ***

只要有這三項資訊,就可以連線 SFTP,請依照以下步驟來進行。

下載軟體

近年來最流行的 FTP 軟體是 FileZilla,可以前往 FileZilla 官網下載 (Mac 也支援)。

選擇 Free

下載完成後,依照一般的軟體安裝方式,安裝起來即可。安裝完成後打開 FileZilla 會長這樣:

快速連線伺服器

假設要快速連線,可以將上面的資訊輸入到工具列的快速連線,最後一個連接埠,必須輸入 22 (因為 SSH 是用 22 port 連線)

接著按下「快速連線」,會詢問你是否儲存密碼,可以自行決定:

接著會問你是否快取這個伺服器的金鑰,如果不想每次都被問一次的話,可以選快取:

最後如果成功的話,就會出現伺服器上的檔案列表了:

儲存連線資訊

如果您想要將連線資訊儲存起來,以後不用輸入密碼就能直接點選連線,可以這樣做。

如果您已經先進行快速連線了,可以選擇上方選單的 檔案 > 複製當下連線到站台管理員:

接著修改連線名稱,以及重新輸入一次 22 port。

然後按下「確認」,未來就可以一鍵連線了。

新增新連線

如果您要建立一個新的伺服器連線,也可以直接新增然後輸入資訊,先按下「站台管理員」的 icon。

然後選擇「新增站台」,再輸入必要連線資訊即可。記得要選 SFTP 的選項,連接埠輸入 22。

開始傳輸檔案

傳輸檔案的介面很簡單,左邊是你的電腦本機資料夾與檔案。右邊是伺服器上的資料夾與檔案。將你想要上傳的檔案拖拉過去即可。可以一次圈選多個檔案上傳,或是上傳整個資料夾都行。

下方會顯示傳輸進度

同樣的,如果要下載檔案,就從右邊拖拉過來即可。

FTP 在網站設計上的應用

網站上傳大型檔案的方式

前面提到 FTP 是少數能夠處理巨大檔案上傳的協定,因此過去很多網站公司在製作需要上傳大型檔案的後台時,都是推薦客戶使用 FTP 的方案,因為傳統的 HTML 上傳機制如果要上傳超過 4GB 的檔案,記憶體很容易不夠用。所以使用 FTP 其實這是一個傳統且有效解決方案。

不過近年來,其實還是有更流暢的解決方案,例如夏木樂就專長於製作超大型檔案上傳器,可以直接傳輸到 S3 類型的 Object Storage,上傳超過 4GB 的 iso 檔案都沒問題。已經替許多影音產業、醫療資訊產業打造過類似網站。

相關案例請見:

網站內可以有類似 FTP 的檔案管理器嗎?

有些企業製作完網站後,希望能有一個小空間自己上傳靜態圖文或網頁,作為行銷用。因此也會問夏木樂能不能開放 FTP 空間讓他們自己上傳。

夏木樂不只可以提供 FTP 上傳的方案,可以在網站後台內嵌檔案管理器,讓你上傳檔案就像操作檔案總管一樣輕鬆容易。

結語

FTP / SFTP 雖然是歷史悠久的傳輸協定了,但依然沒有太多的取代者,至今還是網路上非常重要的傳輸協定。尤其是他能夠傳輸 4 GB 以上超大檔案的特性,在許多場合還是有其必要性。

希望這篇文章的教學,能夠幫助到有需要使用 FTP 上傳的人。如果您也在尋找能夠上傳超大檔案的網站開發公司,歡迎聯繫夏木樂

相關文章

什麼是敏捷開發?軟體工程的歷史與故事

在現代軟體研發過程中,快速適應變化是重要關鍵,但你知道嗎?這是經過了數十年的發展才形成的觀念,甚至在這個觀念普及前,失控的軟體規模還造成民眾傷亡。 傳...