ftp的使用若干問題

      又到期末了,好多作業要交啊,還要自行傳到ftp上。可是賬號密碼都木有問題,在dos下登錄也沒有問題,用瀏覽器登錄卻總是彈出“打開FTP服務器上的文件夾時發生錯誤。請檢查是否有權限訪問該文件夾”的對話框,究竟是什麼問題呢?“百度”告訴我說,FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思爲主動式和被動式。可以這樣簡單描述一般ftp的工作原理:client對server發出請求:“嗨,我的xx端口正等着你傳送數據呢,sever聽到這個請求,就會建立一個連接,指向這個端口,並且開始傳送數據。這就回到了我們的問題,如果發出請求的client在防火牆的後面,而這個防火牆禁止外部IP建立連接,那麼當然server(在外部)不能建立與client的連接。所以,過了幾年,人們修改了ftp協議以應付這種情況。這就是passive mode,工作原理如下:client向server發出passive命令,server回答說:“數據在xx端口等你,自己來拿。” 而這回則由client建立指向server的連接,從而取得數據。這就避免了防火牆的限制。 從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數據鏈路的建立方法就完全不同。

      所以綜上所訴,好像PASV方式更容易建立連接,怎麼更改呢?操作方法如圖所示:

好像還可以更改防火牆的端口之類的,不是很瞭解,詳情參見:http://bbs.21ic.com/icview-81585-1-1.htmlhttp://blog.163.com/leekwen@126/blog/static/3316622920104265192146/

即使登錄成功,有的時候上傳下載還是會出現問題,索性我直接在dos下登錄,省力省心,copy一些常用的命令放在這裏:

ftp的命令行格式爲:ftp -v -d -i -n -g[主機名]
-v 顯示遠程服務器的所有響應信息。

-d 使用調試方式。

-n 限制ftp的自動登錄,即不使用.netrc文件。

-g 取消全局文件名。

ftp使用的內部命令如下(其中括號表示可選項):

1.![cmd[args]在本地機中執行交互shell、exit回到ftp環境,如!ls*.zip 。

2.¥ macro-ame[args]執行宏定義macro-name。

3.account[password]提供登錄遠程系統成功後訪問系統資源所需的補充口令 。

4.appendlocal-file[remote-file]將本地文件追加到遠程系統主機,若未指定遠程系統文件名,則使用本地文件名。

5.ascii 使用ascii類型傳輸方式。

6.bell每個命令執行完畢後計算機響鈴一次。
7.bin:使用二進制文件傳輸方式。
8.bye:退出ftp會話過程。
9.case:在使用mget時,將遠程主機文件名中的大寫轉爲小寫字母。
10.cd remote-dir:進入遠程主機目錄。
11.cdup:進入遠程主機目錄的父目錄。
12.chmod mode file-name:將遠程主機文件file-name的存取方式設置爲mode,如: chmod 777 a.out 。
13.close:中斷與遠程服務器的ftp會話(與open對應)。
14.cr:使用asscii方式傳輸文件時,將回車換行轉換爲回行。
15.delete remote-file:刪除遠程主機文件。
16.debug[debug-value]:設置調試方式, 顯示發送至遠程主機的每條命令,如: deb up 3,若設爲0,表示取消debug。
17.dir[remote-dir][local-file]:顯示遠程主機目錄,並將結果存入本地文件local-file。
18.disconnection:同close。
19.form format:將文件傳輸方式設置爲format,缺省爲file方式。
20.get remote-file[local-file]: 將遠程主機的文件remote-file傳至本地硬盤的local-file。
21.glob:設置mdelete,mget,mput的文件名擴展,缺省時不擴展文件名,同命令行的-g參數。
22.hash:每傳輸1024字節,顯示一個hash符號(#)。
23.help[cmd]:顯示ftp內部命令cmd的幫助信息,如:help get。
24.idle[seconds]:將遠程服務器的休眠計時器設爲[seconds]秒。
25.image:設置二進制傳輸方式(同binary)。
26.lcd[dir]:將本地工作目錄切換至dir。
27.ls[remote-dir][local-file]:顯示遠程目錄remote-dir,並存入本地文件local-file。
28.macdef macro-name:定義一個宏,遇到macdef下的空行時,宏定義結束。
29.mdelete[remote-file]:刪除遠程主機文件。
30.mdir remote-files local-file:與dir類似,但可指定多個遠程文件,如:mdir *.o.*.zipoutfile
31.mget remote-files:傳輸多個遠程文件。
32.mkdir dir-name:在遠程主機中建一目錄。
33.mls remote-file local-file:同nlist,但可指定多個文件名。
34.mode[modename]:將文件傳輸方式設置爲modename, 缺省爲stream方式。
35.modtime file-name:顯示遠程主機文件的最後修改時間。
36.mput local-file:將多個文件傳輸至遠程主機。
37.newer file-name: 如果遠程機中file-name的修改時間比本地硬盤同名文件的時間更近,則重傳該文件。
38.nlist[remote-dir][local-file]:顯示遠程主機目錄的文件清單,並存入本地硬盤的local-file。
39.nmap[inpattern outpattern]:設置文件名映射機制,使得文件傳輸時,文件中的某些字符相互轉換,如:nmap $1.$2.$3[$1,$2].[$2,$3],則傳輸文件a1.a2.a3時,文件名變爲a1,a2。該命令特別適用於遠程主機爲非UNIX機的情況。
40.ntrans[inchars[outchars]]:設置文件名字符的翻譯機制,如ntrans 1R,則文件名LLL將變爲RRR。
41.open host[port]:建立指定ftp服務器連接,可指定連接端口。
42.passive:進入被動傳輸方式。
43.prompt:設置多個文件傳輸時的交互提示。
44.proxy ftp-cmd:在次要控制連接中,執行一條ftp命令, 該命令允許連接兩個ftp服務器,以在兩個服務器間傳輸文件。第一條ftp命令必須爲open,以首先建立兩個服務器間的連接。
45.put local-file[remote-file]:將本地文件local-file傳送至遠程主機。
46.pwd:顯示遠程主機的當前工作目錄。
47.quit:同bye,退出ftp會話。
48.quote arg1,arg2...:將參數逐字發至遠程ftp服務器,如:quote電腦知識  syst.
49.recv remote-file[local-file]:同get。
50.reget remote-file[local-file]:類似於get,但若local-file存在,則從上次傳輸中斷處續傳。
51.rhelp[cmd-name]:請求獲得遠程主機的幫助。
有了這些命令之後,又有了新的問題,我們可愛的老師,創建文件夾的時候,在名稱裏面留另一個空格,都怪我學藝不精,竟不知道如何打開了,繼續百度之,原來只需給文件夾名稱加上雙引號即可,像這樣"documents and settings"。恩,終於修成正果了。

發佈了22 篇原創文章 · 獲贊 5 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章