CentOS8搭建FTP服務器

1 概述

文章主要講了CentOS8如何利用vsftpd搭建一個FTP服務器,然後進行簡單的匿名上傳/下載與用戶上傳/下載測試,還有使用了wget測試.

2 安裝vsftpd

yum install -y vsftpd

3 開啓服務

service httpd start

4 設置開機啓動

可以用

systemctl list-unit-files | grep vsftpd

查看是否開機啓動.顯示disabled.
在這裏插入圖片描述
通過

chkconfig vsftpd on

開啓自啓,再次執行systemctl,可以看到變成了enabled.

5 修改/etc/vsftpd/vsftpd.conf

sudo vim /etc/vsftpd/vsftpd.conf

首先修改
在這裏插入圖片描述
爲YES.
再添加一行anon_upload_enable=YES
在這裏插入圖片描述
第一行的意思是允許匿名登錄,第二行的意思是允許匿名上傳.
重啓服務.

service vsftpd restart

6 創建測試文件

cd /var/ftp/pub
sudo vim test

在這裏插入圖片描述

7 測試

7.1 瀏覽器測試

7.1.1 匿名測試

ifconfig獲取內網ip,在瀏覽器中輸入ftp://ip.
在這裏插入圖片描述
可以看到有一個pub文件夾,裏面有剛纔新建的test文件.
在這裏插入圖片描述
在這裏插入圖片描述
右鍵保存即可下載文件.
在這裏插入圖片描述
下載完成.
在這裏插入圖片描述
去終端看看.
在這裏插入圖片描述

7.1.2 用戶登錄測試

輸入

ftp://username@ip

在這裏插入圖片描述
再輸入用戶密碼.
默認訪問的是用戶根目錄下的文件,這裏顯示出來了.
在這裏插入圖片描述
下載的話同上,右鍵選擇即可.

7.2 ftp命令測試

首先安裝ftp:

sudo yum install ftp

7.2.1 匿名測試

ftp ip

這裏用戶名選擇ftp,密碼爲空,表示匿名登錄.ftp爲默認的匿名登錄用戶名,至於密碼,可以在/etc/vsftpd/vsftpd.conf中設置一個

no_anon_password=YES

這樣匿名用戶可以不用密碼登錄.
在這裏插入圖片描述

7.2.1.1 上傳測試

直接使用put命令,後面接上文件,這裏的upload.txt是執行ftp之前的所在文件夾下的upload.txt
在這裏插入圖片描述
這裏提示不能創建文件,是權限的原因,要確保/var/ftp/pub對"other"用戶有寫權限.
在這裏插入圖片描述
默認的/var/ftp/pub的權限是644,修改成647.

sudo chmod 647 /var/ftp/pub

同時修改上傳文件的權限,允許other用戶可讀.

sudo chmod 644 /root/upload.txt

如果不行,使用selinux設置.

getsebool -a | grep ftp

在這裏插入圖片描述
把ftpd_full_access開啓:

setsebool ftpd_full_access on

在這裏插入圖片描述
再進入upload.txt所在的文件夾,執行ftp,再次put.
在這裏插入圖片描述
成功!
在這裏插入圖片描述

7.2.1.2 下載測試

直接get文件即可,由於上面已經設置好了權限,所以不會出現問題.
在這裏插入圖片描述
在這裏插入圖片描述
若出現權限問題可從三方面入手:

  • (1)/var/ftp/pub的對other用戶的可讀權限:因爲是下載,而且匿名,所以只需要對other用戶的可讀權限
  • (2)被下載文件的對other用戶的可讀權限
  • (3)selinux的問題,設置ftpd_full_access爲on

7.2.2 用戶登錄測試

執行ftp時用對應用戶名與密碼登錄.
在這裏插入圖片描述
默認進入了用戶根目錄.

7.2.2.1 上傳測試

直接put即可.
在這裏插入圖片描述
在這裏插入圖片描述
若出現權限問題參照上面7.2.1.2的那三條方法.

7.2.2.2 下載測試

隨便在用戶根目錄新建一個文件,這裏是kr.
在這裏插入圖片描述
直接get即可.
在這裏插入圖片描述
在這裏插入圖片描述

7.3 wget測試

wget用來下載文件,初始下載的目錄與ftp登錄時的目錄一致,比如匿名登錄ftp,登錄的是/var/ftp目錄,則wget會從這個/var/ftp目錄下載文件,下載到執行wget命令所在的目錄.使用用戶"kr"登錄ftp,則登錄的是/home/kr目錄,wget會從/home/kr下載文件.

7.3.1 匿名測試

注意,請確保被下載文件對other用戶有可讀權限.

sudo chmod o+w xxxxxx

然後使用wget

wget ftp://ip/pub/xxxx

在這裏插入圖片描述
在這裏插入圖片描述

7.3.2 用戶登錄測試

使用--ftp-user,--ftp-password指定用戶名與密碼,其餘同上.

wget ftp://ip/xxx --ftp-user=xxxx --ftp-password=xxxx

在這裏插入圖片描述
成功.

8 總結

呃....簡單來說,就是先安裝好ftp與vsftpd,然後修改/etc/vsftpd/vsftpd.conf添加相應權限,對於不能上傳與下載的原因,基本上都是權限的問題,主要就是三方面:

  • (1)ftp目錄的權限:比如可以是/var/ftp/pub沒有對應的寫權限導致上傳失敗,沒有對應讀權限導致下載失敗.
  • (2)被上傳文件的權限:比如上傳的文件沒有讀權限導致上傳失敗.
  • (3)selinux:使用setsebool設置爲on.

解決權限問題後,基本就可以通過ftp或wget順利地使用這個ftp服務器上傳/下載文件了.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章