參考網址:
雲伺服器 Linux 雲伺服器搭建 FTP 服務cloud.tencent.com
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SM2YmY4IDZlVWYzczMzcTN4Q2NkJ2MkhjZkRDOiZGOw8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
操作場景
Vsftpd(very secure FTP daemon)是衆多 Linux 發行版中預設的 FTP 伺服器。本文以 CentOS 7.6 64位作業系統的騰訊雲伺服器(CVM)為例,使用 vsftpd 軟體搭建 Linux 雲伺服器的 FTP 服務。
示例軟體版本
本文搭建 FTP 服務組成版本如下:
- Linux 作業系統:本文以公共鏡像 CentOS 7.6 為例。
- Vsftpd:本文以 vsftpd 3.0.2 為例。
操作步驟
步驟1:登入linux伺服器
步驟2:安裝 vsftpd
-
執行以下指令,安裝 vsftpd。
yum install -y vsftpd
-
執行以下指令,設定 vsftpd 開機自啟動。
systemctl enable vsftpd
-
執行以下指令,啟動 FTP 服務。
systemctl start vsftpd
-
執行以下指令,确認服務是否啟動。
netstat -antup | grep ftp
顯示結果如下,則說明 FTP 服務已成功啟動。
此時,vsftpd 已預設開啟匿名通路模式,無需通過使用者名和密碼即可登入 FTP 伺服器。使用此方式登入 FTP 伺服器的使用者沒有權修改或上傳檔案的權限。
步驟3:配置 vsftpd
-
執行以下指令,為 FTP 服務建立使用者,本文以 ftpuser 為例。
useradd ftpuser
-
執行以下指令,設定 ftpuser 使用者的密碼。
passwd ftpuser
輸入密碼後請按
Enter 确認設定,密碼預設不顯示,本文以
為例。tf7295TFY
- 執行以下指令,建立 FTP 服務使用的檔案目錄,本文以
/var/ftp/test
為例。
mkdir /var/ftp/test
-
執行以下指令,修改目錄權限。
chown -R ftpuser:ftpuser /var/ftp/test
- 執行以下指令,打開
vsftpd.conf
檔案。
vim /etc/vsftpd/vsftpd.conf
- 按 i 切換至編輯模式,根據實際需求選擇 FTP 模式,修改配置檔案
vsftpd.conf
:注意:
FTP 可通過主動模式和被動模式與用戶端機器進行連接配接并傳輸資料。由于大多數用戶端機器的防火牆設定及無法擷取真實 IP 等原因,建議您選擇
被動模式 搭建 FTP 服務。如下修改以設定被動模式為例,您如需選擇主動模式,請前往 設定 FTP 主動模式。-
修改以下配置參數,設定匿名使用者和本地使用者的登入權限,設定指定例外使用者清單檔案的路徑,并開啟監聽 IPv4 sockets。
anonymous_enable=NO local_enable=YES chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list listen=YES
- 在行首添加
,注釋#
listen_ipv6=YES
配置參數,關閉監聽 IPv6 sockets。
#listen_ipv6=YES
-
添加以下配置參數,開啟被動模式,設定本地使用者登入後所在目錄,以及雲伺服器建立資料傳輸可使用的端口範圍值。
local_root=/var/ftp/test allow_writeable_chroot=YES pasv_enable=YES pasv_address=xxx.xx.xxx.xx #請修改為您的 Linux 雲伺服器公網 IP pasv_min_port=40000 pasv_max_port=45000
-
- 按 Esc 後輸入 :wq 儲存後退出。
- 執行以下指令,建立并編輯
chroot_list
檔案。
vim /etc/vsftpd/chroot_list
- 按 i 進入編輯模式,輸入使用者名,一個使用者名占據一行,設定完成後按 Esc 并輸入 :wq
儲存後退出。
您若沒有設定例外使用者的需求,可跳過此步驟,輸入
:wq 退出檔案。 -
執行以下指令,重新開機 FTP 服務。
systemctl restart vsftpd
步驟4:設定安全組
搭建好 FTP 服務後,您需要根據實際使用的 FTP 模式給 Linux 雲伺服器放通
入站規則,詳情請參見 添加安全組規則。
大多數用戶端機器在區域網路中,IP 位址是經過轉換的。如果您選擇了 FTP 主動模式,請確定用戶端機器已擷取真實的 IP 位址,否則可能會導緻用戶端無法登入 FTP 伺服器。
- 主動模式:放通端口21。
- 被動模式:放通端口21,及 修改配置檔案 中設定的
到pasv_min_port
之間的所有端口,本文放通端口為40000 - 45000。pasv_max_port
步驟5:驗證 FTP 服務
您可通過 FTP 用戶端軟體、浏覽器或檔案資料總管等工具驗證 FTP 服務,本文以用戶端的檔案資料總管為例。
- 打開用戶端的 IE 浏覽器,選擇【工具】>【Internet 選項】>【進階】,根據您選擇的 FTP 模式進行修改:
- 主動模式:取消勾選【使用被動 FTP】。
- 被動模式:勾選【使用被動 FTP】。
-
打開用戶端的計算機,在路徑欄中通路以下位址。如下圖所示:
ftp://雲伺服器公網IP:21
-
在彈出的“登入身份”視窗中輸入 配置 vsftpd 中已設定的使用者名及密碼。
本文使用的使用者名為
,密碼為ftpuser
。tf7295TFY
- 成功登入後,即可上傳及下載下傳檔案。
附錄
設定 FTP 主動模式
主動模式需修改的配置如下,其餘配置保持預設設定:
anonymous_enable=NO #禁止匿名使用者登入 local_enable=YES #支援本地使用者登入 chroot_local_user=YES #全部使用者被限制在主目錄 chroot_list_enable=YES #啟用例外使用者名單 chroot_list_file=/etc/vsftpd/chroot_list #指定使用者清單檔案,該清單中的使用者不被鎖定在主目錄 listen=YES #監聽IPv4 sockets #在行首添加#注釋掉以下參數 #listen_ipv6=YES #關閉監聽IPv6 sockets #添加下列參數 allow_writeable_chroot=YES local_root=/var/ftp/test #設定本地使用者登入後所在的目錄
按
Esc後輸入
:wq儲存後退出,并前往 步驟8 完成 vsftpd 配置。
FTP 用戶端上傳檔案失敗
問題描述
Linux 系統環境下,通過 vsftp 上傳檔案時,提示如下報錯資訊。
553 Could not create file
解決方法
-
執行以下指令,檢查伺服器磁盤空間的使用率。
df -h
- 如果磁盤空間不足,将會導緻檔案無法上傳,建議删除磁盤容量較大的檔案。
- 如果磁盤空間正常,請執行下一步。
-
執行以下指令,檢查 FTP 目錄是否有寫的權限。
ls -l /home/test # /home/test 為 FTP 目錄,請修改為您實際的 FTP 目錄。
- 若傳回結果中沒有
,則表示該使用者沒有寫的權限,請執行下一步。w
- 若傳回結果中已有
,請 送出工單 進行回報。w
-
執行以下指令,對 FTP 目錄加上寫的權限。
chmod +w /home/test # /home/test 為 FTP 目錄,請修改為您實際的 FTP 目錄。
-
執行以下指令,重新檢查寫的權限是否設定成功。
ls -l /home/test # /home/test 為 FTP 目錄,請修改為您實際的 FTP 目錄。