基于 ECS 搭建 FTP 服務
ECS:雲伺服器 (Elastic Compute Service, 簡稱 ECS) 是一種處理能力可彈性伸縮的計算伺服器
FTP:檔案傳輸協定(File Transfer Protocol,FTP),在網絡上進行檔案傳輸的一套标準協定,工作在應用層,使用TCP協定進行傳輸
第一步:建立伺服器資源
在學習界面的左側建立臨時伺服器資源,建立完成之後即可看到伺服器相關資訊,比較重要的就是:IP 位址、使用者名和登入密碼。
第二步:遠端連接配接 ECS 伺服器
- 打開終端工具(我這裡用的是 PowerShell),去檢查你的 ssh 工具是否正常;

- 通過 ssh 指令連結我們的遠端伺服器;
第三步:安裝 vsftpd
- 使用
包管理器安裝所要使用的yum
;vsftpd
yum install -y vsftpd
- 啟動 FTP 服務,并将我們的 FTP 服務設定為開機自啟動;
設定開機自啟動 systemctl enable vsftpd.service 啟動 FTP 服務 systemctl start vsftpd.service 檢視 FTP 服務運作的端口 netstat -antup | grep ftp
第四步:配置 vsftpd
vsftpd(very secure FTP daemon)是一款在Linux發行版中最受推崇的FTP伺服器。vsftpd支援匿名通路和本地使用者模式兩種通路方式。匿名通路方式任何使用者都可以通路搭建的FTP服務;本地使用者模式隻支援添加的本地使用者通路搭建的FTP服務。
說明: 匿名使用者模式和本地使用者模式隻可同時配置一種。
匿名使用者模式
- 使用 vim 修改配置檔案vsftpd.conf,将匿名上傳權限 anon_upload_enable=YES 的注釋解開;
vim /etc/vsftpd/vsftpd.conf
進入編輯模式,将
anon_upload_enable=YES
前的 '#' 去掉,取消注釋;
按下
ecs
退出編輯模式,輸入
:wq
對檔案進行儲存;
- 更改 /var/ftp/pub 目錄的權限,為 FTP 使用者添加寫權限;
chmod o+w /var/ftp/pub/
- 重新開機FTP服務。
systemctl restart vsftpd.service
本地使用者模式
- 為FTP服務建立一個Linux使用者并設定密碼;
添加使用者 adduser ftptest 設定密碼 passwd ftptest
- 建立一個供 FTP 服務使用的檔案目錄;
mkdir /var/ftp/test
- 更改 /var/ftp/test 目錄的擁有者為 ftptest ;
chown -R ftptest:ftptest /var/ftp/test
- 修改 vsftpd.conf 配置檔案;
配置FTP為主動模式請執行如下指令:
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 #設定本地使用者登入後所在的目錄
配置FTP為被動模式請執行如下指令:
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 #設定被動模式下,建立資料傳輸可使用的端口範圍的最大值
- 在 /etc/vsftpd 目錄下建立 chroot_list 檔案,并在檔案中寫入例外使用者名單。
vim /etc/vsftpd/chroot_list
說明: 沒有例外使用者時,也必須建立 chroot_list 檔案,内容可為空。
-
systemctl restart vsftpd.service
第五步:測試連結是否正常
打開 Chrome 浏覽器,在位址欄中輸入
ftp://<FTP伺服器公網IP位址>:FTP端口
,FTP 伺服器公網 IP 位址為 ECS 伺服器的彈性IP位址。
環境配置成功!!!