1. 簡述文件傳輸協議FTP的工作原理及一般使用步驟。
1、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無法和內部網路的客戶端建立一個新的連接,造成無法工作。
2、使用步驟
(1)FTP伺服器運行FTPd守護進程,等待用戶的FTP請求。
(2)用戶運行FTP命令,請求FTP伺服器為其服務。
例:FTP 202.119.2.197
(3)FTPd守護進程收到用戶的FTP請求後,派生出子進程FTP與用戶進程FTP交互,建立文件傳輸控制連接,使用TCP埠21。
(4)用戶輸入FTP子命令,伺服器接收子命令,如果命令正確,雙方各派生一個數據傳輸進程FTP-DATA,建立數據連接,使用TCP埠20,進行數據傳輸。
(5)本次子命令的數據傳輸完,拆除數據連接,結束FTP-DATA進程。
(6)用戶繼續輸入FTP子命令,重復(4)、(5)的過程,直至用戶輸入quit命令,雙方拆除控制連接,結束文件傳輸,結束FTP進程。
2. 求FTP命令用法及什麼是後台下載
給你舉個例子吧:
假設我在某某伺服器上的服務信息為:
FTP server :58.19.237.135
User: heibang
Password: heibang7785
現在讓我們打開Windows的開始菜單,執行「運行」命令,在對話框中輸入ftp命令,按下「確定」按鈕執行。
其時將會切換至DOS窗口,出現提示符
ftp>
現在讓我們輸入命令連接FTP伺服器:
ftp> open 58.19.237.135(回車)
稍等片刻,屏幕提示連接成功:
ftp> connected to 58.19.237.135(回車)
接下來伺服器詢問你用戶名和口令,分別輸入heibang和heibang7785,待認證通過即可。
下面進入正題,開始上傳文件,比如說我們要把c:\index.html傳至伺服器的根目錄中,可以這么鍵入:
ftp> put c:\index.html (回車)
當屏幕提示你已經傳輸完畢,可以打入相關命令查看一番:
ftp> dir (回車)
你就能看見你剛才上傳的文件了。
剛剛講的是上傳,現在來看下載。假設要把伺服器\images目錄中的所有.jpg文件傳至本機中,按以下指令操作:
ftp> cd images(回車) [註:進入\images目錄]
ftp> mget *.jpg
上傳與下載工作完畢,可以運行bye中斷連接。
ftp> bye(回車)
最後為了方便大家記憶,總結一下常用的FTP命令:
1. open:與伺服器相連接;
2. send(put):上傳文件;
3. get:下載文件;
4. mget:下載多個文件;
5. cd:切換目錄;
6. dir:查看當前目錄下的文件;
7. del:刪除文件;
8. bye:中斷與伺服器的連接。
命令雖然簡單,但不一定人人皆知;再說「養兵千日,用兵一時」,說不定什麼時候就會用得著的呢。如果想了解得更多,就打ftp> help (回車)查看命令集吧。
ascii: 設定以ASCII方式傳送文件(預設值)
bell: 每完成一次文件傳送,報警提示
binary: 設定以二進制方式傳送文件
bye: 終止主機FTP進程,並退出FTP管理方式
case: 當為ON時,用MGET命令拷貝的文件名到本地機器中,全部轉換為小寫字母
cd: 同UNIX的CD命令
cp: 返回上一級目錄
chmod: 改變遠端主機的文件許可權
close: 終止遠端的FTP進程,返回到FTP命令狀態,所有的宏定義都被刪除
delete: 刪除遠端主機中的文件
dir [remote-directory] [local-file]: 列出當前遠端主機目錄中的文件.如果有本地文件,就將結果寫至本地文件
get [remote-file] [local-file]: 從遠端主機中傳送至本地主機中
help [command]: 輸出命令的解釋
lcd: 改變當前本地主機的工作目錄,如果預設,就轉到當前用戶的HOME目錄
ls [remote-directory] [local-file]: 同DIR
macdef: 定義宏命令
mdelete [remote-files]: 刪除一批文件
mget [remote-files]: 從遠端主機接收一批文件至本地主機
mkdir directory-name: 在遠端主機中建立目錄
mput local-files: 將本地主機中一批文件傳送至遠端主機
open host [port]: 重新建立一個新的連接
prompt: 交互提示模式
put local-file [remote-file]: 將本地一個文件傳送至遠端主機中
pwd: 列出當前遠端主機目錄
quit: 同BYE
recv remote-file [local-file]: 同GET
rename [from] [to]: 改變遠端主機中的文件名
rmdir directory-name: 刪除遠端主機中的目錄
send local-file [remote-file]: 同PUT
status: 顯示當前FTP的狀態
system: 顯示遠端主機系統類型
user user-name [password] [account]: 重新以別的用戶名登錄遠端主機
?: 同HELP
3. FTP建立後,和伺服器建立哪兩種連接
起初,FTP並不是應用於IP網路上的協議,而是ARPANEt網路中計算機間的文件傳輸協議, ARPANET是美國國防部組建的老網路,於1960-1980年使用。在那時, FTP的主要功能是在主機間高速可靠地傳輸文件。目前FTP仍然保持其可靠性,即使在今天,它還允許文件遠程存取。這使得用戶可以在某個系統上工作,而將文件存貯在別的系統。例如,如果某用戶運行Web伺服器,需要從遠程主機上取得HTML文件和CGI程序在本機上工作,他需要從遠程存儲站點獲取文件(遠程站點也需安裝Web伺服器)。當用戶完成工作後,可使用FTP將文件傳回到Web伺服器。採用這種方法,用戶無需使用Telnet登錄到遠程主機進行工作,這樣就使Web伺服器的更新工作變得如此的輕松。
FTP是TCP/IP的一種具體應用,它工作在OSI模型的第七層,TCP模型的第四層上,即應用層,使用TCP傳輸而不是UDP,這樣FTP客戶在和伺服器建立連接前就要經過一個被廣為熟知的"三次握手"的過程,它帶來的意義在於客戶與伺服器之間的連接是可靠的,而且是面向連接,為數據的傳輸提供了可靠的保證。
下面,讓我們來看看,一個FTP客戶在和伺服器連接是怎麼樣的一個過程(以標準的FTP埠號為例)。
首先,FTP並不像HTTP協議那樣,只需要一個埠作為連接(HTTP的默認埠是80,FTP的默認埠是21),FTP需要2個埠,一個埠是作為控制連接埠,也就是21這個埠,用於發送指令給伺服器以及等待伺服器響應;另一個埠是數據傳輸埠,埠號為20(僅PORT模式),是用來建立數據傳輸通道的,主要有3個作用
從客戶向伺服器發送一個文件。
從伺服器向客戶發送一個文件。
從伺服器向客戶發送文件或目錄列表。
其次,FTP的連接模式有兩種,PORT和PASV。PORT模式是一個主動模式,PASV是被動模式,這里都是相對於伺服器而言的。為了讓大家清楚的認識這兩種模式,朗月繁星分別舉例說明。
PORT模式
當FTP客戶以PORT模式連接伺服器時,他動態的選擇一個埠號(本次試驗是6015)連接伺服器的21埠,注意這個埠號一定是1024以上的,因為1024以前的埠都已經預先被定義好,被一些典型的服務使用,當然有的還沒使用,保留給以後會用到這些埠的資源服務。當經過TCP的三次握手後,連接(控制信道)被建立(如圖1和圖2)。
圖1:FTP客戶使用FTP命令建立於伺服器的連接
圖2:用netstat命令查看,控制信道被建立在客戶機的6015和伺服器的20埠
現在用戶要列出伺服器上的目錄結構(使用ls或dir命令),那麼首先就要建立一個數據通道,因為只有數據通道才能傳輸目錄和文件列表,此時用戶會發出PORT指令告訴伺服器連接自己的什麼埠來建立一條數據通道(這個命令由控制信道發送給伺服器),當伺服器接到這一指令時,伺服器會使用20埠連接用戶在PORT指令中指定的埠號,用以發送目錄的列表(如圖3)。
圖3:ls命令是一個交互命令,它會首先與伺服器建立一個數據傳輸通道。經驗證本次試驗客戶機使用6044埠
當完成這一操作時,FTP客戶也許要下載一個文件,那麼就會發出get指令,請注意,這時客戶會再次發送PORT指令,告訴伺服器連接他的哪個"新"埠,你可以先用netstat -na這個命令驗證,上一次使用的6044已經處於TIME_WAIT狀態(如圖4)。
圖4:使用netstat命令驗證上一次使用ls命令建立的數據傳輸通道已經關閉
當這個新的數據傳輸通道建立後(在微軟的系統中,客戶端通常會使用連續的埠,也就是說這一次客戶端會用6045這個埠),就開始了文件傳輸的工作。
PASV模式
然而,當FTP客戶以PASV模式連接伺服器時,情況就有些不同了。在初始化連接這個過程即連接伺服器這個過程和PORT模式是一樣的,不同的是,當FTP客戶發送ls、dir、get等這些要求數據返回的命令時,他不向伺服器發送PORT指令而是發送PASV指令,在這個指令中,用戶告訴伺服器自己要連接伺服器的某一個埠,如果這個伺服器上的這個埠是空閑的可用的,那麼伺服器會返回ACK的確認信息,之後數據傳輸通道被建立並返回用戶所要的信息(根據用戶發送的指令,如ls、dir、get等);如果伺服器的這個埠被另一個資源所使用,那麼伺服器返回UNACK的信息,那麼這時,FTP客戶會再次發送PASV命令,這也就是所謂的連接建立的協商過程。為了驗證這個過程我們不得不藉助CUTEFTP Pro這個大家經常使用的FTP客戶端軟體,因為微軟自帶的FTP命令客戶端,不支持PASV模式。雖然你可以使用QUOTE PASV這個命令強制使用PASV模式,但是當你用ls命令列出伺服器目錄列表,你會發現它還是使用PORT方式來連接伺服器的。現在我們使用CUTEFTP Pro以PASV模式連接伺服器(如圖5)。
圖5:使用CUTEFTP Pro以PASV模式連接伺服器
請注意連接LOG里有這樣幾句話:
COMMAND:> PASV
227 Entering Passive Mode (127,0,0,1,26,108)
COMMAND:> LIST
STATUS:> Connecting ftp data socket 127.0.0.1: 6764...
125 Data connection already open; Transfer starting.
226 Transfer complete.
其中,227 Entering Passive Mode (127,0,0,1,26,80). 代表客戶機使用PASV模式連接伺服器的26x256+108=6764埠。(當然伺服器要支持這種模式)
125 Data connection already open; Transfer starting.說明伺服器的這個埠可用,返回ACK信息。
再讓我們看看用CUTEFTP Pro以PORT模式連接伺服器的情況。其中在LOG里有這樣的記錄:
COMMAND:> PORT 127,0,0,1,28,37
200 PORT command successful.
COMMAND:> LIST
150 Opening ASCII mode data connection for /bin/ls.
STATUS:> Accepting connection: 127.0.0.1:20.
226 Transfer complete.
STATUS:> Transfer complete.
其中,PORT 127,0,0,1,28,37告訴伺服器當收到這個PORT指令後,連接FTP客戶的28x256+37=7205這個埠。
Accepting connection: 127.0.0.1:20表示伺服器接到指令後用20埠連接7205埠,而且被FTP客戶接受。
比較分析
在這兩個例子中,請注意: PORT模式建立數據傳輸通道是由伺服器端發起的,伺服器使用20埠連接客戶端的某一個大於1024的埠;在PASV模式中,數據傳輸的通道的建立是由FTP客戶端發起的,他使用一個大於1024的埠連接伺服器的1024以上的某一個埠。如果從C/S模型這個角度來說,PORT對於伺服器來說是OUTBOUND,而PASV模式對於伺服器是INBOUND,這一點請特別注意,尤其是在使用防火牆的企業里,比如使用微軟的ISA Server 2000發布一個FTP伺服器,這一點非常關鍵,如果設置錯了,那麼客戶將無法連接。
最後,請注意在FTP客戶連接伺服器的整個過程中,控制信道是一直保持連接的,而數據傳輸通道是臨時建立的。
在本文中把重點放到了FTP的連接模式,沒有涉及FTP的其他內容,比如FTP的文件類型(Type),格式控制(Format control)以及傳輸方式(Transmission mode)等。不過這些規范大家可能不需要花費過多的時間去了解,因為現在流行的FTP客戶端都可以自動的選擇正確的模式來處理,對於FTP伺服器端通常也都做了一些限制,如下:
類型:A S C I I或圖像。
格式控制:只允許非列印。
結構:只允許文件結構。
傳輸方式:只允許流方式
至於這些內容,限於篇幅在這里就不想再介紹了。希望這篇文章能對大家有些幫助,特別是正在學習ISA Server2000的朋友和一些對FTP不很了解的朋友。
4. 如何連接FTP,FTP連接失敗的五大主要原因
如何連接FTP最常見的FTP連接有2種方式,匿名連接FTP,有用戶名和密碼的FTP連接。根據FTP伺服器的設定來採用哪種連接方式。連接FTP伺服器的常見工具有Windows的資源管理器(或者IE),FLASHFXP,CUTFTP等。匿名連接FTP我們只需要在WindowsIE瀏覽器輸入FTP的地址即可,在地址欄輸入FTP伺服器的IP地址,如圖,注意以FTP開頭當成功連接時,會顯示FTP伺服器的文件列表使用用戶名和密碼的FTP連接新版本的IE不支持上傳,需要資源管理器地址欄輸入以上格式的管理地址。資源管理器打開方法,右鍵點開始,然後選擇資源管理器。以軟體FLASHFXP(下載)為例,運行軟體,按F8進行快速連接,如圖:將FTP伺服器的三個參數填寫完整後點擊連接,伺服器處可填寫FTP伺服器的域名或者IP地址。連接成功後軟體右側會出現遠程伺服器的文件列表。FTP連接失敗的五大原因:由於每個人電腦環境和FTP伺服器的屬性不同,FTP連接失敗的事情常有發生。一、FTP伺服器的域名解析問題,當我們連接FTP時地址欄填寫了伺服器的域名,如果DNS伺服器解析出問題,我們就無法得到對方的IP地址,因此無法連接FTP。二、錯誤的用戶名和密碼。許多FTP伺服器禁止了匿名連接,這樣是為了安全起見,連接時輸入錯誤的用戶名和密碼或者不輸入用戶名和密碼導致連接失敗。三、傳輸模式錯誤。許多伺服器在安裝了防火牆後設置了被動模式傳輸,用戶在連接時需要採用被動模式(pasv)或者自動模式。四、FTP伺服器錯誤。對方伺服器宕機,可以通過PING命令來測試FTP伺服器是否存活。五、錯誤的埠或者自身電腦防火牆不允許。許多安全軟體禁止了FTP連接,自身電腦無法連接FTP埠。
5. FTP的常用命令和使用方法
FTP命令是Internet用戶使用最頻繁的命令之一,不論是在DOS還是UNIX操作系統下使用FTP,都會遇到大量的FTP內部命令。熟悉並靈活應用FTP的內部命令,可以大大方便使用者,並收到事半功倍之效。下面以Win9x的DOS窗口中的FTP命令為例,介紹一下其用法。(本站註:若想在純DOS下使用FTP命令,則需先載入網路設備如網卡或數據機的Packet驅動程序,再使用本站「網路工具」中的Wattcp FTP程序,其用法與下面介紹的類似,詳情請見本站的「DOS使用」欄目)
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]:設置文件名字元的翻譯機制,如ntrans1R,則文件名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.
6. linux怎麼搭建ftp伺服器
在創建FTP伺服器之有先命令: ps -ef |grep vsftpd
查一下系統有沒有安裝vsftpd這個伺服器,如果沒有安裝。
然後再執行:yum install vsftpd -y
進行在線安裝vsftpd這個服務。
安裝成功以後需要把匿名登陸的這個功能關閉了。
使用命令: vim /etc/vsftpd/vsftpd.conf
然後在里成找到:
anonymous_enable=NO
然後再查看一下vsftpd這個服務有沒有啟動。
使用命令: chkconfig --list
如果你一樣沒有啟動。
沒有啟動使用啟動:chkconfig --level 35 vsftpd on
再接下來就是創建用戶名。
創建用戶名:useradd jingyan
再然後就是創建密碼。
命令:passwd jingyan
再輸入兩次密碼就可以了。
最後重啟一下服務:service vsftpd start
如果出現啟動失敗則可以使用:/etc/rc.d/init.d/vsftpd restart
成功鏈接FTP伺服器上。
7. 各位高手,誰能告訴我建立FTP的詳細方法
建立個人FTP伺服器教程 以及 內網、區域網設置IP,建立FTP
【怎樣建立個人FTP】
Serv-U FTP Server 5.0.0.11 final 特別破解版漢化版
點擊下載
《FTP Serv-U 教程》+《FTP的建立和維護手冊》
點擊下載
在網上做過軟體下載的人都知道,建立一個FTP下載伺服器相對比較簡單,一般用WIN2000下自帶的IIS就可以,但IIS在功能上好多都不盡人如意,下面我就介紹一款功能非常強大,但使用簡單的FTP伺服器構建軟體-Serv-U FTP Server,讓我們也來體驗一下自己DIY FTP伺服器的快樂! 在說明使用之前,讓我先大致介紹一下Serv-U(本文中提到Serv-U版本為3.0.0.17), Serv-U 是一個可以運行於Windows 95/98/2000/ME 和 Windows NT 4.0下的FTP伺服器程序如圖所示,
有了它,你的個人電腦就可以模擬為一個FTP伺服器,也就是說,你所連接的網路中的計算機用戶可以訪問你的個人電腦,通過FTP協議(文件傳輸協議)復制、移動、刪除你的電腦中的文件或文件夾,可以做一切許可權所允許的事情。FTP協議規定了計算機之間的標准通訊方式,使所有不同類型,不同操作系統,不同格式的電腦之間得以互換文件。它可以用最簡單的方式創建用戶帳號,並且在硬碟空間上劃分一定的區域用以存放文件,讓用戶以各種FTP客戶端軟體(如CuteFTP、WS_FTP等)上傳或下載所需要的文件。
有許多FTP伺服器和客戶端軟體可用於不同的系統中,Serv-U是用於運行MS-Windows 並且已安裝了WinSock 版本 1.1 兼容 TCP/IP協議的個人電腦中的,這幾乎包括了所有的Windows操作系統。
Serv-U由兩大部分組成,引擎和用戶界面。Serv-U引擎(ServUDaemon.exe)其實是一個常駐後台的程序,也是Serv-U整個軟體的心臟部分,它負責處理來自各種FTP客戶端軟體的FTP命令,也是負責執行各種文件傳送的軟體。在運行Serv-U引擎也就ServUDaemon.exe
文件後,我們看不到任何的用戶界面,它只是在後台運行,通常我們無法影響它,但在ServUAdmin.exe中我們可以停止和開始它。Serv-U引擎可以在任何Windows平台下作為一個本地系統服務來運行,系統服務隨操作系統的啟動而開始運行,而後我們就可以運行用戶界面程序了。在Win NT/2000系統中,Serv-U會自動安裝為一個系統服務,但在Win 9x/Me中,你需要在「伺服器」面板中選擇「自動開始」,才能讓它轉為系統服務。Serv-U用戶界面(ServUAdmin.exe)也就是Serv-U管理員,它負責與Serv-U引擎之間的交互。它可以讓用戶配置 Serv-U,包括創建域、定義用戶、並告訴伺服器是否可以訪問。啟動Serv-U管理員最簡單的辦法就是直接點接系統欄的「U」形圖標,當然,你也可以從開始菜單中運行它。
在此有必要把Serv-U中的一些重要的概念給大家講清楚:每個正在運行的Serv-U引擎可以被用來運行多個「虛擬」的FTP伺服器,在管理員程序中,每個「虛擬」的FTP伺服器都稱為「域」,因此,對於伺服器來說,不得不建立多個域時是非常有用的。每個域都有各自
的「用戶」、「組」和設置。一般說來,「設置向導」會在你第一次運行應用程序時設置好一個最初的域和用戶帳號。伺服器、域和用戶之間的關系大家可以參考下表:
*Serv-U 伺服器
*域 1
*用戶帳號 1
*用戶帳號 2
*用戶帳號 3
*域 2
*用戶帳號 1
*用戶帳號 2
*域 3
*用戶帳號 1
*用戶帳號 1
這個表有點類似與Serv-U管理員中伺服器、域和用戶的排列。
Serv-U FTP Server 是試用軟體,安裝後三十天內,你可以作為「專業版本」使它,但試用期過後,你就只能作為免費的「個人版
本」使用了,只有基本功能了。
好了,說了這么多,還沒到關鍵部分-如何自己來建立FTP伺服器。下面我就一步一步來說明。
一、 安裝原版軟體和漢化補丁,這個過程就不多說了,想必沒人不會的。
二、 建立第一個本地FTP伺服器
安裝完成後程序會自動運行,你也可以在菜單中選擇運行。
1、 第一次運行程序,它會彈出設置向導窗口如圖,
將會帶你完成最初的設置,
2、 單擊「下一步」,出現「顯示菜單圖像」的窗口,問你是否在菜單中顯示小圖像,看各人喜歡了;
3、 單擊「下一步」,這個窗口是讓你在本地第一次運行FTP伺服器,只要「下一步」就行了。
4、 接下來要你輸入你的IP地址如圖,
如果你自己有伺服器,有固定的IP,那就請輸入IP地址,如果你只是在自己電腦上建立FTP,而且又是撥號用戶,有的只是動態IP,沒有固定IP,那這一步就省了,什麼也不要填,Serv-U 會自動確定你的IP地址,「下一步」;
5、 在這兒要你輸入你的域名,如圖
如果你有的話,如:ftp.abc.com,沒有的話,就隨便填一個;
6、 「下一步」,詢問你是否允許匿名訪問如圖
一般說來,匿名訪問是以Anonymous為用戶名稱登錄的,無需密碼,當然如果你想成立一個會員區什麼的,就應該選擇「否」,不讓隨便什麼人都可以登錄,只有許可用戶才行,在此我們填「是」;
7、 「下一步」,問你匿名用戶登錄到你的電腦時的目錄,如圖,
你可以自己指定一個硬碟上已存在的目錄,如F:\temp\xyz;
8、 「下一步」,詢問你是否要鎖定該目錄,鎖定後,匿名登錄的用戶將只能認為你所指定的目錄(F:\temp\xyz)是根目錄,也就是說他只能訪問這個目錄下的文件和文件夾,這個目錄之外就不能訪問,對於匿名用戶一般填「是」;
9、 「下一步」,詢問你是否創建命名的帳號,也就是說可以指定用戶以特定的帳號訪問你的FTP,這對於辦會員區可很有用哦,你可以對於每個人都創建一個帳號,每個帳號的許可權不同,就可以不同程序地限制每個人的權利,方法將在後面講到,這里選擇「是」;
10、 「下一步」,請你填入所要建立的帳號的名稱,如圖,如:ldr,
11、 「下一步」,請輸入密碼,如:123,
12、 「下一步」,詢問登錄目錄是什麼,這一步與第7步一樣,如:F:\temp
13、 「下一步」,詢問你是否要鎖定該目錄,同第8步,這里選擇「否」;
14、 接下來詢問你這次創建的用戶的管理員許可權,如圖,
有幾項選擇:無許可權,組管理員,域管理員,只讀管理員和系統管理員,每項的許可權各不相同;這里選擇「系統管理員」;
15、 最後一步,點擊「完成」就OK了,你有什麼需要修改的,可以點「上一步」,或者進入Serv-U管理員直接修改。至此,我們建立
了一個域ftp.abc.com,兩個用戶,一個Anonymous,一個ldr。
三、 既然我們已經建立好FTP伺服器,那麼我們就應該可以用FTP客戶端軟體來嘗試登錄。
怎麼辦呢?其實很簡單,我們不用上網,就可以測試。我們知道,不上網時,本地機的IP地址默認就為127.0.0.1,FTP埠號為21。打開FTP客戶端軟體,我就用FlashFXP來說明,打開快速連接,填入相應內容,如圖
然後連接,如圖
可以看到,我左邊窗格以Anonymous登錄,右邊窗格以ldr登錄,由於是本地機,所以速度奇快,上網後,假如我要讓你登錄到我的電腦上,我只要把我的上網時的IP地址給你,你就可以匿名訪問我的電腦了(注意不要開防火牆),是不是很方便?
四、Serv-U管理員中的各項設置
在設置完成後,將會進入Serv-U管理員的主界面,如圖
左邊窗格中顯示各個欄目,右邊窗格中顯示各個欄目的具體選項,下面就大概講一講設置內容。
1、 在圖中,我們可以人為地控制Serv-U引擎的運行或停止,記住,在Win 9x/Me 中,我們就要在此選擇「系統服務」,才會運行
Serv-U引擎。
2、 「許可」,如果你花美元買了注冊號,就可以在此輸入。
3、 「設置」,這個設置是對於「本地伺服器」來說的。「常規」設置中,如圖
可以限制伺服器的最大速度,可以攔截FXP(站點到站點傳送),也可以限制用戶的數量,這樣不至於你的伺服器被拖跨。「目錄緩存」設置中,如圖
允許你自己確定目錄列表的個數以及超時時間,在Windows 95 和 NT下,目錄列表默認設置為25,當緩存滿了之後,新的請求將替換老的請求。「高級」設置中,如圖
可以讓你自己定義伺服器、Socket、文件的上傳和下載的各項設置。
4、 「活動」,在這里記錄了用戶的活動日誌,已封鎖的IP的活動日誌,以及任務日誌;任務日誌中顯示的就是你開始停止的各項操作記錄,你可以點擊右擊,選擇一此過濾文本,使其只顯示你所想見的內容,如圖
5、 「域」,這里包含了你一開始根據向導所建立的用戶、設置、域等。「域--設置」中所設置的內容其實與第3步差不多,只是它更
加具體,可以對於每一個不同域定製。「域--活動」中記載了這個域下所有用戶的活動情況。
6、 「域--組」,我們可以自己建立一些便於管理的組,然後把一類的用戶歸到一個組中。
7、 「域--用戶」中,大家可以看到一開始我們建立的兩個帳號,一個Anonymous,一個ldr。現在就帳號ldr來對其中的細節設置說明一下。
A、「帳號」欄,如圖
對於一些不守規則的人,我們可以選擇「禁用帳號」,雖然有帳號,但可以使用戶一時間無法登錄;你也可以設置讓程序到達某個日期後自動刪除某個帳號;下面幾欄是這個帳號的基本信息,我們都可以在此更改,其中密碼改過後並不顯示,而是統一顯示<>,特別要注意選項「鎖定用戶於主目錄」,什麼意思呢?大家應該碰到,每次我們登錄到FTP伺服器上後,在根目錄下只顯示「/」,選擇這項選項後,就是這樣,如果不選,會出現什麼情況呢?你可以做一下試驗,在根目錄下將顯示「/f:/temp/」,也就是說顯示了你硬碟中的絕對
地址,這在某些情況下是很危險的,有不懷好意的高手,你就麻煩了!
你可以隱藏屬性為隱藏的文件,可以限制同一IP的登錄個數,是否允許用戶更改密碼(這需要客戶端軟體的支持),最大上傳下載的速
度,超時時間以及空閑時間,你也可以限制最大用戶數量,如20,說明同時只能有20個用戶登錄。
C、「目錄訪問」欄,如圖
在此你可以控制用戶對於文件目錄的許可權,對文件有讀取、寫入、刪除、追加、執行等操作,對於文件夾有列表、創建、刪除,以及是否繼承子目錄;如果覺得目錄不夠,你也可以添加可訪問的目錄。
D、「IP訪問」欄,如圖
在這里你可以規定某個IP是否可以訪問你的FTP伺服器,你可以拒絕它的訪問,只要填上相應的IP地址,以後由這個IP的訪問通通被攔下。
E、「上傳/下載率」欄,如圖
在這里你可以設置上傳和下載之間的比值,控制好上傳和下載之間的數據流量關系。
F、「配額」欄,如圖
這里你可以為每個FTP用戶設置磁碟空間,點擊「計算當前」,可以知道當前目前下的所有空間大小,在「最大」一欄中填入你想要限制的容量。
最後有一點,改過設置後一定要點擊右鍵,選擇「應用」使設置生效才行,否則一切都白做了!!
希望大家學會後,能為更多的人提供下載,享受寬頻帶來的快樂!
==========================================================================================================
SERV-U FTP的歡迎詞設置
讓你的SERV-U FTP看起來更專業一點
現在很多的朋友都用SERV-U做個人FTP的伺服器,有關如何使用SERV-U架設伺服器的文章很多了,這兒我就不多說了。不過大家不知道注意到了沒有,當你登陸很多FTP的時候,會顯示一些歡迎信息,比如說顯示你的IP,告訴你目前有多少人在使用FTP,帶寬是多少等等。。。看起來就比較的專業樣子。其實你自己也是可以做的,SERV-U這個軟體本身就有這個功能。下面我就說明以下如何在自己的FTP裡面加上這些信息。
第一、先建立一個文本文件,隨便取一個名字。我們這兒就取message.txt吧。
第二、這個這個文本文件裡面加上這些文字
-----------------------------------
歡迎來到XXX的個人FTP伺服器
你的IP地址是:%IP
目前伺服器所在的時間是 %time
已經有 %u24h 個用戶在最近24小時訪問過本FTP
本FTP伺服器已經運行了 %ServerDays 天,%ServerHours 小時 和 %ServerMins 分。
伺服器的運行情況:
所有登陸用戶數量: %loggedInAll total
當前登陸用戶數量: %Unow
已經下載位元組數: %ServerKbDown Kb
已經上傳位元組數: %ServerKbUp Kb
已經下載文件數: %ServerFilesDown
已經上傳文件數: %ServerFilesUp
伺服器平均帶寬: %ServerAvg Kb/sec
伺服器當前帶寬: %ServerKBps Kb/sec
------------------------------------
其中XXX可以改成你的名字
你也可以加上一些你自己認為喜歡的文字,不過要注意的是每行最好不要超過80個字元
其中以%開頭的都是一些變數,下面是SERV-U能支持的變數
時間和日期
%Time - 顯示你的計算機當前時間
%Date - 顯示你的計算機當前日期
伺服器的統計信息
%ServerDays - 顯示伺服器已經運行的天數
%ServerHours - 顯示伺服器已經運行的小時數
%ServerMins - 顯示伺服器已經運行的分鍾數
%ServerSecs - 顯示伺服器已經運行的秒數
%ServerKbUp - 顯示自從伺服器運行以來已經上傳的位元組數
%ServerKbDown - 顯示自從伺服器運行以來已經下載的位元組數
%ServerFilesUp - 顯示自從伺服器運行以來已經上傳的文件數
%ServerFilesDown - 顯示自從伺服器運行以來已經下載的文件數
%LoggedInAll - 顯示自從伺服器運行以來已經登陸的用戶數
%ServerAvg - 顯示伺服器的平均帶寬
%ServerKBps - 顯示伺服器的當前帶寬
伺服器的設定信息
%MaxUsers - 顯示伺服器能同時登陸的最大用戶數量
%MaxAnonymous - 顯示伺服器能同時登陸的最大匿名用戶數量
用戶信息
%Name - 顯示登陸的用戶名
%IP - 顯示登陸的用戶IP地址
%Dir - 顯示登陸的用戶的當前目錄
%Disk - 顯示登陸的用戶的當前磁碟
%DFree - 顯示登陸的用戶的當前磁碟空間,單位是MB
%FUp - 顯示登陸的用戶上傳的文件數量
%FDown - 顯示登陸的用戶下載的文件數量
%FTot - 顯示登陸的用戶上傳和下載的總的文件數量
%BUp - 顯示登陸的用戶上傳的位元組數,單位是KB
%Bdown - 顯示登陸的用戶下載的位元組數,單位是KB
%BTot - 顯示登陸的用戶上傳和下載的總位元組數,單位是KB
%TconM - 顯示登陸用戶連接時間,單位是分鍾
%TconS - 顯示登陸用戶連接時間,單位是秒,要和%TconM一起使用
%RatioUp - 顯示登陸用戶的上傳流量限制
%RatioDown - 顯示登陸用戶的下載流量限制
%RatioCredit - 顯示登陸用戶還有多少credit可以上傳和下載,這個是針對有些FTP是要上傳多少文件,才能下載多少文件而設置的
%QuotaUsed - 顯示登陸用戶的已經使用了多少空間,單位是KB
%QuotaLeft - 顯示登陸用戶的還有多少空間可以使用,單位是KB
%QuotaMax - 顯示登陸用戶的的最大空間,單位是KB
後面3個是針對有磁碟限制的用戶設置的
用戶數量
%UNow - 顯示當前有多少用戶連接
%UAll - 顯示從伺服器運行以來一共有多少用戶連接過
%U24h - 顯示最近24小時有多少用戶
%UAnonAll - 顯示當前總的匿名用戶數量
%UAnonThisIP - 顯示所有匿名登陸的用戶數
%UNonAnonAll - 顯示所有當前非匿名登陸用戶數
%UNonAnonThisIP - 顯示所有非匿名登陸用戶數
%UThisName - 顯示所有使用這個名字登陸的用戶數
自己在先建立一個.txt文件,輸入你想要顯示的文字,具體參數看上面的內容,然後在Serv_u內的server設置裡面,加入這個.txt文件就可以了
==========================================================================================================
——常見FTP登陸Log信息——
常見FTP登陸Log信息
1.
Connected. Waiting for response.
220 Serv-U FTP Server v4.0 for WinSock ready...
USER anonymous
530 Sorry, no ANONYMOUS access allowed.
QUIT
這個就是不許匿名登錄啦
2.
Connected. Waiting for response.
220 Serv-U FTP Server v4.0 for WinSock ready...
USER test
331 User name okay, need password.
PASS xxxxxx
530 Not logged in.
QUIT
一般是密碼輸入錯誤時出現的信息,但對於Serv-U來說,如果沒有這個帳號(test)存在,也會產生同樣的出錯信息。
3.
Connecting to xxx.xxx.xxx.xxx, Port 21 (#1)
ERROR: Connection timed out
這個表明對方未開機,也可能是對方不在你能訪問的范圍內
4.
Connecting to xxx.xxx.xxx.xxx Port 21 (#1)
ERROR: Connection refused
這個一般表明對方已開機,但未開啟FTP服務(沒有開Serv-U)
也可能為對方不提供在這個埠上的服務
5.
Connecting to xxx.xxx.xxx.xxx, Port 21 (#1)
Connected. Waiting for response.
Disconnected from server.
Connection attempt failed. Waiting for retry...
出現這個信息實在是很倒霉,你極有可能被對方Ban了。
如果只是Ban幾分鍾or幾小時or一天還好,不然只有和站長說說好話,讓他給你解封吧。
6.
Connecting to xxx.xxx.xxx.xxx, Port 21 (#1)
Connected. Waiting for response.
USER XXX
331 User name okay, need password
PASS xxxxxx
530 Not logged in, unauthorized IP address.
QUIT
這個有點麻煩,你的IP不在站長允許訪問的IP范圍內,只有和站長聯系,讓他把你的IP網段加入Allow Access列表裡吧
7.
Connected. Waiting for response.
220 Serv-U FTP Server v4.0 for WinSock ready...
USER user
421 Too many users - please try again later.
哈哈,這個很常見吧,用戶太多
8.
Connected. Waiting for response.
220 Serv-U FTP Server v4.0 for WinSock ready...
USER test
530 Not logged in, only one session from same IP allowed at a time.
QUIT
每個IP只能開一個下載,就不要用多線程啦,小心Ban了你。
----------------------------------------------------------------------------------------------
內網、區域網如何設置IP,建立FTP
首先,我們知道動態IP機器出去的最大問題是IP,因為動態IP機器的IP外網是無法識別的,我們討論的是最普通的區域網內工作站出去做FTP和WEB站點的問題!
動態域名解析正好能夠解決此類問題,它的原理是將本機的動態IP自動映射到預先申請好的虛擬域名上,這樣外面就可以通過訪問固定的虛擬域名來訪問到動態IP機器了。
<花生殼>該軟體使用方便,幾乎不用動什麼腦筋,唯一要做的事情就是去注冊,然後申請一個以vicp.net為後綴虛擬域名。
1.進入http://www.oray.net/,下載<花生殼>,並「注冊網域護照」!
2.注冊完成後,登陸「我的控制台」
3.進入「我的控制台」,點擊左下角的『我要.激活花生殼服務』
4.點擊「開始」進入
在『免費域名』填入不重復的你想要得名字就是你將來的域名,例如:AGHU
5.以後就是「服務條款」和「填寫站點信息」,這些地球人都知道怎麼填!
填完結束,恭喜你,你的域名已經有了!例如:你以後的域名就是AGHU.VICP.NET
申請完免費域名以後,就安裝你已經下載的<花生殼>,然後打開運行
輸入你的注冊名和密碼,等一下就會激活你的域名,興奮吧!
然後你的ftp和web就可以啟動咯!
架設ftp伺服器的事情,另外有帖子詳細介紹了!!
======================================
區域網內公開的ip只有一個,除非你是在主機上建私服,否則你無法公開你的私服,只能在區域網內,解決的辦法如下。
由於公網ip地址有限,不少isp都採用多個內網用戶通過代理和網關路由共用一個公網ip上internet的方法,這樣就限制了這些用戶在自己計算機上架設個人網站。要實現對我們來說是比較困難的,首先得得到系統管理員的支持才能夠實現。因為這一切的設置必須在代理伺服器上做的。要實現這一點,可以用windows 2000 服務者 的埠映射功能,除此之外winroute pro也具有這樣的功能,還有各種企業級的防火牆。而對於我們這些普通用戶,恐怕還是用windows 2000 的轉換以解決ip地址匱乏問題。在防火牆上實現nat後,可以隱藏受保護網路的內部拓撲結構,在一定程度上提高網路的安全性。如果反向nat提供動態網路地址及埠轉換功能,還可以實現負載均衡等功能埠映射功能可以讓內部網路中某台機器對外部提供www服務。 埠映射功能還可以完成一些特定代理功能,比如代理pop,smtp,telnet等協議。理論上可以提供六萬多個埠的映射,恐怕我們永遠都用不完的。
一、下面來介紹一下通過nat共享上網和利用nat來實現埠映射。
1、在windows 2000 server上,從管理工具中進入「路由和遠程訪問」(routing 並且 遙遠 access)服務,在伺服器上滑鼠右擊,-》「配置並啟用路由和遠程訪問」
2、點「下一步」
3、選「internet連接伺服器」,讓內網主機可以通過這台伺服器訪問internet.(最好先配置好nat共享,讓內網主機可以正常上網,不然的話,配好埠映射後再來配置nat共享就有點麻煩了,弄的不好nat還共享不了。)
4、選「設置有網路地址轉換(nat)路由協議的路由器」,不要選「設置internet連接共享(ics)」.(ics與nat的區別在於使用的容易程度上,為了啟用ics,只需要選擇一個復選框就可以了,而為了啟用nat,則需要更多的配置任務,此外,ics用於小型網路上的原因還在於:針對內部主機,它需要有一個固定的ip地址范圍;針對與外部網路的通信,它被限制在單個公共ip地址上;它只允許單個內部網路介面。)
5、先在此說一下我的網路情況:internet連接192.200.
8. 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程序如果沒有提示錯誤,就無需擔心傳輸問題。
9. 簡述FTP的工作原理
FTP的工作原理:FTP 採用 Internet 標准文件傳輸協議 FTP 的用戶界面, 向用戶提供了一組用來管理計算機之間文件傳輸的應用程序。
開發任何基於 FTP 的客戶端軟體都必須遵循 FTP 的工作原理,FTP 的獨特的優勢同時也是與其它客戶伺服器程序最大的不同點就在於它在兩台通信的主機之間使用了兩條 TCP 連接,一條是數據連接,用於數據傳送;
另一條是控制連接,用於傳送控制信息(命令和響應),這種將命令和數據分開傳送的思想大大提高了 FTP 的效率,而其它客戶伺服器應用程序只有一條 TCP 連接。
(9)連接ftp伺服器可以單例模式嗎擴展閱讀:
FTP 的目標是提高文件的共享性,提供非直接使用遠程計算機,使存儲介質對用戶透明和可靠高效地傳送數據。它能操作任何類型的文件而不需要進一步處理,就像MIME或Unicode一樣。
但是,FTP有著極高的延時,這意味著,從開始請求到第一次接收需求數據之間的時間,會非常長;並且不時的必須執行一些冗長的登錄進程。
FTP 在網際網路網路上歷史是最悠久的網路工具,從 1971 年由 A KBHUSHAN 提出第一個 FTP 的RFC(RFC114),FTP 憑借其獨特的優勢一直都是網際網路中最重要、最廣泛的服務之一。
10. FTP詳解知道請進
文件傳輸協議
[編輯本段]
FTP(File Transfer Protocol),是文件傳輸協議的簡稱。用於Internet上的控制文件的雙向傳輸。同時,它也是一個應用程序(Application)。用戶可以通過它把自己的PC機與世界各地所有運行FTP協議的伺服器相連,訪問伺服器上的大量程序和信息。
FTP(File Transfer Protocol)
FTP的作用
[編輯本段]
正如其名所示:FTP的主要作用,就是讓用戶連接上一個遠程計算機(這些計算機上運行著FTP伺服器程序)察看遠程計算機有哪些文件,然後把文件從遠程計算機上拷到本地計算機,或把本地計算機的文件送到遠程計算機去。
FTP工作原理
[編輯本段]
拿下傳文件為例,當你啟動FTP從遠程計算機拷貝文件時,你事實上啟動了兩個程序:一個本地機上的FTP客戶程序:它向FTP伺服器提出拷貝文件的請求。另一個是啟動在遠程計算機的上的FTP伺服器程序,它響應你的請求把你指定的文件傳送到你的計算機中。FTP採用「客戶機/伺服器」方式,用戶端要在自己的本地計算機上安裝FTP客戶程序。FTP客戶程序有字元界面和圖形界面兩種。字元界面的FTP的命令復雜、繁多。圖形界面的FTP客戶程序,操作上要簡潔方便的多。
簡單地說,支持FTP協議的伺服器就是FTP伺服器,下面介紹一下什麼是FTP協議。(文件傳輸協議)
一般來說,用戶聯網的首要目的就是實現信息共享,文件傳輸是信息共享非常重要的一個內容之一。Internet上早期實現傳輸文件,並不是一件容易的事,我們知道 Internet是一個非常復雜的計算機環境,有PC,有工作站,有MAC,有大型機,據統計連接在Internet上的計算機已有上千萬台,而這些計算機可能運行不同的操作系統,有運行Unix的伺服器,也有運行Dos、Windows的PC機和運行MacOS的蘋果機等等,而各種操作系統之間的文件交流問題,需要建立一個統一的文件傳輸協議,這就是所謂的FTP。基於不同的操作系統有不同的FTP應用程序,而所有這些應用程序都遵守同一種協議,這樣用戶就可以把自己的文件傳送給別人,或者從其它的用戶環境中獲得文件。
與大多數Internet服務一樣,FTP也是一個客戶機/伺服器系統。用戶通過一個支持FTP協議的客戶機程序,連接到在遠程主機上的FTP伺服器程序。用戶通過客戶機程序向伺服器程序發出命令,伺服器程序執行用戶所發出的命令,並將執行的結果返回到客戶機。比如說,用戶發出一條命令,要求伺服器向用戶傳送某一個文件的一份拷貝,伺服器會響應這條命令,將指定文件送至用戶的機器上。客戶機程序代表用戶接收到這個文件,將其存放在用戶目錄中。
在FTP的使用當中,用戶經常遇到兩個概念:"下載"(Download)和"上載"(Upload)。"下載"文件就是從遠程主機拷貝文件至自己的計算機上;"上載"文件就是將文件從自己的計算機中拷貝至遠程主機上。用Internet語言來說,用戶可通過客戶機程序向(從)遠程主機上載(下載)文件。
使用FTP時必須首先登錄,在遠程主機上獲得相應的許可權以後,方可上載或下載文件。也就是說,要想同哪一台計算機傳送文件,就必須具有哪一台計算機的適當授權。換言之,除非有用戶ID和口令,否則便無法傳送文件。這種情況違背了Internet的開放性,Internet上的FTP主機何止千萬,不可能要求每個用戶在每一台主機上都擁有帳號。匿名FTP就是為解決這個問題而產生的。
匿名FTP是這樣一種機制,用戶可通過它連接到遠程主機上,並從其下載文件,而無需成為其注冊用戶。系統管理員建立了一個特殊的用戶ID,名為anonymous, Internet上的任何人在任何地方都可使用該用戶ID。
通過FTP程序連接匿名FTP主機的方式同連接普通FTP主機的方式差不多,只是在要求提供用戶標識ID時必須輸入anonymous,該用戶ID的口令可以是任意的字元串。習慣上,用自己的E-mail地址作為口令,使系統維護程序能夠記錄下來誰在存取這些文件。
值得注意的是,匿名FTP不適用於所有Internet主機,它只適用於那些提供了這項服務的主機。
當遠程主機提供匿名FTP服務時,會指定某些目錄向公眾開放,允許匿名存取。系統中的其餘目錄則處於隱匿狀態。作為一種安全措施,大多數匿名FTP主機都允許用戶從其下載文件,而不允許用戶向其上載文件,也就是說,用戶可將匿名FTP主機上的所有文件全部拷貝到自己的機器上,但不能將自己機器上的任何一個文件拷貝至匿名FTP主機上。即使有些匿名FTP主機確實允許用戶上載文件,用戶也只能將文件上載至某一指定上載目錄中。隨後,系統管理員會去檢查這些文件,他會將這些文件移至另一個公共下載目錄中,供其他用戶下載,利用這種方式,遠程主機的用戶得到了保護,避免了有人上載有問題的文件,如帶病毒的文件。
作為一個Internet用戶,可通過FTP在任何兩台Internet主機之間拷貝文件。但是,實際上大多數人只有一個Internet帳戶,FTP主要用於下載公共文件,例如共享軟體、各公司技術支持文件等。 Internet上有成千上萬台匿名FTP主機,這些主機上存放著數不清的文件,供用戶免費拷貝。實際上,幾乎所有類型的信息,所有類型的計算機程序都可以在Internet上找到。這是Internet吸引我們的重要原因之一。
匿名FTP使用戶有機會存取到世界上最大的信息庫,這個信息庫是日積月累起來的,並且還在不斷增長,永不關閉,涉及到幾乎所有主題。而且,這一切是免費的。
匿名FTP是Internet網上發布軟體的常用方法。Internet之所以能延續到今天,是因為人們使用通過標准協議提供標准服務的程序。像這樣的程序,有許多就是通過匿名FTP發布的,任何人都可以存取它們。
Internet中的有數目巨大的匿名FTP主機以及更多的文件,那麼到底怎樣才能知道某一特定文件位於哪個匿名FTP主機上的那個目錄中呢?這正是 Archie伺服器所要完成的工作。Archie將自動在FTP主機中進行搜索,構造一個包含全部文件目錄信息的資料庫,使你可以直接找到所需文件的位置信息。
通過ftp傳輸文件的一般步驟
[編輯本段]
1.在本地電腦上登陸到國際互聯網.
2.搜索有文件共享主機或者個人電腦(一般有專門的FTP伺服器網站上公布的,上面有進入該主機或個人電腦的名稱,口令和路徑).
3.當與遠程主機或者對方的個人電腦建立連接後,用對方提供的用戶名和口令登陸到該主機或對方的個人電腦.
4.在遠程主機或對方的個人電腦登陸成功後,就可以上傳你想跟別人分享的東東或者下載別人授權共享的東東(這里的東東是指能放到電腦里去又能在顯示屏上看到的東東).
5.完成工作後關閉FTP下載軟體,切斷連接.
為了實現文件傳輸,用戶還要運行專門的文件傳輸程序,比如網際快車就有這方面的功能,其它還有很多專門的FTP傳輸軟體,FlashFxp為其中的傑出軟體。有興趣的網友可以試試其他的軟體,如LeapFTP總歸各有各的特色.
FTP協議
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無法和內部網路的客戶端建立一個新的連接,造成無法工作。