FTP客戶端隨機開啟一個大於1024的端口N向服務器的21號端口發起連接,發送FTP用戶名和密碼,然後開放N+1號端口進行監聽,並向服務器發出PORT N+1命令,告訴服務端客戶端採用主動模式並開放了端口。 FTP服務器接收到PORT命令後,會用其本地的FTP數據端口(通常是20)來連接客戶端指定的端口N+1,進行數據傳輸。
命令連線: 用戶端 port N –> 伺服器 port 21
資料連線: 伺服器 port 20 –> 用戶端 N+1
常見問題:
伺服器防火牆需開20、21,因為用戶端因為是隨機PORT作為連接,通常被擋都是用戶端防火牆,而且這風險也滿大的用戶端隨機開個PORT給外部連接.
被動模式 PASSIVE
FTP客戶端隨機開啟一個大於1024的端口N向服務器的21號端口發起連接,發送用戶名和密碼進行登陸,同時會開啟N+1端口。然後向服務器發送PASV命令,通知服務器自己處於被動模式。服務器收到命令後,會開放一個大於1024的端口P(端口P的範圍是可以設置的)進行監聽,然後用PORT P命令通知客戶端,自己的數據端口是P。客戶端收到命令後,會通過N+1號端口連接服務器的端口P,然後在兩個端口之間進行數據傳輸。
命令連線: 用戶端 port N –> 伺服器 port 21
資料連線: 用戶端 port N+1 –> 伺服器 port P
其中 N、P 都必須大於 1023
常見問題:
被動模式就是變伺服器開隨機PORT給客戶端作為連接使用,現在的FTP SERVER軟體都有支援開範圍的PORT,還有一點是要注意如果是外部連內網,有可能回的IP會是內部網路IP造成用戶端無法連接,這個在軟體上也可以設定
沒有留言:
張貼留言