ftp的passive模式
今天在一台測試服務器上搭建ftp,折騰了許久。
主要是不了解ftp的passive模式和port模式的區別。這里記錄一下。
和passive模式對應的叫做port模式,也叫做standard模式,也叫主動模式。
每個ftp客戶端和服務端建立連接需要建立兩個連接,一個連接用於命令傳輸,一個連接用於數據傳輸。
命令傳輸不管主動模式還是被動模式,都是客戶端主動連接服務端建立的。
但是數據傳輸就不同了。
主動模式的圖
主動模式的主動說的是服務端主動。當要進行數據傳輸的時候,客戶端先向服務端告知一個端口,然后在客戶端開啟端口listen。由服務端主動連接這個端口,建立數據傳輸通道。
被動模式的圖
被動模式的被動說的也是服務端。當要進行數據傳輸的時候,服務端告知客戶端一個端口,然后在服務端開啟端口listen,由客戶端主動連接這個端口,服務端被動接受連接,建立數據傳輸通道。
有什么不同
這兩種連接方式最大的不同在於是否服務端主動發起連接。由於防火牆,安全等策略,很多情況下根本不允許服務端主動發起連接。所以在很多情況下會建議使用被動模式(Passive)。
被動模式就要求服務端開啟端口,這個端口是可以指定的
MaxInstances 30
PassivePorts 8040 8070
這樣就指定了同時允許有30個連接,其中的服務器開啟的數據傳輸端口為8040 - 8070。
參考
Proftpd快速搭建FTP服務器
關於ftp的主動模式(Active Mode)和被動模式(Passive Mode)