基于ECS搭建FTP服務
1. 資源建立
- 這裡直接使用阿裡雲提供的免費伺服器,單擊【免費開通】

- 可以看到其為我們提供了使用者名 & 密碼 & IP位址,接下來隻需要登入遠端伺服器即可
2. 遠端連接配接ECS伺服器
- 這裡我使用 Xshell軟體進行連接配接(Xshell 用起來還是很友善的,大家可以自行下載下傳一下,或者使用别的軟體連接配接也可以)
- 登入成功後如下:
3. 安裝 vsftpd
vsftpd(very secure FTP daemon):FTP伺服器
- 匿名通路:任何使用者都可以通路搭建的FTP服務
- 本地使用者模式:隻支援添加的本地使用者通路搭建的FTP服務
- 安裝指令
yun install -y vsftpd
-y 表示安裝過程中提示選擇全部為 “yes”
- 顯示如下則安裝成功
- 設定FTP服務開機自啟動
- 指令:
systemctl enable vsftpd.service
- 顯示如下則設定成功:
ECS 7天實踐訓練營-Day01-基于ECS搭建FTP伺服器基于ECS搭建FTP服務
- 指令:
- 啟動FTP服務
-
systemctl start vsftpd.service
- 什麼都沒顯示就是成功
ECS 7天實踐訓練營-Day01-基于ECS搭建FTP伺服器基于ECS搭建FTP服務
-
- 檢視FTP服務監聽的端口
-
netstat -antup | grep ftp
- 可以看到,FTP服務已啟動,監聽的端口号為21
ECS 7天實踐訓練營-Day01-基于ECS搭建FTP伺服器基于ECS搭建FTP服務
-
此時,vsftpd預設已開啟匿名通路功能,無需輸入使用者名和密碼即可登入FTP伺服器,但沒有修改或上傳檔案的權限
4. 配置 vsftpd
- 上面已經介紹了vsftpd服務有
和匿名使用者模式
兩種通路方式,下面我們一起來了解一下這兩種方式的配置方式本地使用者模式
4.1 匿名使用者模式
- 修改配置檔案
vsftpd.conf
-
vim /etc/vsftpd/vsftpd.conf
vim大家應該都很熟悉了,不會的同學可以到網上找一下教程學習一下基本操作
- 我們先找到
(匿名上傳權限) 這一行,按 i 進行并編輯,取消其注釋,然後按 ESC 鍵退出編輯模式,輸入anon_upload_enable=YES
儲存并退出:wq
ECS 7天實踐訓練營-Day01-基于ECS搭建FTP伺服器基于ECS搭建FTP服務 -
- 更改 /var/ftp/pub 目錄的權限,為FTP使用者添加寫權限
-
chmod o+w /var/ftp/pub/
- 運作後如下
ECS 7天實踐訓練營-Day01-基于ECS搭建FTP伺服器基于ECS搭建FTP服務
-
- 重新開機FTP服務
-
systemctl restrat vsftpd.service
ECS 7天實踐訓練營-Day01-基于ECS搭建FTP伺服器基于ECS搭建FTP服務
-
- 配置後以後我們通過浏覽器通路一下,打開浏覽器,輸入網址
,例如我通路的位址為ftp://<FTP伺服器公網IP位址>:FTP端口
。可以看到,我們無需輸入使用者名和密碼即可通路,通路結果如下:ftp://139.196.209.227:21
4.2 本地使用者模式
4.2.1 使用者 & 檔案目錄建立
- 為FTP服務建立一個Linux使用者
-
adduser ftptest
ECS 7天實踐訓練營-Day01-基于ECS搭建FTP伺服器基于ECS搭建FTP服務
-
- 為剛才建立的使用者設定密碼
-
passwd ftptest
- 在輸密碼的時候出于安全保護螢幕上是不顯示的
ECS 7天實踐訓練營-Day01-基于ECS搭建FTP伺服器基于ECS搭建FTP服務
-
- 建立一個供FTP服務使用檔案目錄
-
mkdir /var/ftp/test
ECS 7天實踐訓練營-Day01-基于ECS搭建FTP伺服器基于ECS搭建FTP服務
-
- 更改 /var/ftp/test 目錄的擁有者為 ftptest【剛才建立的使用者】
-
chown -R ftptest:ftptest /var/ftp/test
ECS 7天實踐訓練營-Day01-基于ECS搭建FTP伺服器基于ECS搭建FTP服務
-
4.2.2 vsftpd.conf 檔案配置【主動模式 or 被動模式】
在配置之前先大概了解一下主動模式和被動模式
- 主動模式:伺服器的資料端口20主動連接配接用戶端的資料端口【對FTP伺服器端的管理有利,對用戶端的管理不利】
- 被動模式:用戶端主動跟伺服器的20端口進行連接配接【對FTP用戶端的管理有利,對伺服器端的管理不利】
4.2.2.1 主動模式
- 指令如下,直接複制過去運作就ok了
sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登入FTP伺服器 sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #監聽IPv4 sockets sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #關閉監聽IPv6 sockets sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部使用者被限制在主目錄 sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #啟用例外使用者名單 sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外使用者清單檔案,清單中的使用者不被鎖定在主目錄 echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #設定本地使用者登入後所在的目錄
4.2.2.2 被動模式
- 指令如下
sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登入FTP伺服器 sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #監聽IPv4 sockets sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #關閉監聽IPv6 sockets sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部使用者被限制在主目錄 sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #啟用例外使用者名單 sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外使用者清單檔案,清單中的使用者不被鎖定在主目錄 echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #設定本地使用者登入後所在的目錄 echo "pasv_enable=YES" >> /etc/vsftpd/vsftpd.conf #開啟被動模式 echo "pasv_address=<FTP伺服器公網IP位址>" >> /etc/vsftpd/vsftpd.conf #本教程中為ECS伺服器彈性IP echo "pasv_min_port=20" >> /etc/vsftpd/vsftpd.conf #設定被動模式下,建立資料傳輸可使用的端口範圍的最小值 echo "pasv_max_port=21" >> /etc/vsftpd/vsftpd.conf #設定被動模式下,建立資料傳輸可使用的端口範圍的最大值
4.2.3 例外使用者名單
- 在 /etc/vsftpd 目錄下建立 chroot_list 檔案,在檔案中寫入例外使用者名單
-
vim /etc/vsftpd/chroot_list
- 使用vim指令編輯
檔案,添加例外使用者名單。此名單中的使用者不會被鎖定在主目錄,可以通路其他目錄。chroot_list
-
注意:沒有例外使用者時,也必須建立chroot_list檔案,内容可為空。
- 最後重新開機FTP服務即可
-
systemctl restart vsftpd.service
-
4.2.4 測試
- 同樣,我們在浏覽器輸入
,我通路的位址為ftp://<FTP伺服器公網IP位址>:FTP端口
。可以看到,在設定為本地使用者模式的情況下,我們需要輸入使用者名和密碼登入才可進行通路,我們輸入剛才建立的使用者ftp://139.196.209.227:21
和自己設定好的密碼進行通路ftptest
- 登入成功後界面如下,此時我們就可以對FTP檔案進行相應權限的操作