ftp客戶端課程設計
Ⅰ 如何架設簡單的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用戶設置磁碟空間,點擊「計算當前」,可以知道當前目前下的所有空間大小,在「最大」一欄中填入你想要限制的容量。
最後有一點,改過設置後一定要點擊右鍵,選擇「應用」使設置生效才行,否則一切都白做了。
Ⅱ 文件傳送協議是什麼 客戶端與FTP伺服器交互步驟介紹【詳解】
文件傳送協議,文件傳送協議是什麼意思
FTP是一尺慎種Internet文件傳輸服務,它在Internet和TCP/IP網路中運作。FTP基本上是一種客戶/伺服器協議,在此協議中運行FTP伺服器的系統接受來自運行FTP客戶端的系統的命令。它的主要目的是允許文件從一個主機傳送到另一個主機,而其他的應用系統像網路文件系統(Network File System,NFS)是用來存取遠程文件中的數據的。FTP在各種不同的系統中運作並允許一個系統中的用戶與其他類型的系統進行交互,只要其網路協議是TCP/IP,而不用在意其操作系統。
FTP客戶端運行一種互動式的、命令驅動的、基於文本的介面。盡管FTP有很多嚴格的規定,但它確實支持許多不同的文件類型和文件組織形式。終端用戶調用一個前端應用連到遠程系統,在FTP命令的提示下,就可以進行不同的操作。從客戶到伺服器的命令和從伺服器到客戶的應答都是以7位ASCII碼格式經由控制連接傳送的,因此FTP命令是直觀可讀的。用於分割相繼的命令或應答的是一個回車符和一個換行符。每個命令由4個大寫的ASCB字元構成,有些命令帶有可選的參數。
下面描述了客戶端與FTP伺服器進行交互的基本步驟:
1.啟動FTP命令介面。
2.鍵入?以獲取命令幫助。
3.使用命令open以指定要訪問的FTP伺服器的IP地址或域名。
4.登錄(在公共站點,鍵入anonymous作為登錄名稱)。
5.使用dir或Is命令以列出FTP伺服器中的文件。
6.使用cd命令切換目錄。
7.使用get命令下載文件或put命令上載文件。
8.鍵入close以關閉當前會話(鍵入open可訪問其他的伺服器)。
9.鍵入quit 以結束程序。
在大多數情況下,這些步驟代表您同FTP伺服器進行交互時將要做的大部分事情。就像剛才提到的那樣,您可以鍵入?以查看命令的完整列表,您會發現很多命令。許多FTP作站點使用最小限度的文件訪問安全性,因為他們是向公眾提供文件。這些站點被稱為匿名FTP站點。如第4步中所述,您可以簡單地鍵入anonymous作為您的登錄名稱,然後鍵入電子郵件地址(或其他任何東西)作為您的密碼。
FTP可以在許多不同的文件系統間工作,所以用戶必須清楚FTP伺服器上的文件類型可能與他們的系統不兼容。通常所有的人都能夠查看文本(txt)文件,而且新的通用文件類型如Adobe的PDF(頁面描述語言)也使得這個問題不再是一個很大的問題。還有一件事是:在下載圖形文件或可執行文件之前要鍵入binary;在下載文本文件之前要鍵入ascii。
實際上,FTP客戶端也處理很多命令。它首先翻譯用戶命令,然後使用FTP協議向FTP伺服器發送請求。
命令和數據是通過兩個不同的連接發送的。當您啟動FTP並連接到FTP伺服器時,某個連接針對此伺服器打開,並在您鍵入 close命令之前它將一直保持打開狀態(持續的)。當您請求文件傳輸時,文件的數據讓纖在其他連接中被傳輸,在文件傳輸完成時,此連接將掛斷。因此,如果要傳輸多個文件,典型的FTP會話可能同時有若干個公開的連接。對單個控制和數據使用這種方案意味著在傳輸數據時可使用控制連接。
多年來,多個RFC中都有對FTP的定義。原始的規范要追溯到1971年。有關FTP的最新的文檔是RFC959,〞File Transfer Protocol″(October 1985)。一個非常有用的文坦困仿檔是RFC1635,〞How to Use Anonymous FTP″(Mayl994)。還有一些相關的RFC,包括RFC783,″The TFTP Protocol″(June 1981)。它描述了“一般文件傳輸協議”,該協議是FTP的精簡版,在UDP而不是在TCP中運行。
IETF工作組,也稱為“FTP的擴展(ftpext)”,發展了FTP。
Ⅲ 求用java寫一個ftp伺服器客戶端程序。
import java.io.*;
import java.net.*;public class ftpServer extends Thread{ public static void main(String args[]){
String initDir;
initDir = "D:/Ftp";
ServerSocket server;
Socket socket;
String s;
String user;
String password;
user = "root";
password = "123456";
try{
System.out.println("MYFTP伺服器啟動....");
System.out.println("正在等待連接....");
//監聽21號埠
server = new ServerSocket(21);
socket = server.accept();
System.out.println("連接成功");
System.out.println("**********************************");
System.out.println("");
InputStream in =socket.getInputStream();
OutputStream out = socket.getOutputStream();
DataInputStream din = new DataInputStream(in);
DataOutputStream dout=new DataOutputStream(out);
System.out.println("請等待驗證客戶信息....");
while(true){
s = din.readUTF();
if(s.trim().equals("LOGIN "+user)){
s = "請輸入密碼:";
dout.writeUTF(s);
s = din.readUTF();
if(s.trim().equals(password)){
s = "連接成功。";
dout.writeUTF(s);
break;
}
else{s ="密碼錯誤,請重新輸入用戶名:";<br> dout.writeUTF(s);<br> <br> }
}
else{
s = "您輸入的命令不正確或此用戶不存在,請重新輸入:";
dout.writeUTF(s);
}
}
System.out.println("驗證客戶信息完畢...."); while(true){
System.out.println("");
System.out.println("");
s = din.readUTF();
if(s.trim().equals("DIR")){
String output = "";
File file = new File(initDir);
String[] dirStructure = new String[10];
dirStructure= file.list();
for(int i=0;i<dirStructure.length;i++){
output +=dirStructure[i]+"\n";
}
s=output;
dout.writeUTF(s);
}
else if(s.startsWith("GET")){
s = s.substring(3);
s = s.trim();
File file = new File(initDir);
String[] dirStructure = new String[10];
dirStructure= file.list();
String e= s;
int i=0;
s ="不存在";
while(true){
if(e.equals(dirStructure[i])){
s="存在";
dout.writeUTF(s);
RandomAccessFile outFile = new RandomAccessFile(initDir+"/"+e,"r");
byte byteBuffer[]= new byte[1024];
int amount;
while((amount = outFile.read(byteBuffer)) != -1){
dout.write(byteBuffer, 0, amount);break;
}break;
}
else if(i<dirStructure.length-1){
i++;
}
else{
dout.writeUTF(s);
break;
}
}
}
else if(s.startsWith("PUT")){
s = s.substring(3);
s = s.trim();
RandomAccessFile inFile = new RandomAccessFile(initDir+"/"+s,"rw");
byte byteBuffer[] = new byte[1024];
int amount;
while((amount =din.read(byteBuffer) )!= -1){
inFile.write(byteBuffer, 0, amount);break;
}
}
else if(s.trim().equals("BYE"))break;
else{
s = "您輸入的命令不正確或此用戶不存在,請重新輸入:";
dout.writeUTF(s);
}
}
din.close();
dout.close();
in.close();
out.close();
socket.close();
}
catch(Exception e){
System.out.println("MYFTP關閉!"+e);
}
}}
Ⅳ FTP客戶端程序設計(java)
mina.apache.org 伺服器端,客戶端都有!開源的!
Ⅳ 怎麼在學校的區域網內建個ftp伺服器
一、用IIS架設
如果只是想建個小型的同時在線用戶數不超過10個的FTP伺服器,且不會同時進行大流量的數據傳輸,可以用IIS5.0作為伺服器軟體來架設(IIS只適用於WindowsNT/2000/XP操作系陪培缺統)。
1.安裝
WindowsXP默認安裝時不安裝IIS組件,需要手工添加安裝。進入控制面板,找到「添加/刪除程序」,打開後選擇「添加/刪除Windows組件」,在彈出的「Windows組件向導」窗口中,將「Internet信蘆辯息服務(IIS)」項選中。在該選項前的「√」背景色是灰色的,這是因為WindowsXP默認並不安裝FTP服務組件。再點擊右下角的「詳細信息」,在彈出的「Internet信息服務(IIS)」窗口中,找到「文件傳輸協議(FTP)服務」,選中後確定即可。
安裝完後需要重啟。WindowsNT/2000和WindowsXP的安裝方法相同。
2.設置
電腦重啟後,FTP伺服器就開始運行了,但還要進行一些設置。點擊「開始→所有程序→中清管理工具→Internet信息服務」,進入「Internet信息服務」窗口後,找到「默認FTP站點」,右擊滑鼠,在彈出的右鍵菜單中選擇「屬性」。在「屬性」中,我們可以設置FTP伺服器的名稱、IP、埠、訪問賬戶、FTP目錄位置、用戶進入FTP時接收到的消息等。
1)FTP站點基本信息
進入「FTP站點」選項卡,其中的「描述」選項為該FTP站點的名稱,用來稱呼你的伺服器,可以隨意填,比如「我的小站」;「IP地址」為伺服器的IP,系統默認為「?全部未分配」,一般不須改動,但如果在下拉列表框中有兩個或兩個以上的IP地址時,最好指定為公網IP;「TCP埠」一般仍設為默認的21埠;「連接」選項用來設置允許同時連接伺服器的用戶最大連接數;「連接超時」用來設置一個等待時間,如果連接到伺服器的用戶在線的時間超過等待時間而沒有任何操作,伺服器就會自動斷開與該用戶的連接。
2)設置賬戶及其許可權
很多FTP站點都要求用戶輸入用戶名和密碼才能登錄,這個用戶名和密碼就叫賬戶。不同用戶可使用相同的賬戶訪問站點,同一個站點可設置多個賬戶,每個賬戶可擁有不同的許可權,如有的可以上傳和下載,而有的則只允許下載。
3)安全設定
進入「安全賬戶」選項卡,有「允許匿名連接」和「僅允許匿名連接」兩項,默認為「允許匿名連接」,此時FTP伺服器提供匿名登錄。「僅允許匿名連接」是用來防止用戶使用有管理許可權的賬戶進行訪問,選中後,即使是Administrator(管理員)賬號也不能登錄,FTP只能通過伺服器進行「本地訪問」來管理。至於「FTP站點操作員」選項,是用來添加或刪除本FTP伺服器具有一定許可權的賬戶。IIS與其他專業的FTP伺服器軟體不同,它基於Windows用戶賬號進行賬戶管理,本身並不能隨意設定FTP伺服器允許訪問的賬戶,要添加或刪除允許訪問的賬戶,必須先在操作系統自帶的「管理工具」中的「計算機管理」中去設置Windows用戶賬號,然後再通過「安全賬戶」選項卡中的「FTP站點操作員」選項添加或刪除。但對於Windows2000和WindowsXP專業版,系統並不提供「FTP站點操作員」賬戶添加與刪除功能,只提供Administrator一個管理賬號。
提示:匿名登錄一般不要求用戶輸入用戶名和密碼即可登錄成功,若需要,可用「anonymous」作為用戶名,以任意電子郵件地址為密碼來登錄。
4)設置用戶登錄目錄
最後設置FTP主目錄(即用戶登錄FTP後的初始位置),進入「主目錄」選項卡,在「本地路徑」中選擇好FTP站點的根目錄,並設置該目錄的讀取、寫入、目錄訪問許可權。「目錄列表樣式」中「UNIX」和「MS-DOS」的區別在於:假設將G?\Ftp設為站點根目錄,則當用戶登錄FTP後,前者會使主目錄顯示為「\」,後者顯示為「G?\Ftp」。
設置完成後,FTP伺服器就算真正建成了。如果前面IP地址為218.1.1.1,則用戶使用FTP客戶端軟體(用來登錄FTP伺服器的上傳/下載軟體,如CuteFTP、FlashFXP等,如無特別說明,本文中所稱FTP客戶端軟體均以CuteFTPPro2.0為例)時,主機處填218.1.1.1,埠填21,此伺服器的地址表述為:ftp?//218.1.1.1?21。IIS雖然安裝簡單,設置較簡便,但功能不強,管理也很麻煩,尤其是連新建一個基本的授權訪問賬戶都要進行繁雜的設置,而且IIS本身的安全性也比較差,容易受到諸如「紅色代碼」等專門針對IIS漏洞進行攻擊的病毒侵襲,因而很多人都喜歡使用第三方的FTP伺服器軟體來架設。
二、用Serv-U等第三方FTP伺服器軟體架設
除IIS外,還有很多FTP伺服器軟體可以架設,如Wu-FTP、ProFtpd、Serv-U等,但大部分只適用於Unix、Linux系統,如果使用Windows系統,強烈推薦使用Serv-U。Serv-U(下載地址:FTPServU.htm,含漢化包)是一種被廣泛運用的FTP伺服器端軟體,支持Windows3x/9x/Me/NT/2000等全Windows系列。它安裝簡單,功能強大,可以用同一個IP設定多個FTP伺服器、限定登錄用戶的許可權、登錄主目錄及空間大小、支持遠程登錄管理等,適合絕大部分個人自建FTP的需要。
1.安裝
Serv-U的安裝比IIS還簡單。先執行英文原版安裝文件,按提示一路「NEXT」即可。要注意的是,在選擇安裝目錄時,最好選擇安裝在一個非系統盤里,以免將來系統發生異常時還要重新進行賬號等的設置。然後執行漢化文件,選擇原版安裝目錄,一路「下一步」即可完成安裝。
2.設置
與IIS不同,Serv-U在第一次運行時會以向導的方式一步一步地提示用戶進行設置,整個過程不超過五分鍾,非常人性化。為了方便說明,先假設我們要架設一個固定IP為218.1.1.1,埠為21,根目錄絕對路徑為G?\Ftp,允許匿名訪問和擁有一個用戶名為dys、密碼為syd、管理賬戶名叫「MyFtp」的公網FTP伺服器。運行Serv-U,彈出向導窗口,依次設置如下選項:
1)「您的IP地址」:這里我們填入218.1.1.1,如果你是ADSL等方式撥號上網,擁有的是動態IP或者不知道本機IP,此處請留空。
2)「域名」:就是該FTP站點的名稱,可以隨意取名,這里填入「MyFtp」。
3)「匿名賬號」:決定該FTP站點是否允許匿名用戶訪問。選擇「是」。
4)「匿名主目錄」:設置匿名用戶登錄站點後所處的目錄位置。輸入「G?\Ftp」。
5)「鎖定於主目錄」:假設在「匿名主目錄」中設置匿名用戶登錄後所處的目錄位置為「G?\Ftp\Guest」,那麼,選擇「是」後,當匿名用戶登錄FTP後,就被鎖定在G?\Ftp\Guest目錄下,只能查看Guest目錄里的內容,不能進入上級目錄「Ftp」,同時該目錄在FTP客戶端軟體中顯示為「\」,如果未被鎖定,則會完整顯示為「G?\Ftp\Guest」。這里選擇「是」。
6)「命名的賬號」:決定是否要創建有一定管理許可權的賬戶。這里選「是」。
7)「賬號名稱」:就是具有一定管理許可權的賬戶登錄名稱。填入「dys」。
8)「賬號密碼」:設置賬戶的登錄密碼。輸入「syd」。
9)「主目錄」:與「匿名主目錄」一樣,用來設置管理賬戶登錄後所處的目錄位置。輸入「G?\Ftp」。
10)「鎖定於主目錄」:選擇「是」。
11)「管理員許可權」:用來設置管理賬戶的管理許可權級別。這里選「無許可權」,後面再詳述。
設置完成,地址為:ftp?//218.1.1.1?21的FTP伺服器就算架設成功了。最後可用CuteFTP分別以匿名和dys的賬戶登錄驗證。
提示:以上這些設置並非最終設定,你還可以在Serv-U主界面中隨時修改。
3.用同一個IP架設多個FTP伺服器
如果帶寬允許的話,你還可利用同一個IP輕松架設多個伺服器。在Serv-U中,將「本地伺服器」下「域」中的每個FTP伺服器稱為「域」,剛才創建的「MyFtp」伺服器就是一個名叫「MyFtp」的域。要架設多個伺服器,實際上就是創建多個擁有不同埠的域而已。
右擊「域」,選「新建域」,在彈出的向導中參照「MyFtp」進行設置,只是在埠處一定不要與已經創建的「域」的埠或被其他系統服務佔用的埠沖突即可。如果填入22,則此伺服器的地址就是:ftp?//218.1.1.1?22。依此而為,就可以架設多個FTP伺服器了。
三、用動態IP域名解析軟體架設擁有固定域名的FTP伺服器
在上面的介紹中,我們假設的是該伺服器擁有218.1.1.1的固定IP,而事實上,大部分想架設個人FTP的用戶通常都是用ADSL等方式撥號上網。由於每次撥號上網後被分配到的IP地址都不相同,那這是否就意味著不能架設FTP伺服器呢?
有兩個解決辦法:一是在剛才向導中的「您的IP地址」中留空,然後完成其它向導設置。進入Serv-U主界面,先點擊菜單欄上的「幫助→本機IP地址」,將本機IP地址復制,再通過其他途徑告知每個用戶。每撥號上網一次就重復此操作一次;二是到網上下載安裝一個動態IP域名解析軟體,如國外的DNS2Go、國內的花生殼、88IP等,此類軟體不管本機的IP如何變化都能將一個固定域名自動解析到本機IP上。這樣,用戶只要輸入這個固定域名作FTP地址就可以訪問到你的伺服器。很明顯,第一種方法相當麻煩,需要你有極大的耐心,第二種就相當簡便,用戶只要記住此域名而不用管IP是否變化。美中不足的是,目前絕大部分此類軟體需要付費注冊才能永久使用,不注冊只能免費使用30天。
我們以88IP為例,來了解它的設置。
假設我們要申請一個域名:dys2.88ip.com。首先如前文所述用Serv-U(IIS和其他FTP伺服器軟體亦可)架設好FTP伺服器,注意將「您的IP地址」處留空,然後到p>
88IP需要付費注冊才能擁有一個永久域名,如果免費注冊則僅能試用15天。運行88IP標准版客戶端,會彈出設置窗口。要獲得一個域名,需要先注冊。在「基本資料」中,依次填寫好用戶登錄名、有效電子郵件地址、密碼和聯系電話,接下來就要選擇你的域名,在「域名資料」中,「域名」框填入dys2,「域名後綴」下拉框里選擇「88ip.com」,這時,下方的「你的完整域名為」會顯示為dys2.88ip.com,確認無誤後,點「注冊」按鈕注冊。如果注冊的用戶名或申請的域名已經被其他用戶注冊過,軟體會做出相應的提示,修改後再次注冊即可。注冊成功後,在「執行狀態」中會顯示「注冊成功,用戶ID:?xxxxxxxx?」,記下用戶ID,以備將來繳費或需要技術支持之用。最後要點擊「裝載」按鈕將剛剛申請成功的賬戶信息裝載至本機上。
Ⅵ 如何搭建ftp伺服器實現文件共享
實現文件雙向傳輸搭建FTP伺服器
FTP(FileTransferProtocol),是文件傳輸協議的簡稱。用於Internet上的控制文件的雙向傳輸。同時,它也是一個應用程序(Application)。用戶可以通過它把自己的PC機與世界各地所有運行FTP協議的伺服器相連,訪問伺服器上的大量程序和信息。
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字元組合不使用它。如果你傳輸二進制文件,所有的位都是重要的。)如果你知道這兩台機器是同樣的,則二進制方式對文本文件和數據文件都是有效的。
FTP的工作方式
FTP支持兩種模式,一種方式叫做Standard(也就是PORT方式,主動方式),一種是Passive(也就是PASV,被動方式)。Standard模式FTP的客戶端發送PORT命令到FTP伺服器。Passive模式FTP的客戶端發送PASV命令到FTPServer。
下面介紹一個這兩種方式的工作原理:
Port模式FTP客戶端首先和FTP伺服器的TCP21埠建立連接,通過這個通道發送命令,客戶端需要接收數據的時候在這個通道上發送PORT命令。PORT命令包含了客戶端用什麼埠接收數據。在傳送數據的時候,伺服器端通過自己的TCP20埠連接至客戶端的指定埠發送數據。
FTPserver必須和客戶端建立一個新的連接用來傳送數據。
Passive模式在建立控制通道的時候和Standard模式類似,但建立連接後發送的不是Port命令,而是Pasv命令。FTP伺服器收到Pasv命令後,隨機打開一個高端埠(埠號大於1024)並且通知客戶端在這個埠上傳送數據的請求,客戶端連接FTP伺服器此埠,然後FTP伺服器將通過這個埠進行數據的傳送,這個時候FTPserver不再需要建立一個新的和客戶端之間的連接。
很多防火牆在設置的時候都是不允許接受外部發起的連接的,所豎團中以許多位於防火牆後或內網的FTP伺服器不支持PASV模式,因為客戶端無法穿過防火牆打開FTP伺服器的高端埠;而許多內網的客戶端不能用PORT模式登陸FTP伺服器,因為從伺服器的TCP20無法和內部網路的客戶端建立一個新的連接,造成無法工作。