面向初學者的vsftpd安裝指南
在最新的各大發行版中的安裝盤中都有vsFTPd的軟件包,您用相應發行版提供的軟件包管理工具就能安裝上;當然您可以到各大發行版的FTP鏡像中找到vsftpd的軟件包;當然也能用軟件包的管理工具在線安裝;vsftpd的軟件包本來不大,花不了多長時間,兩分鐘就夠了吧。因為本文是初學者教程,我嚴重推薦您用發行版提供的軟件來安裝,不推薦您自己來編譯源碼包的安裝方式;
如果您用的是Fedora 或Redhat 系統,可以用下面的命令在線安裝;
[root@localhost ~]# yum install vsftpd
如果是debian 類系統,可以用apt 來在線安裝;
[root@localhost ~]# apt-get install vsftpd
如果您是RPM的系統,也可以找到vsftpd-xxxx.rpm 的包來通過rpm命令來安裝;
[root@localhost ~]# rpm -ivh vsftpd*.rpm
您可以下載源碼包來安裝
比如我們下載的是 vsftpd-2.0.3.tar.gz ;
[root@localhost ~]# tar zxvf vsftpd-2.0.3.tar.gz [root@localhost ~]# cd vsftpd-2.0.3 [root@localhost ~]# make ;make install [root@localhost ~]# cp vsftpd.conf /etc
然后修改/etc/vsftpd.conf ,在配置文件的最后一行加入下面一行;
listen=yes
源碼包安裝的方法,如果您的系統是RPM包管理的系統,可以刪除/etc/xinetd.d/vsftpd 這個文件;然后啟動xinetd 服務器;
[root@localhost ~]# /etc/init.d/xinetd restart
停止 xinetd: [ 確定 ]
啟動 xinetd: [ 確定 ]
vsFTPd運行有兩種模式,在RPM包管理的系重審統,大多是由Fedora/Redhat 開發而來,對于這樣的系統有xinted服務器一說;對于非RPM包管理的系統,一般沒有xinted這一說。為了保證本文檔的統一,我們都不要用xinetd模式,而用initd運行模式來啟動和管理服務器,也就是獨立運行模式。
什么是xinetd模式和initd模式
像其它守護程序一樣,vsftpd提供了standalone和inetd(inetd或xinetd)兩種運行模式。簡單解釋一下, standalone一次性啟動,運行期間一直駐留在內存中,優點是對接入信號反應快,缺點是損耗了一定的系統資源,因此經常應用于對實時反應要求較高的專業FTP服務器。inetd恰恰相反,由于只在外部連接發送請求時才調用FTP進程,因此不適合應用在同時連接數量較多的系統。此外,inetd模式不占用系統資源。除了反應速度和占用資源兩方面的影響外,vsftpd還提供了一些額外的高級功能,如inetd模式支持per_IP(單一IP)限制,而 standalone模式則更有利于PAM驗證功能的應用。
1.xinetd運行模式
大多數較新的系統采用的是xinetd超級服務守護進程。使用“vi /etc/xinetd.d/vsftpd” 看一下它的內容,如下:
disable = no
socket_type = stream
wait = no
# 這表示設備是激活的,它正在使用標準的TCP Sockets。
如果“/etc/vsftpd.conf”中的有選項為“listen=YES”,注銷它
最后,重啟xinetd,命令如下:
$ /etc/rc.d/init.d/xinetd restart
需要注意的是,“/etc/xinetd.d”目錄中僅能開啟一個FTP服務。
2.standalone模式
standalone模式便于實現PAM驗證功能。進入這種模式首先要關閉xinetd下的vsftpd,設置
“disable = yes”,或者注銷掉“/etc/inetd.conf”中相應的行。然后修改“/etc/vsftpd.con
f”中的選項為“listen=YES”。
如果是standlone模式,那么它是作為單獨的一個服務啟動的,不需要系統協作,不作為系統服務,
如果要是成為xinetd模式,那么它的服務就要受系統服務的限制,比如創建一個新的服務進程,但是也有缺點,如果xinetd服務本身出了問題,那么相關的服務也是會受到影響的。
xinetd模式和standalone模式的區別
以xinetd模式運行的服務表示該服務進程并不以守護進程執行,以FTPD進程為例吧,以xinetd模式運行這個服務,情況是這樣的,本身FTP服務是會監聽21號端口的,但是以這種模式運行這個服務的話,21號端口則由xinetd進程來監聽(此時FTPD服務并沒有運行),如果你的網卡接收到有21號端口請求,則有xinetd進程會去調用FTPD程序,將在21號端口接收到的請求數據移交給FTPD進程去處理,處理完后FTPD進程退出,而xinetd進程繼續監聽21號端口,這有點類似windows的svhost進程;而以 standalone模式運行的服務則是服務進程,如ftpd以守護進程在內存中運行,接收到21號端口的請求后由FTPD進程fork出一個子進程進行處理,而原進程繼續監聽21號端口。
相關文章:
