FTP的工做模式:主動模式和被動模式區別以及設置

開篇前附一個設置FTPClient的bloglinux

https://blog.csdn.net/caolipeng_918/article/details/50377828windows

/**瀏覽器

這個是臨時的blog,還沒測試安全

/服務器

局域網用FTP命令訪問外網的FTP SERVER,執行任何命令(如dir,ls,put,get)老是報下面的錯誤
ftp:500 Illegal PORT command. 425
ftp:Use PORT or PASV first
或者是下面的錯誤
ftp:500 Illegal PORT command.
ftp: bind: Address already in use併發

主要是因爲Iptables防火牆不支持工具

ip_nat_ftp
ip_conntrack_ftp
在linux的ftp服務器上執行下列命令便可解決
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp測試

//===================================================================================ui

主動模式的FTP工做原理:客戶端從一個任意的非特權端口N鏈接到FTP服務器的命令端口,也就是21端口。而後客戶端開始監聽端口N+1,併發送FTP命令「port N+1」到FTP服務器。接着服務器會從它本身的數據端口(20)鏈接到客戶端指定的數據端口(N+1)。spa

 

被動模式:當開啓一個 FTP鏈接時,客戶端打開兩個任意的非特權本地端口(N > 1024和N+1)。第一個端口鏈接服務器的21端口,但與主動方式的FTP不一樣,客戶端不會提交PORT命令並容許服務器來回連它的數據端口,而是提交 PASV命令。這樣作的結果是服務器會開啓一個任意的非特權端口(P > 1024),併發送PORT P命令給客戶端。而後客戶端發起從本地端口N+1到服務器的端口P的鏈接用來傳送數據。  

 

上面是官方解釋,記不住的

我本身的理解是主動模式的話,客戶端隨意起一個大於1024端口去連服務器的21端口,而後告訴服務器我已經準備好數據鏈接了,你過來連個人數據端口吧,而後服務器用本身的20端口去連客戶端的端口,注意此時客戶端其實爲了響應,是隨意啓用了一個本身不用的端口,即大於1024的端口。

 

被動模式:從頭至尾都是客戶端去連服務器,服務器一直處於響應狀態。客戶端打開兩個大於1024的端口,而後第一個端口去連服務器的21號端口,告訴服務器:「你準備好了嗎?我要向你傳輸數據了。而後服務器說我好了,客戶端用本身事先開好的第二個端口去鏈接服務器,注意此時服務器的數據端口已經不是20了,服務器爲了響應請求,隨機開了一個大於1024端口

 

以上關於主動和被動FTP的解釋,能夠簡單歸納爲如下兩點:

    一、主動FTP:  

            命令鏈接:客戶端 >1024端口 -> 服務器 21端口  

            數據鏈接:客戶端 >1024端口 <- 服務器 20端口 

    二、被動FTP: 

            命令鏈接:客戶端 >1024端口 -> 服務器 21端口 

            數據鏈接:客戶端 >1024端口 -> 服務器 >1024端口

 

優缺點:主動FTP對FTP服務器的管理和安全頗有利,但對客戶端的管理不利。由於FTP服務器企圖與客戶端的高位隨機端口創建鏈接,而這個端口頗有可能被客戶端的防火牆阻塞掉。被動FTP對FTP客戶端的管理有利,但對服務器端的管理不利。由於客戶端要與服務器端創建兩個鏈接,其中一個連到一個高位隨機端口,而這個端口頗有可能被服務器端的防火牆阻塞掉。

 

 

那說了這麼多,主動和被動模式具體怎麼設置呢?

各客戶端默認鏈接方式說明:

一、 IE瀏覽器訪問方式-------à被動模式

二、 Linux字符鏈接------------à被動模式

三、 Windows字符鏈接-------à主動模式

IE更改FTP鏈接方式爲主動方法:

1.工具---Internet選項---高級---使用被動FTP(去掉勾選)-------OK

2.Linux下更改ftp鏈接方式爲主動:

當ftp正常鏈接後輸入:passive 將passive 模式關閉便可。

事例以下:

Remote system type is Windows_NT.

ftp> ls

227 Entering Passive Mode (192,168,6,23,4,10).

ftp: connect: Connection refused

ftp> passive

Passive mode off.

ftp> ls

200 PORT command successful.

 3.windows下切換被動模式

C:\Test>ftp 192.168.0.2
Connected to 192.168.0.2.
220 Microsoft FTP Service
User (192.168.0.2:(none)): ljc007
331 Password required for ljc007.
Password:
230 User ljc007 logged in.
ftp> LITERAL PASV
227 Entering Passive Mode (192,168,0,2,7,242).

 

 

經常使用FTP客戶端

FlashFXP設置主動訪問模式

選項 -> 參數選擇 -> 代理/防火牆/標識 -> 「使用被動模式」 前面的勾去掉就行。

相關文章
相關標籤/搜索