一般FTP SERVER 應該都會在防火牆內,所以會比較麻煩一些
FTP在傳輸時都會需要兩個port,一個叫Control Port(Protocol用的 port),一個叫Data Port(資料傳輸Port)
但有些防火牆很聰明,使用FTP時會動態開放port (這個功能叫 FTP ALG,也就是FTP的會話跟蹤功能),所以使用FTP時 可能只要開啟21 port 作為Control Port就好了
不過如果使用FTPS 就麻煩一些了,因為他傳輸是經過加密的,所以大多防火牆不支援FTPS的FTP ALG,所以使用FTPS時,除了開啟990 作為Control Port,還需要開啟一個額外的Port 作為Data Port
而一般FTP會隨機開一個port 作為Data Port,那防火牆要怎麼開呢?
點擊 Enable FTP over TLS support(FTPS) 開始使用FTPS
若開啟FTPS,不管怎樣 新的連線一定要使用FTPS(原因不明 實測結果)
若未勾選Disallow plain unencrypted FTP,不是指FTP還是可以連爽爽,而是若已建立FTP連線,可以繼續使用,但新的連線,還是會被檔掉。
我這邊就是指定只開60000 這個port,實際上看你需求,當然也可以開一個range.
怎麼驗證Data Port確定有設定好呢?
連線進FileZilla Server,查看server的連線狀態,在建立完連線,要進行資料傳輸時,他會有一條
227 Entering Passive Mode XXX,XXX,XXX,XXX,234,96
前面的XXX 是連線者IP,後面的234,96代表port 也就是60000, 他的算法是234 * 256 + 96 = 60000,所以就可以證明是不是在自己設定的Data Port範圍內嘍~
設定完成 開啟防火牆60000 Port與990 Port 就完成嘍~(990 也只是FTPS的Control Port的default值,當然也可以亂改~)
以上都可以在不停機的狀況下更改設定,EX:已有使用者FTP連線著的狀況,指定Data Port是60000,防火牆沒開60000
port也沒關係(當然是指 有FTP ALG的狀況),不用擔心~