Linux下實現(xiàn)FTP虛擬主機(jī)的方法 |
發(fā)布時間: 2012/8/11 10:01:05 |
虛擬主機(jī)是使用軟件技術(shù)把一臺運行在因特網(wǎng)上的服務(wù)器主機(jī)分成一臺臺相對有獨立的域名和IP地址的“虛擬”主機(jī),每一“虛擬”主機(jī)都具有完整的Internet服務(wù)器(WWW、FTP、E-mail等)功能。虛擬主機(jī)之間完全獨立,在外界看來每一臺虛擬主機(jī)和一臺獨立的主機(jī)完全一樣。它解決了網(wǎng)絡(luò)中處于不同域的網(wǎng)絡(luò)段,分別在多臺機(jī)器上安裝FTP服務(wù)器太過浪費的問題。
在Linux下,我們可以用wu-ftp、tftp-server、proftpd、gssftp、vsftp等FTP服務(wù)程序來構(gòu)建FTP服務(wù)器。由于wu-ftp(Washington University Ftp)廣泛使用在各種Linux發(fā)行版本和多種的Unix(其中包括了IBM AIX、FreeBSD、HP-UX、各種BSD、Solaris等)中,同時它在因特網(wǎng)中的占有量超過了50%,并且現(xiàn)在Linux發(fā)行版本中都帶有2.6版本的wu-ftp,因此下面以它為例介紹在Linux下如何實現(xiàn)FTP虛擬主機(jī)。 虛擬主機(jī)安裝要求 wu-ftpd提供了虛擬主機(jī)的功能。它通過一個FTP軟件在同一臺主機(jī)上提供不同F(xiàn)TP服務(wù)器,以主機(jī)名稱或IP來區(qū)分各個不同的虛擬主機(jī)。 wu-ftp有rpm和tar兩種安裝方式。rpm安裝比較簡單,可以直接通過rpm ivh wu-ftp*.rpm 就可以安裝完成。下面主要介紹tar安裝方式。 對于沒有RPM安裝程序包的Linux,可以從http://www.wu-ftpd.org下載一個源程序tar代碼包,這樣可以更好地按照需求來定制wu-ftp所能支持的各種功能,包含一些附加的upload的速率、虛擬主機(jī)等功能。 1.解壓縮包tar -zxvf wu-ftpd-current.tar.gz: #cd wu-ftp 2.配置所需要的附加功能: #./configure --enable-virtual 這個enable-virtual參數(shù)必須進(jìn)行設(shè)定,通過設(shè)定了這個參數(shù),提供虛擬主機(jī)的服務(wù),同時增加了對FTP服務(wù)器的吞吐量,這樣wu-ftp就擁有了虛擬主機(jī)的功能。 3.進(jìn)行編譯及安裝 # make # make install 通過以上各個步驟,就已經(jīng)把服務(wù)器成功地安裝在Linux系統(tǒng)上了,F(xiàn)在系統(tǒng)上應(yīng)該包含了 /etc/ftpaccess /etc/ftpconversions /etc/ftpgroups /etc/ftphosts /etc/ftpusers 配置文件,以及 /usr/bin/ftpcount /usr/bin/ftpwho /usr/sbin/ftprestart /usr/sbin/ftpshut /usr/sbin/in.ftpd等可執(zhí)行的程序,當(dāng)然還包含一些help,man的文檔。只要系統(tǒng)中包含了這些文件,就說明FTP服務(wù)器已經(jīng)安裝成功。 在這些文件中有兩個文件是關(guān)于虛擬主機(jī)配置的,其中ftpservers 文件控制了當(dāng)客戶登陸不同虛擬主機(jī)時候,服務(wù)器采用不同的配置文件來進(jìn)行功能設(shè)置。例如在ftpservers中增加下面兩個語句: 172.20.66.10 /etc/ ftpaccess.1 172.20.66.20 /etc/ ftpaccess.2 這兩行參數(shù)指定了當(dāng)用戶從10 IP訪問的時候,服務(wù)器指定的是ftpaccess.1的配置文件,而當(dāng)用戶從20 IP訪問的時候,服務(wù)器指定的是ftpaccess.2的配置文件。在下面配置虛擬主機(jī)的過程中,需要這個文件的配合使用。 配置虛擬主機(jī) 1.給主機(jī)綁定多IP wu-ftp的虛擬主機(jī)是建立在同一個主機(jī)、不同IP的基礎(chǔ)上,因此要在同一臺機(jī)器上配置多個IP地址。其中一個方法就是在一塊網(wǎng)卡上綁定多個IP地址。 如果機(jī)器上有一塊網(wǎng)卡,并且通過這個網(wǎng)卡來監(jiān)聽FTP的服務(wù)請求,我們就可以通過ifconfig命令來實現(xiàn)這個功能。 # ifconfig eth0:0 172.20.66.2 up # ifconfig eth0:1 172.20.66.3 up 我們設(shè)置兩個FTP虛擬主機(jī),因此就在網(wǎng)卡上綁定兩個IP地址。在Linux中,一個網(wǎng)卡理論上可以綁定16個IP地址。如果讀者不想通過命令來執(zhí)行,也可以自行改變/etc/sysconfig/networking中的配置文件,來達(dá)到同樣目的。 2.配置ftpservers文件 關(guān)于ftpservers文件上面已經(jīng)提到,在此例中可以用到以下的配置: 172.20.66.2 /etc/ftpaccess1 172.20.66.3 /etc/ftpaccess2 該文件給出了存放虛擬主機(jī)配置文件的路徑,在客戶端對FTP服務(wù)器發(fā)出請求的時候,服務(wù)器將客戶端請求的IP在該文件中進(jìn)行查找,看看是否有匹配的配置文件。如果有匹配的配置文件,就調(diào)用該IP地址對應(yīng)的目錄中的配置文件作為該客戶端的配置文件。如果沒有發(fā)現(xiàn)匹配項,就使用默認(rèn)的配置文件。在該文件中用IP地址或主機(jī)名都可以。如果用主機(jī)名,就需要/etc/hosts和DNS的支持,來進(jìn)行解析為最終的IP。由于在配置虛擬主機(jī)中,這個文件是可選的,用戶可以不用為每個虛擬主機(jī)都設(shè)置不同的配置文件,通過在主ftpaccess文件中做一些設(shè)置也可以達(dá)到相應(yīng)目的。我們就通過配置ftpaccess來實現(xiàn)虛擬主機(jī)的功能。 3.配置ftpaccess文件中的虛擬主機(jī)部分 虛擬服務(wù)器的ftpaccess配置文件與不提供虛擬服務(wù)器版本相比,增加了virtia、root、logfile等多個指令,這些都是在編譯源代碼的時候產(chǎn)生的。下面就這些參數(shù)進(jìn)行說明。 (1)virtual virtual 上面各個參數(shù)設(shè)定了虛擬主機(jī)的各種基本配置,其中virtual參數(shù)前綴說明下面的參數(shù)是為了設(shè)定虛擬主機(jī)而設(shè)定的;address指定了虛擬主機(jī)的IP地址,這里應(yīng)該是172.20.66.2和172.20.66.3兩個IP。 下面的參數(shù)都是建立在virtual下面的子參數(shù): ◆ root 指定了該虛擬主機(jī)的ftp根目錄; ◆ banner 指定了該虛擬主機(jī)的系統(tǒng)提示信息; ◆ logfile 指定了該虛擬主機(jī)的日志文件所在的位置; ◆ hostname 指定了該虛擬主機(jī)的主機(jī)名稱; ◆ email 指定了該虛擬主機(jī)管理者的E-mail地址。 比如,在下例中指定了一個虛擬FTP服務(wù)器的配置情況: # 虛擬主機(jī)的配置設(shè)定 virtual 172.20.66.2 root /var/ftp/virtual1 virtual 172.20.66.2 banner /var/ftp/virtual/1.msg virtual 172.20.66.2 logfile /var/log/ftp/virtual/1xferlog virtual 172.20.66.2 hostname 1 virtual 172.20.66.2 email admin@1 virtual 172.20.66.3 root /var/ftp/virtual2 virtual 172.20.66.3 banner /var/ftp/virtual/2.msg virtual 172.20.66.3 logfile /var/log/ftp/virtual/2xferlog virtual 172.20.66.3 hostname 2 本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |