ftp

p鏈接問題_能夠登陸進去,但是獲取不了列表  

 
 
舒適提示:在ftp鏈接問題上,出了問題,必定是不夠了解ftp,若是你在網上搜索解決方案這個快捷方式解決不了問題,那麼你就靜下心來,好好的來了解下什麼是ftp,而後你天然就懂得怎麼沒去分析問題並解決問題。
 
這幾天我遇到的問題是登陸進去。鏈接得上,但是獲取不了列表,自動又關閉了!命令窗口以下:

狀態: 正在鏈接 125.65.113.110 ...
狀態: 已經鏈接到 125.65.113.110:0。正在等待歡迎信息...
響應: 220 Microsoft FTP Service
命令: USER abc
響應: 331 User name okay, need password.
命令: PASS ********
響應: 230 User logged in, proceed.
狀態: 鏈接成功
命令: OPTS UTF8 OFF
響應: 501 Invalid option.
狀態: 正在取得目錄列表...
命令: PWD
響應: 257 "/" is current directory.
命令: PORT 192,168,0,104,198,213
響應: 200 PORT Command successful.
命令: TYPE A
響應: 200 Type set to A.
命令: LIST
響應: 150 Opening ASCII mode data connection for /bin/ls.
響應: 226 Transfer complete.
狀態: 成功取得目錄列表
狀態: 正在取得目錄列表...
命令: CWD wwwroot
響應: 250 Directory changed to /wwwroot
命令: PWD
響應: 257 "/wwwroot" is current directory.
命令: PORT 192,168,0,104,198,214
響應: 200 PORT Command successful.
命令: TYPE A
響應: 200 Type set to A.
命令: LIST
響應: 150 Opening ASCII mode data connection for /bin/ls.
響應: 226 Transfer complete.
狀態: 成功取得目錄列表
命令: REST 0
響應: 350 Restarting at 0. Send STORE or RETRIEVE.
命令: REST 0
響應: 350 Restarting at 0. Send STORE or RETRIEVE.
命令: REST 0
響應: 350 Restarting at 0. Send STORE or RETRIEVE.
命令: PWD
響應: 257 "/wwwroot" is current directory.
命令: TYPE I
響應: 200 Type set to I.
命令: REST 0
響應: 350 Restarting at 0. Send STORE or RETRIEVE.
命令: REST 0
響應: 350 Restarting at 0. Send STORE or RETRIEVE.
命令: REST 0
響應: 350 Restarting at 0. Send STORE or RETRIEVE.
命令: PWD
響應: 257 "/wwwroot" is current directory.
命令: REST 0
響應: 350 Restarting at 0. Send STORE or RETRIEVE.
命令: TYPE I
響應: 200 Type set to I.
命令: TYPE I
響應: 200 Type set to I.
命令: TYPE A
響應: 200 Type set to A.
命令: TYPE A
響應: 200 Type set to A.
命令: PWD
響應: 257 "/wwwroot" is current directory.
。。。。
安全

 

 
什麼是ftp?
 
        FTP是File Transfer Protocol(文件傳輸協議)的縮寫,用來在兩臺計算機之間互相傳送文件。相比於HTTP,FTP協議要複雜得多。複雜的緣由,是由於FTP協議要用到兩個TCP鏈接,一個是命令鏈路,用來在FTP客戶端與服務器之間傳遞命令;另外一個是數據鏈路,用來上傳或下載數據。 
 
        FTP協議有兩種工做方式:PORT方式和PASV方式,中文意思爲主動式和被動式。 PORT(主動)方式的鏈接過程是:客戶端向服務器的FTP端口(默認是21)發送鏈接請求,服務器接受鏈接,創建一條命令鏈路。當須要傳送數據時,客戶端在命令鏈路上用PORT命令告訴服務器:「我打開了XXXX端口,你過來鏈接我」。因而服務器從20端口向客戶端的XXXX端口發送鏈接請求,創建一條數據鏈路來傳送數據。 
PASV(被動)方式的鏈接過程是:客戶端向服務器的FTP端口(默認是21)發送鏈接請求,服務器接受鏈接,創建一條命令鏈路。當須要傳送數據時,服務器在命令鏈路上用PASV命令告訴客戶端:「我打開了XXXX端口,你過來鏈接我」。因而客戶端向服務器的XXXX端口發送鏈接請求,創建一條數據鏈路來傳送數據。 
        從上面能夠看出,兩種方式的命令鏈路鏈接方法是同樣的,而數據鏈路的創建方法就徹底不一樣。而FTP的複雜性就在於此。 
 
FTP服務器端的注意事項 
 
         1、FTP服務器是公網IP,用公網動態域名;或是內網IP,在網關上開端口映射或用內網專業版TrueHost 
         一、服務器若是安裝了防火牆,請記住要在防火牆上打開FTP端口(默認是21)。 
         二、全部FTP服務器軟件都支持PORT方式。至於PASV方式,大部分FTP服務器軟件都支持。支持PASV方式的FTP服務器軟件,也能夠設置爲只工做在PORT方式上。 
         三、爲了PASV方式能正常工做,須要在FTP服務器軟件上爲PASV方式指定可用的端口範圍。此外,還要在服務器的防火牆上打開這些端口。當客戶端以PASV方式鏈接服務器的時候,服務器就會在這個端口範圍裏挑選一個端口出來,給客戶端鏈接。 
 
