1. FTP協議工作原理與FTP命令的使用方法
工作原理參考http://..com/question/75863.html
FTP命令詳解 :
FTP命令是Internet用戶使用最頻繁的命令之一,不論是在DOS還是UNIX操作系統下使用FTP,都會遇到大量的FTP內部命令。熟悉並靈活應用FTP的內部命令,可以大大方便使用者,並收到事半功倍之效。
FTP的命令行格式為:ftp -v -d -i -n -g [主機名],其中
-v顯示遠程伺服器的所有響應信息;
-n限制ftp的自動登錄,即不使用;
.n etrc文件;
-d使用調試方式;
-g取消全局文件名。
ftp使用的內部命令如下(中括弧表示可選項):
1.![cmd[args]]:在本地機中執行交互shell,exit回到ftp環境,如:!ls*.zip.
2.$ macro-ame[args]:執行宏定義macro-name.
3.account[password]:提供登錄遠程系統成功後訪問系統資源所需的補充口令。
4.append local-file[remote-file]:將本地文件追加到遠程系統主機,若未指定遠程系統文件名,則使用本地文件名。
5.ascii:使用ascii類型傳輸方式。
6.bell:每個命令執行完畢後計算機響鈴一次。
7.bin:使用二進制文件傳輸方式。
8.bye:退出ftp會話過程。
9.case:在使用mget時,將遠程主機文件名中的大寫轉為小寫字母。
10.cd remote-dir:進入遠程主機目錄。
11.cp:進入遠程主機目錄的父目錄。
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]:請求獲得遠程主機的幫助。
52.rstatus[file-name]:若未指定文件名,則顯示遠程主機的狀態,否則顯示文件狀態。
53.rename[from][to]:更改遠程主機文件名。
54.reset:清除回答隊列。
55.restart marker:從指定的標志marker處,重新開始get或put,如:restart 130。
56.rmdir dir-name:刪除遠程主機目錄。
57.runique:設置文件名唯一性存儲,若文件存在,則在原文件後加後綴..1,.2等。
58.send local-file[remote-file]:同put。
59.sendport:設置PORT命令的使用。
60.site arg1,arg2...:將參數作為SITE命令逐字發送至遠程ftp主機。
61.size file-name:顯示遠程主機文件大小,如:site idle 7200。
62.status:顯示當前ftp狀態。
63.struct[struct-name]:將文件傳輸結構設置為struct-name,預設時使用stream結構。
64.sunique:將遠程主機文件名存儲設置為唯一(與runique對應)。
65.system:顯示遠程主機的操作系統類型。
66.tenex:將文件傳輸類型設置為TENEX機的所需的類型。
67.tick:設置傳輸時的位元組計數器。
68.trace:設置包跟蹤。
69.type[type-name]:設置文件傳輸類型為type-name,預設為ascii,如:type binary,設置二進制傳輸方式。
70.umask[newmask]:將遠程伺服器的預設umask設置為newmask,如:umask 3。
71.user user-name[password][account]:向遠程主機表明自己的身份,需要口令時,必須輸入口令,如:user anonymous my@email。
72.verbose:同命令行的-v參數,即設置詳盡報告方式,ftp伺服器的所有響應都將顯示給用戶,預設為on.
73.?[cmd]:同help
2. FTP有哪些應用
什麼是FTP呢?FTP 是 TCP/IP 協議組中的協議之一,是英文File Transfer Protocol的縮寫。該協議是Internet文件傳送的基礎,它由一系列規格說明文檔組成,目標是提高文件的共享性,提供非直接使用遠程計算機,使存儲介質對用戶透明和可靠高效地傳送數據。簡單的說,FTP就是完成兩台計算機之間的拷貝,從遠程計算機拷貝文件至自己的計算機上,稱之為「下載(download)」文件。若將文件從自己計算機中拷貝至遠程計算機上,則稱之為「上載(upload)」文件。在TCP/IP協議中,FTP標准命令TCP埠號為21,Port方式數據埠為20。FTP協議的任務是從一台計算機將文件傳送到另一台計算機,它與這兩台計算機所處的位置、聯接的方式、甚至是是否使用相同的操作系統無關。假設兩台計算機通過ftp協議對話,並且能訪問Internet, 你可以用ftp命令來傳輸文件。每種操作系統使用上有某一些細微差別,但是每種協議基本的命令結構是相同的。
FTP的傳輸有兩種方式:ASCII傳輸模式和二進制數據傳輸模式。
1.ASCII傳輸方式:假定用戶正在拷貝的文件包含的簡單ASCII碼文本,如果在遠程機器上運行的不是UNIX,當文件傳輸時ftp通常會自動地調整文件的內容以便於把文件解釋成另外那台計算機存儲文本文件的格式。
但是常常有這樣的情況,用戶正在傳輸的文件包含的不是文本文件,它們可能是程序,資料庫,字處理文件或者壓縮文件(盡管字處理文件包含的大部分是文本,其中也包含有指示頁尺寸,字型檔等信息的非列印字元)。在拷貝任何非文本文件之前,用binary 命令告訴ftp逐字拷貝,不要對這些文件進行處理,這也是下面要講的二進制傳輸。
2.二進制傳輸模式:在二進制傳輸中,保存文件的位序,以便原始和拷貝的是逐位一一對應的。即使目的地機器上包含位序列的文件是沒意義的。例如,macintosh以二進制方式傳送可執行文件到Windows系統,在對方系統上,此文件不能執行。
如果你在ASCII方式下傳輸二進制文件,即使不需要也仍會轉譯。這會使傳輸稍微變慢 ,也會損壞數據,使文件變得不能用。(在大多數計算機上,ASCII方式一般假設每一字元的第一有效位無意義,因為ASCII字元組合不使用它。如果你傳輸二進制文件,所有的位都是重要的。)如果你知道這兩台機器是同樣的,則二進制方式對文本文件和數據文件都是有效的。
5. FTP的工作方式
FTP支持兩種模式,一種方式叫做Standard (也就是 PORT方式,主動方式),一種是 Passive (也就是PASV,被動方式)。 Standard模式 FTP的客戶端發送 PORT 命令到FTP伺服器。Passive模式FTP的客戶端發送 PASV命令到 FTP Server。
下面介紹一個這兩種方式的工作原理:
Port模式FTP 客戶端首先和FTP伺服器的TCP 21埠建立連接,通過這個通道發送命令,客戶端需要接收數據的時候在這個通道上發送PORT命令。 PORT命令包含了客戶端用什麼埠接收數據。在傳送數據的時候,伺服器端通過自己的TCP 20埠連接至客戶端的指定埠發送數據。 FTP server必須和客戶端建立一個新的連接用來傳送數據。
Passive模式在建立控制通道的時候和Standard模式類似,但建立連接後發送的不是Port命令,而是Pasv命令。FTP伺服器收到Pasv命令後,隨機打開一個高端埠(埠號大於1024)並且通知客戶端在這個埠上傳送數據的請求,客戶端連接FTP伺服器此埠,然後FTP伺服器將通過這個埠進行數據的傳送,這個時候FTP server不再需要建立一個新的和客戶端之間的連接。
很多防火牆在設置的時候都是不允許接受外部發起的連接的,所以許多位於防火牆後或內網的FTP伺服器不支持PASV模式,因為客戶端無法穿過防火牆打開FTP伺服器的高端埠;而許多內網的客戶端不能用PORT模式登陸FTP伺服器,因為從伺服器的TCP 20無法和內部網路的客戶端建立一個新的連接,造成無法工作。
參考資料:http://e.id666.com
3. FTP實驗報告。。求幫忙完成
其中客戶端軟體命名為myftp,伺服器軟體命名為ftpserver。具體功能需求如下。(一) 伺服器1) 啟動方式。執行ftpserver [IP地址] port啟動FTP服務。其中IP地址為可選項。若不提供伺服器IP地址,FTP服務將自動綁定到本地網路的IP。2) 用戶認證與許可權管理。為FTP客戶提供基於用戶名/密碼認證的服務模式,只有授權用戶才可以訪問FTP服務。與此同時,對文件/目錄的訪問,也實現基於授權的訪問機制,即只有授權用戶才可以對指定文件進行讀寫操作。用戶只有在具備寫許可權操作的目錄上才能上傳文件。(可直接集成Linux伺服器系統的用戶管理)3) 並行執行功能。為提高系統性能,伺服器將採用多進程/線程技術響應客戶請求。當客戶通過身份驗證後,伺服器將創建一個新的進程/線程來響應用戶請求,提供服務。4) 伺服器支持的客戶文件操作。登錄成功後,客戶可在伺服器執行以下操作:創建/刪除目錄(mkdir/rmdir)、顯示當前路徑(pwd)、切換目錄(cd)、查看當前目錄下的所有文件(ls)、上傳單個/多個文件(put/mput)、下載單個/多個文件(get/mget)。5) 服務傳輸模式。支持二進制(默認)及ASCII傳輸模式。用戶可通過執行binary/ascii命令切換傳輸模式。6) 站點計數與用戶管理功能。統計伺服器站點的當前活動用戶數及自運行以來的訪客總數。系統管理員可在伺服器軟體運行終端窗口執行以下命令:A)count current:當前活動用戶數B) count all:顯示系統訪客總數C) list:顯示當前在線的所有用戶的用戶名D)kill username:強制刪除某個用戶。E) quit:關閉ftp伺服器軟體。7) 其他功能。對用戶錯誤輸入提供容錯保護,即當用戶輸入錯誤命令時,需向客戶端返回出錯提示信息。8) 可選功能(加分)。A)在伺服器端為訪問頻率最高的文件建立緩沖區(可採用共享內存技術),以便提高伺服器端的性能。 B) 實現斷點續傳功能。(二) 客戶端1、 登錄管理。客戶端在shell中輸入myftp username:passwd@ftp-server-ip:ftp-server-port登錄ftpserver。若通過身份驗證,伺服器將向客戶回顯"you are client #."(#為第幾位用戶)並顯示ftp命令輸入提示符myftp>;否則顯示"username doesn't exist or password is error!"。2、 文件操作命令。在客戶端執行基本文件操作:創建/刪除目錄(lmkdir/lrmdir)、顯示當前路徑(lpwd)、切換目錄(lcd)、查看當前目錄下的所有文件(dir)、上傳單個/多個文件(put/mput)、下載單個/多個文件(get/mget)。3、 退出系統。用戶執行」quit」斷開連接,結束當前FTP會話。(三) 作業提交要求1、 將客戶端源碼和伺服器源碼分別放入命名為ftpclient和ftpserver文件夾中,連同試驗報告打包,命名格式為:學號1#學號2...。2、 作業提交截止時間為下學期第一周的周五。 四、設計思路和流程圖(包括主要數據結構及其說明、測試數據的設計及測試結果分析) 五、實驗體會(包括實驗中遇到的問題及解決過程、產生的錯誤及原因分析) 六、程序清單(包括源程序、makefile、readme)
4. FTP使用詳解
1.什麼是FTP(文件傳輸協議)
FILE TRANSFERPROTOCOL(FTP)意為文件傳輸協議,用於管理計算機之間的文件傳送。FTP通常指文件傳輸服務。
FTP是Internet上使用非常廣泛的一種通訊協議。它是由支持Internet文件傳輸的各種規則所組成的集合,這些規則使 Internet用戶可以把文件從一個主機拷貝到另一個主機上,因而為用戶提供了極大的方便和收益。FTP通常也表示用戶執行這個協議所使用的應用程序(例如:凱屋「上當「),從而獲取所需的信息資料。
FTP和其它 Internet服務一樣,也是採用客戶機/伺服器方式。使用方法很簡單,啟動FTP客戶端程序先與遠程主機建立連接,然後向遠程主機發出傳輸命令,遠程主機在收到命令後就給予響應,並執行正確的命令。FTP有一個根本的限制,那就是,如果用戶未被某一FTP主機授權,就不能訪問該主機,實際上是用戶不能遠程登錄(Remote Login)進入該主機。也就是說,如果用戶在某個主機上沒有注冊獲得授權,沒有用戶名和口令,就不能與該主機進行文件的傳輸。而AnonymousFTP(匿名FTP)則取消了這種限制。
2.什麼是Anonymous FTP(匿名文件傳輸)
Anonymous(匿名文件傳輸)能夠使用戶與遠程主機建立連接並以匿名身份從遠程主機上拷貝文件,而不必是該遠程主機的注冊用戶。用戶使用特殊的用戶名「Anonymous」和「guest」就可有限制地訪問遠程主機上公開的文件。現在許多系統要求用戶將Emai1地址作為口令,以便更好地對訪問進行跟綜。出於安全的目的,大部分匿名FTP主機一般只允許遠程用戶下載(download)文件,而不允許上傳 (upload)文件。也就是說,用戶只能從匿名FTP主機拷貝需要的文件而不能把文件拷貝到匿名FTP主機。另外,匿名FTP主機還採用了其他一些保護措施以保護自己的文件不至於被用戶修改和刪除,並防止計算機病毒的侵入。在具有圖形用戶界面的WorldWide Web環境於1995年開始普及以前,匿名FTP一直是Internet上獲取信息資源的最主要方式,在Internet成千上萬的匿名PTP主機中存儲著無以計數的文件,這些文件包含了各種各樣的信息,數據和軟體。人們只要知道特定信息資源的主機地址,就可以用匿名FTP登但是匿名FTP仍是 Internet上傳輸分發軟體的一種基本方法。
3.什麼是Remote Login(遠程登錄)
Remote Login(遠程登錄)指用戶通過Internet登錄到遠程主機上。在這種連接建立之後,用戶所在的計算就可以作為遠程主機的終端一樣使用。 Internet上遠程登錄的主要方式是Telnet,匿名FTP也需要首先經過遠程登錄才能進行文件傳輸。
4.什麼是Upload(上傳)
Upload(上傳)指把數據從本地計算機傳到遠程主機上,因此受到嚴格的管理和控制,但Upload是提交用戶信息和要求以實現遠程交互應用的基礎。
5.何為FTP連接
進行FTP連接首先要給出目的FTP伺服器的名稱或地址,當連接到FTP伺服器後,一般要進行登錄,在檢驗用戶ID號和口令後,連接才得以建立,某些系統也允許用戶進行匿名登錄。與在所有的多用戶系統中一樣,對於同一目錄或文件,不同的用戶擁有不同的許可權,所以在使用過程中,如果發現不能下載或上載某些文件時,一般是因為用戶許可權不夠。
6.FTP文件傳輸方式
FTP可用多種格式傳輸文件,通常由系統決定,大多數系統(包括UNIX系統)只有兩種模式:文本模式(ASCII)和二進制模式(BIN/IMAGE)。
文本傳輸器使用ASCII字元,並由回車鍵和換行符分開,而二進制不用轉換或格式化就可傳字元,二進制模式比文本模式更快,並且可以傳輸所有ASCII值,所以系統管理員一般將FTP設置成二進制模式。應注意在用FIP傳輸文件前,必須確保使用正確的傳輸模式,按文本模式傳二進制文件必將導致錯誤。
7.FTP的可靠性問題
FTP建立在傳輸層TCP協議之上,TCP是面向連接的協議,負責保證數據從源計算機到目的計算機的傳輸。TCP採用校驗、確認接收和超時重傳等一系列措施提供可靠的傳輸,所以在傳輸過程中FTP程序如果沒有提示錯誤,就無需擔心傳輸問題。
5. 簡述FTP主要功能。
在網路上進行文件傳輸的一套標准協議。用戶通過一個支持FTP協議的客戶機程序,連接到在遠程主機上的FTP伺服器程序。用戶通過客戶機程序向伺服器程序發出命令,伺服器程序執行用戶所發出的命令,並將執行的結果返回到客戶機。
需要進行遠程文件傳輸的計算機必須安裝和運行ftp客戶程序。在windows操作系統的安裝過程中,通常都安裝了tcp/ip協議軟體,其中就包含了ftp客戶程序。啟動ftp客戶程序工作的另一途徑是使用ie瀏覽器,用戶只需要在ie地址欄中輸入url地址。
(5)ftp應用報告擴展閱讀
FTP的用戶分類和傳輸方式
一、用戶分類
1、Real帳戶
這類用戶是指在FTP服務上擁有帳號。當這類用戶登錄FTP伺服器的時候,其默認的主目錄就是其帳號命名的目錄。
2、Guest用戶
在FTP伺服器中,給不同的部門或者某個特定的用戶設置一個帳戶。伺服器通過這種方式來保障FTP服務上其他文件的安全性。擁有這類用戶的帳戶,只能夠訪問其主目錄下的目錄,而不得訪問主目錄以外的文件。
3、Anonymous(匿名)用戶
這類用戶是指在FTP伺服器中沒有指定帳戶,但是其仍然可以進行匿名訪問某些公開的資源。
需要根據用戶的類型,對用戶進行歸類。默認情況下,Vsftpd伺服器會把建立的所有帳戶都歸屬為Real用戶。
二、FTP的傳輸有兩種方式:ASCII、二進制。
1、ASCII傳輸方式
假定用戶正在拷貝的文件包含的簡單ASCII碼文本,如果在遠程機器上運行的不是UNIX,當文件傳輸時ftp通常會自動地調整文件的內容以便於把文件解釋成另外那台計算機存儲文本文件的格式。
用戶正在傳輸的是程序,資料庫,字處理文件或者壓縮文件,在拷貝任何非文本文件之前,用binary 命令告訴ftp逐字拷貝。
2、二進制傳輸模式
在二進制傳輸中,保存文件的位序,以便原始和拷貝的是逐位一一對應的。例如,macintosh以二進制方式傳送可執行文件到Windows系統,在對方系統上,此文件不能執行。如在ASCII方式下傳輸二進制文件,即使不需要也仍會轉譯。這會損壞數據。
ASCII方式一般假設每一字元的第一有效位無意義,因為ASCII字元組合不使用它。如果傳輸二進制文件,所有的位都是重要的。
6. FTP的實際應用是怎麼樣的
FTP 能實現遠程共享傳輸的功能 一般用的像windos2003伺服器系統上 一般應用在企業里或者單位里的局內網里 不過現在很少見那些單位用了 學校就常用到 現在企業一般都開發比較先進的網頁簡易性的操作軟體來代替了它