採用vsftpd配置archlinux爲ftp服務器。html
什麼是xinetd模式和initd模式linux
像其它守護程序同樣,vsftpd提供了standalone和inetd(inetd或xinetd)兩種運行模式。簡單解釋一下, standalone一次性啓動,運行期間一直駐留在內存中,優勢是對接入信號反應快,缺點是損耗了必定的系統資源,所以常常應用於對實時反應要求較高的專業FTP服務器。inetd偏偏相反,因爲只在外部鏈接發送請求時才調用FTP進程,所以不適合應用在同時鏈接數量較多的系統。此外,inetd模式不佔用系統資源。除了反應速度和佔用資源兩方面的影響外,vsftpd還提供了一些額外的高級功能,如inetd模式支持per_IP(單一IP)限制,而 standalone模式則更有利於PAM驗證功能的應用。vim
xinetd運行模式windows
大多數較新的系統採用的是xinetd超級服務守護進程。使用「vi /etc/xinetd.d/vsftpd」 看一下它的內容,以下:服務器
disable = no socket_type = stream wait = no # 這表示設備是激活的,它正在使用標準的TCP Sockets。
若是「/etc/vsftpd.conf」中的有選項爲「listen=YES」,註銷它socket
最後,重啓xinetd,命令以下:測試
$ /etc/rc.d/init.d/xinetd restart
須要注意的是,「/etc/xinetd.d」目錄中僅能開啓一個FTP服務。spa
standalone模式.net
standalone模式便於實現PAM驗證功能。進入這種模式首先要關閉xinetd下的vsftpd,設置rest
「disable = yes」,或者註銷掉「/etc/inetd.conf」中相應的行。而後修改「/etc/vsftpd.conf」中的選項爲「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號端口。
安裝vsftpd
sudo pacman -S vsftpd
配置/etc/vsftpd.conf
sudo vim /etc/vsftpd.conf
容許匿名登錄
anonymous_enable=YES
vsftp匿名用戶爲ftp,其根目錄爲/srv/ftp
客戶端登錄測試
響應: 227 Entering Passive Mode (10,0,2,15,104,175).
命令: LIST
錯誤: 20 秒後無活動,鏈接超時
錯誤: 讀取目錄列表失敗
數據端口沒法讀取。
今天看到有人說是內核與seccomp兼容問題,看看如何解決。
解決方案: 在vsftpd.conf中添加
seccomp_sandbox=NO
至此解決了vsftd.conf的問題。
FTP 數字代碼的意義
110 從新啓動標記應答。
120 服務在多久時間內 ready 。
125 數據鏈路端口開啓,準備傳送。
150 文件狀態正常,開啓數據鏈接端口。
200 命令執行成功。
202 命令執行失敗。
211 系統狀態或是系統求助響應。
212 目錄的狀態。
213 文件的狀態。
214 求助的訊息。
215 名稱系統類型。
220 新的聯機服務 ready 。
221 服務的控制鏈接端口關閉,能夠註銷。
225 數據連結開啓,但無傳輸動做。
226 關閉數據鏈接端口,請求的文件操做成功。
227 進入 passive mode 。
230 使用者登入。
250 請求的文件操做完成。
257 顯示目前的路徑名稱。
331 用戶名稱正確,須要密碼。
332 登入時須要帳號信息。
350 請求的操做須要進一部的命令。
421 沒法提供服務,關閉控制連結。
425 沒法開啓數據鏈路。
426 關閉聯機,終止傳輸。
450 請求的操做未執行。
451 命令終止 : 有本地的錯誤。
452 未執行命令 : 磁盤空間不足。
500 格式錯誤,沒法識別命令。
501 參數語法錯誤。
502 命令執行失敗。
503 命令順序錯誤。
504 命令所接的參數不正確。
530 未登入。
532 儲存文件須要帳戶登入。
550 未執行請求的操做。
551 請求的命令終止,類型未知。
552 請求的文件終止,儲存位溢出.
553 未執行請求的的命令,名稱不正確。