LINUX下搭建FTP服務器


FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱為“文傳協議”。用於Internet上的控制文件的雙向傳輸。同時,它也是一個應用程序(Application)。基於不同的操作系統有不同的FTP應用程序,而所有這些應用程序都遵守同一種協議以傳輸文件。在FTP的使用當中,用戶經常遇到兩個概念:"下載"(Download)和"上傳"(Upload)。"下載"文件就是從遠程主機拷貝文件至自己的計算機上;"上傳"文件就是將文件從自己的計算機中拷貝至遠程主機上。用Internet語言來說,用戶可通過客戶機程序向(從)遠程主機上傳(下載)文件。

一般在各種linux的發行版中,默認帶有的ftp軟件是vsftp,從各個linux發行版對vsftp的認可可以看出,vsftp應該是一款不錯的ftp軟件。

搭建Linux FTP服務器的步驟如下:

(1)檢查vsftpd軟件是否安裝

 使用如下命令可以檢測出是否安裝了vsftpd軟件,rpm -qa |grep vsftpd ,例如在我的centos 5.6中顯示的結果如下: 

 

如果沒有安裝的話,可以下載安裝,也可以使用軟件源進行安裝。這里不再贅述。

 

(2)vsftpd軟件的使用 

1)使用vsftpd軟件,主要包括如下幾個命令: 

                啟動ftp:service vsftpd start 

                停止ftp:service vsftpd stop 

                重啟ftp:service vsftpd restart 

 2)或者使用帶有路徑的命令:

  

(3)vsftpd的配置

 ftp的配置文件主要有三個,在centos5.6中位於/etc/vsftpd/目錄下,分別是: 

1)ftpusers    該文件用來指定那些用戶不能訪問ftp服務器。 

2)user_list   該文件用來指示的默認賬戶在默認情況下也不能訪問ftp 

3)vsftpd.conf   vsftpd的主配置文件

 

(4)下面我們使用vi編輯vsftpd的主配置文件:vsftpd.conf文件。

etc/vsftpd/vsftpd.conf是vsftpd的主要配置文件,在此文件中以#開頭的行是注釋行,默認設置如下:

anonymous_enable=YES

#是否允許匿名登錄ftp,YES表示允許。  

#local_enable=YES

#是否允許本地用戶登錄,本地用戶即/etc/passwd內帳號,YES表示允許。

#write_enable=YES

#是否開放寫權限。

#local_umask=022

#設置本地用戶的文件的掩碼是022。

#anon_upload_enable=YES

#是否允許匿名用戶上傳文件。

#anon_mkdir_write_enable=YES

#是否允許匿名用戶創建文件夾。

dirmessage_enable=YES

#當使用者進入某個目錄時,會顯示該目錄需要注意的內容,顯示的檔案預設是.message ,需要手工在該目錄下創建,當然,可以使用message_file設定項目來修訂!

xferlog_enable=YES

#激活上傳下載日志,由xferlog_file決定日志文件名。

connect_from_port_20=YES

#啟用FTP數據端口的連接請求(ftp-data)。

#chown_uploads=YES

#是否改變上傳文件的屬主,這個屬主可以由chown_username決定。

#chown_username=whoever

#當chown_uploads值為YES時,上傳文件的屬主就是chown_username定義的值了。

#xferlog_file=/var/log/vsftpd.log

#當xferlog_enable的值為YES時,日志將記錄在xferlog_file定義的文件中。

#xferlog_std_format=YES

#是否使用標准的ftp xferlog模式。

#idle_session_timeout=600

#如果使用者在600秒內都沒有命令動作,強制離線!

#data_connection_timeout=120

#如果數據傳送在120秒內都無法傳送成功,那客戶端的聯機就會被vsftpd強制剔除!

#nopriv_user=ftpsecure

#運行vsftpd需要的非特權系統用戶,默認是nobody。

#async_abor_enable=YES

#當設置為允許時,一個特別的FTP命令“異步退出”將生效。

#ascii_upload_enable=YES

#是否允許使用ascii碼方式上傳文件。

#ascii_download_enable=YES

#是否允許使用ascii碼方式下載文件。

#ftpd_banner=Welcome to blah FTP service.

#定制歡迎信息。

#deny_email_enable=YES

#是否禁止匿名用戶使用某些郵件地址。

#banned_email_file=/etc/vsftpd/banned_emails

#當deny_email_enable=YES時,可以利用這個設定項目來規定那個email address 不可登入vsftpd ,在上面設定的檔案內,一行輸入一個email address 即可!

#chroot_local_user=YES

#是否將所有使用者限制在自己的家目錄之內(chroot)。

#chroot_list_enable=YES

#是否啟用將某些用戶限制在它們的家目錄內。

#chroot_list_file=/etc/vsftpd/chroot_list

#如果chroot_list_enable=YES時,可以設定哪些用戶會被限制在自己的家目錄內而無法離開(chroot),一行一個賬號即可!

#ls_recurse_enable=YES

#是否允許使用ls -R等命令。

listen=YES

#開啟ipv4監聽

#listen_ipv6=YES

#開啟ipv6監聽。

pam_service_name=vsftpd

#使用pam模塊控制,vsftpd文件在/etc/pam.d目錄下。

userlist_enable=YES

#此選項被激活后,vsftpd將讀取userlist_file參數所指定的文件中的用戶列表。當列表中的用戶登錄FTP服務器時,該用戶在提示輸入密碼之前就被禁止了。即該用戶名輸入后,vsftpd就直接禁止掉該用戶,不會再進行詢問密碼等后續步驟。

tcp_wrappers=YES

#是否允許tcp_wrappers管理。

 

一般配置的話:

以下幾項需要去掉前面的#號:

anonymous_enable=YES

local_enable=YES

write_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

本配置開通了匿名訪問、匿名上傳和下載等功能。

 

FTP 存放文件默認路徑在/var/ftp/pub目錄下,啟動FTP服務后,可能遇到一些問題,比如不能登錄進去,或者不能寫目錄、寫文件等,需注意的事項是的:

1、pub目錄的權限不能全開,全開會報錯,chmod 755 -R pub

2、但是這樣也會帶來一個問題,當匿名用戶登錄后,在pub下的newftp目錄下想上傳一個文件,會報錯,因為匿名用戶(ftp)無法在該目錄下(該目錄屬於root用戶)創建一個新文件的,因為該目錄下他沒有權限,所以要加入其他用戶(o)的寫權限,chmod o+w /var/ftp/pub/newftp.

現在權限變為:
drwxr-xrwx 2 root root   4096 06-20 16:55 newftp
其實就是757的權限,此時匿名用戶(ftp)就可以在該目錄下上傳文件了。

 

注:

比如ftp的默認目錄是/var/ftp 想把/mnt/WinSoft文件夾,映射到/var/ftp目錄中
先在/var/ftp目錄中建一個目錄
#mkdir /var/ftp/WinSoft
然后執行mount命令
#mount --bind /mnt/WinSoft /var/ftp/WinSoft
這樣就OK了,還可以通過ln的方式處理。

 

Linux及Windows下訪問ftp服務只需使用“ftp  IP地址”命令即可:

[root@ftkylin ~]# service vsftpd restart

Shutting down vsftpd:                             [  OK  ]

Starting vsftpd for vsftpd:                          [  OK  ]

[root@ftkylin ~]# ftp 172.19.1.52

Connected to 172.19.1.52 (172.19.1.52).

220 (vsFTPd 2.2.0)

Name (172.19.1.52:root): anonymous

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM