開篇前附一個設置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設置主動訪問模式
選項 -> 參數選擇 -> 代理/防火牆/標識 -> 「使用被動模式」 前面的勾去掉就行。