本文以 CentOS 7.2 64位系統為例,使用 vsftpd 作為 FTP 服務端,FileZilla 作為客戶端。指導您如何在 Linux 雲服務器上搭建 FTP 服務。
操作步驟
安裝 vsftpd
登錄 Linux 雲服務器。
執行以下命令,安裝 vsftpd。
yum install vsftpd -y
啟動服務
執行以下命令,啟動服務。
systemctl start vsftpd
執行以下命令,確認服務是否啟動。
netstat -tunlp
返回類似如下信息,則表示 vsftpd 服務已經啟動成功。

(可選)驗證 vsftpd 服務
說明:
為了保證 FTP 服務端順利完成配置,您還可以在本地計算機或其他雲服務器上執行以下操作步驟,再次驗證 vsftpd 服務是否啟動成功。以下操作步驟以 Linux 操作系統的本地計算機為例。如果本地計算機為 Windows/Mac OS 操作系統,請確保該計算機已開啟 telnet 功能。
在本地計算機的操作系統界面,執行以下命令,安裝 telnet 服務。
說明:
如果您的本地計算機為 Windows/Mac OS 操作系統,請跳過此步驟。
yum -y install telnet
執行以下命令,測試 vsftpd 服務是否啟動成功
telnet + 雲服務器公網 IP + 21
返回類似如下信息,即表示已經啟動成功。

配置 vsftpd
執行以下命令,打開 vsftpd 配置文件。
vi /etc/vsftpd/vsftpd.conf
按 “i” 或 “Insert” 切換至編輯模式,將文件中的anonymous_enable=YES改為anonymous_enable=NO。如下圖所示:

按 “Esc”,輸入 “:wq”,保存文件並返回。
添加 FTP 用戶
執行以下命令,添加用戶ftpuser1。
useradd -m -d /home/ftpuser1 -s /sbin/nologin ftpuser1
執行以下命令,設置用戶ftpuser1的密碼。
passwd ftpuser1
創建用戶、用戶密碼設置成功。如下圖所示:

常見問題
FTP 客戶端連接超時或者讀取目錄列表失敗
問題描述
部分用戶在本地使用 FTP 客戶端連接時可能遇到連接超時和讀取目錄列表失敗的問題。如下圖所示:

問題出現在 PASV 命令處。原因在於 FTP 協議在騰訊雲網絡架構上的不適。FTP 客戶端默認被動模式傳輸,因此在通信過程中會去尋找服務器端的 IP 地址進行連接,但是由於騰訊雲的公網 IP 不是直接配在網卡上,因此在被動模式下客戶端無法找到有效 IP (只能找到雲服務器內網 IP ,內網 IP 無法直接和公網通信),故無法建立連接。
解決方法
將客戶端傳輸模式改為主動即可。
如果客戶端網絡環境要求被動模式,那么需要在服務端 配置 vsftpd 中的配置文件中新增這些語句:
pasv_address=XXX.XXX.XXX.XXX //(公網 IP)
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=2048
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 目錄。