FTP客戶端的注意事項 
 
         請注意:選擇用PASV方式仍是PORT方式登陸FTP服務器,選擇權在FTP客戶端,而不是在FTP服務器。 
         1、客戶端只有內網IP,沒有公網IP 
         從上面的FTP基礎知識可知,若是用PORT方式,由於客戶端沒有公網IP,FTP將沒法鏈接客戶端創建數據鏈路。所以,在這種狀況下,客戶端必需要用 PASV方式,才能鏈接FTP服務器。大部分FTP站長髮現本身的服務器有人能登陸上,有人登陸不上,典型的錯誤緣由就是由於客戶端沒有公網IP,但用了 IE做爲FTP客戶端來登陸(IE默認使用PORT方式)。 
        做爲FTP站長,有必要掌握FTP的基礎知識,而後指導您的朋友如何正確登陸您的FTP。 
 
        2、客戶端有公網IP,但安裝了防火牆
        若是用PASV方式登陸FTP服務器,由於創建數據鏈路的時候,是由客戶端向服務器發送鏈接請求,沒有問題。反過來,若是用PORT方式登陸FTP服務器,由於創建數據鏈路的時候,是由服務器向客戶端發送鏈接請求,此時鏈接請求會被防火牆攔截。若是要用PORT方式登陸FTP服務器,請在防火牆上打開 1024以上的高端端口。
 
        3、常見的FTP客戶端軟件PORT方式與PASV方式的切換方法。 大部分FTP客戶端默認使用PASV方式。IE默認使用PORT方式。  
        在大部分FTP客戶端的設置裏,常見到的字眼都是「PASV」或「被動模式」,極少見到「PORT」 或:「主動模式」等字眼。由於FTP的登陸方式只有兩種:PORT和PASV,取消PASV方式,就意味着使用PORT方式。
 
        8uftp: 編輯 ->選項 -> 防火牆設置 
        IE:工具 -> Internet選項 -> 高級 -> 「使用被動FTP」(須要IE6.0以上才支持)。
        CuteFTP:Edit -> Setting -> Connection -> Firewall -> 「PASV Mode」或File -> Site Manager,在左邊選中站點 -> Edit -> 「Use PASV mode」 
         FlashGet:工具 -> 選項 -> 代理服務器 -> 直接鏈接 -> 編輯 -> 「PASV模式」 FlashFXP:選項 -> 參數選擇 -> 代理/防火牆/標識 -> 「使用被動模式」 或:站點管理 -> 對應站點 -> 選項 -> 「使用被動模式」 或:快速鏈接 -> 切換 -> 「使用被動模式」 
        LeechFTP:Option -> Firewall -> Do not Use
 
        4、請儘可能不要用IE做爲FTP客戶端 
 
        IE只是個很粗糙的FTP客戶端工具。首先,IE6.0如下的版本不支持PASV方式;其次,IE在登陸FTP的時候,看不到登陸信息。在登陸出錯的時候,沒法找到錯誤的緣由。在測試本身的FTP網站的時候,強烈建議不要使用IE。
 
        5、爲何沒有公網IP,也能使用PORT方式登陸FTP? 
        NAT網關的工做方式是在TCP/IP數據包的包頭裏找局域網的源地址和源端口,替換成網關的地址和端口。對數據包裏的內容,是不會改變的。而使用 PORT方式登陸FTP的時候,IP地址與端口信息是在數據包裏面的,而不是在包頭。所以,沒有公網IP,使用PORT方式是沒法從internet上的 ftp服務器下載數據的。 
         可是,極少數的NAT網關也支持PORT方式。這些NAT網關連數據包裏面的內容都掃描,掃描到PORT指令後會替換PORT方式的IP和端口。在這種 NAT網關下面,用PORT方式就沒問題了。不過,這些網關也只掃描21端口的數據包,若是FTP服務器不是用默認的21端口,也沒法使用PORT方式。 
         內網用端口映射方式建FTP的注意事項 
         根據上面的FTP原理,在只映射一個端口的狀況下,只能要求來訪者使用PORT方式來訪問你的FTP服務器,但這樣的話就限制了內網用戶。 
         而若是映射不少個端口,就可使用PASV方式了但還要從FTP服務器上做一些設置 好比,從網關上映射21端口和5000-5020端口到你的計算機21端口和5000-5020端口,在Serv-U的Local Server -> Settings -> Advanced -> PASV port range裏,填入給PASV模式使用的端口範圍5000-5020,而後在你創建的域--設置--高級-容許被動模式數據傳輸,使用IP 裏面填入你的網關在公網的IP地址。 
        還有,用端口映射方式建FTP是看不到來訪者的IP地址,只能看到網關在內網中的IP地址。(應該是這樣,但也不必定,畢竟我沒試過)這樣就不能限制一個IP的鏈接數了。 
 
附:
 
1、如何打開關閉防火牆?
        一、win7中,控制面板  ->  系統和安全 ->Windows防火牆  -> 在左邊菜單中有打開或關閉防火牆;
        二、win 2003中,網上鄰居屬性 ->本地鏈接屬性 -> 高級選項卡中的Windows防火牆設置 ->點擊設置,其中就是win 2003服務器防火牆設置(注:遠程鏈接服務器的童鞋們,服務器防火牆的開啓和關閉要很是當心,要否則把你的遠程桌面鏈接窗口關了,你就管理不了服務器了。說不定還要花錢提交工單,讓機房重啓)。開啓防火牆的時候,必定記得不要把那個「不容許例外」複選框打上去,必定不要!而後去例外選項卡中,把本身的遠程鏈接端口,還有ftp端口等等添加下。
 
2、ftp狀態碼
     
       這個百度下?仍是添加,等下再決定。見推薦閱讀
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息