有在架設FTP或連FTP的人,除非是直接取得public IP上網,不然應該很常被防火牆或NAT搞得要google一下為何就是連不上伺服器。
因此在這裡簡化與備份一下網路上的原理說明,讓我之後能快速查閱釐清是哪裡出問題,哪裡該如何設定。
FTP需要兩個通訊埠,一個用來傳遞客戶端與伺服器之間的命令,一般設在port 21,稱之為命令通訊埠(Command Port);另一個是真正用來傳遞資料的,一般都設在port 20,稱之為資料通訊埠(Data Port),FTP資料傳送的模式又分二種:PORT、PASV。
以下就是兩個不同模式
主動模式(PORT)
步驟一、用戶端使用 port 1024 與伺服器建立連線,並提供 port 1025 的資訊給伺服器。
步驟二、伺服器回應用戶端的連線。
步驟三、伺服器主動與用戶端的 port 1025 建立連線。
步驟四、用戶端回覆伺服器。
被動模式(PASV)
步驟一、用戶端使用 port 1024 與伺服器建立連線,並發出 PASV 的要求。
步驟二、伺服器回應用戶端的連線,並通知用戶端,伺服器已開啟 port 1120 等待資料連線。
步驟三、用戶端使用 port 1025 與伺服器的 port 1120 建立資料連線。
步驟四、伺服器回覆用戶端。
使用被動模式不只能解決用戶端在防火牆後的問題,同理也能為伺服器解決同樣的問題,此模式下伺服器必須開啟一定範圍的通訊埠供用戶端連線,目前絕大部分的FTP伺服器軟體都有支援,透過此一特性也能為伺服器在防火牆開啟特定的連線port。
參考來源:https://matis.pixnet.net/blog/post/22918494
Place your comment