FTP在aliyun上使用經驗服務器
針對FTP服務的網絡相關問題,在阿里雲上使用經驗,該文檔一樣適合真實物理機房的防火牆相關模型參考使用。網絡
一、FTP服務是僅基於TCP協議的服務,不支持UDP。併發
二、主動模式FTP服務的網絡訪問特色:ide
客戶端從一個任意的非特權端口N鏈接到FTP服務器的命令端口,也就是21端口。而後客戶端開始監聽端口N+1,併發送FTP命令「port N+1」到FTP服務器。接着服務器會從它本身的數據端口(20)鏈接到客戶端指定的數據端口(N+1)。阿里雲
針對FTP服務器前面的防火牆來講,必須容許如下通信才能支持主動方式FTP: spa
a. 客戶端任何大於1024的端口到FTP服務器的21端口。(客戶端初始化的鏈接) 文檔
b. FTP服務器的21端口到客戶端大於1024的端口。 (服務器響應客戶端的控制端口) it
c. FTP服務器的20端口到客戶端大於1024的端口。(服務器端初始化數據鏈接到客戶端的數據端口)class
d. 客戶端大於1024端口到FTP服務器的20端口(客戶端發送ACK響應到服務器的數據端口) 服務器端
三、被動模式FTP服務的網絡訪問特色:
當客戶端發起一個 FTP鏈接時,客戶端打開兩個任意的非特權本地端口(N和N+1)。第一個端口鏈接服務器的21端口,但與主動方式的FTP不一樣,客戶端不會提交PORT命令並容許服務器來回連它的數據端口,而是提交 PASV命令。這樣作的結果是服務器會開啓一個任意的非特權端口P,併發送PORT P命令給客戶端。而後客戶端發起從本地端口N+1到服務器的端口P的鏈接用來傳送數據。
對於服務器端的防火牆來講,必須容許下面的通信才能支持被動方式的FTP:
a. 從客戶端任何大於1024的端口到服務器的21端口(客戶端初始化的鏈接)
b. 服務器的21端口到客戶端任何大於1024的端口(服務器響應到客戶端的控制端口的鏈接)
c. 從客戶端任何大於1024端口到服務器的大於1024端口(客戶端初始化數據鏈接到服務器指定的任意端口)
d.服務器的大於1024端口到客戶端的大於1024的端口(服務器發送ACK響應和數據到客戶端的數據端口)
總結:
1.無論主動模式仍是被動模式,客戶端都會使用1024-65535(控制端口N,數據端口N+1)中的隨機端口。
2.主動模式時,服務端使用的是20,21端口便可;被動模式時服務端使用21(控制端口),1024-65535(數據端口)。
3.被動模式時,服務器能夠經過以下參數來服務器端的數據端口範圍:
/etc/vsftpd/vsftpd.conf 新增內容:
pasv_enable=yes
pasv_min_port=10000
pasv_max_port=10009