目錄
FTP SERVER

本文是以 CentOS 架構作的說明,您若是需要了解 Ubuntu 架設 FTP Server 請參閱我們另一篇文章:架設 FTP 伺服器 – 如何在 Ubuntu 上架設 FTP 伺服器
FTP SERVER 架設 簡介
vsftpd(very secure FTP daemon)是一個廣泛使用的、開源的 FTP Server 軟體,以其高效能、高安全性和穩定性著稱,支援多種 FTP 相關協議,包括 FTP、SFTP(通過SSH)、TLS/SSL 加密的 FTP 等。本文介紹如何在TAKI Cloud 的 Linux系統雲端主機上執行個體上安裝並配置 vsftpd。
FTP SERVER 架設 準備資源
FTP SERVER 架設 操作步驟
步驟一:安裝 vsftpd
- 遠端連線Linux執行個體,具體操作,請透過 putty 或是利用終端機執行 ssh 指令並登入帳號與密碼或密鑰認證登入 Linux 執行個體。
- 執行以下命令,安裝 vsftpd。
yum install -y vsftpd
出現類似如下圖所示介面時,表示 vsftpd 安裝成功。

- 執行以下命令,啟動FTP服務,並設定開機自啟動。
systemctl start vsftpd
systemctl enable vsftpd
- 網路環境不支援 IPv6 時,在/etc/vsftpd/vsftpd.conf 配文檔案中,將 listen_ipv6=YES 修改為 listen_ipv6=NO。
- MAC地址不匹配時,運行 ifconfig 命令查看 MAC 地址,並在 /etc/sysconfig/network-scripts/ifcfg-xxx 設定檔中新增或修改 HWADDR=(mac地址)。
- 執行以下命令,查看FTP服務監聽的連接 port 位。
netstat -antup | grep ftp
出現如下圖所示介面,表示 FTP Server 已啟動,監聽的連接 port 號碼為 21。
此時,vsftpd 預設已開啟匿名訪問功能,您無需輸入使用者名稱密碼即可登入 FTP 伺服器,但沒有修改或上傳檔案的許可權。

步驟二:配置 vsftpd
- 建立一個 Linux 使用者並設定密碼。FTP 支援以下三種認證模式:
- 匿名使用者模式:任何人無需密碼驗證就可以直接登入到 FTP Server。這種模式最不安全,一般只用來儲存不重要的公開檔案,不推薦在生產環境中使用。
本機使用者模式:通過 Linux 系統本地帳號進行驗證的模式,相較於匿名使用者模式更安全。
虛擬使用者模式:FTP Server 的專有使用者。虛擬使用者只能訪問 Linux 系統為其提供的FTP 服務,而不能訪問 Linux 系統的其他資源,進一步增強了FTP Server 的安全性。
- 運行以下命令,為 FTP 服務建立一個 Linux 使用者。本樣本中,該使用者名稱為 takitest。
adduser takitest
- 執行以下命令,修改 takitest 使用者的密碼。
passwd takitest
執行命令後,根據命令列提示完成 FTP 使用者的密碼修改。

- 執行以下命令,建立一個供 FTP 服務使用的檔案目錄。
mkdir -p /var/ftp/test
- 執行以下命令,建立測試檔案。該測試檔案用於 FTP 用戶端訪問 FTP Server 時使用。
touch /var/ftp/test/testfile.txt
- 執行以下命令,更改 /var/ftp/test 目錄的擁有者為 takitest。
chown -R takitest:takitest /var/ftp/test
- 修改 vsftpd.conf 設定檔。
a. 執行以下命令,開啟 vsftpd 的設定檔。
vim /etc/vsftpd/vsftpd.conf
b. 按 i 進入編輯模式。
c. 配置 FTP Server 工作模式。
FTP伺服器支援以下兩種工作模式:
主動模式(Active Mode):用戶端向 FTP Server 傳送 port 資訊,由伺服器主動串連該連接 port。
- 被動模式(Passive Mode):FTP Server 開啟並傳送 port 資訊給用戶端,由用戶端串連該連接 port,伺服器被動接受串連。
本文介紹配置 FTP Server 為被動模式。具體的配置參數說明如下,除下面提及的參數,其他參數保持預設值即可。
修改下列參數的值:
#禁止匿名登入FTP伺服器。
anonymous_enable=NO
#允許本機使用者登入FTP伺服器。
local_enable=YES
#監聽IPv4 sockets。
listen=YES
在行首添加 # 注釋掉以下參數,關閉監聽 IPv6 sockets:
#listen_ipv6=YES
在設定檔的末尾添加下列參數,其中 pasv_address 需修改為 FTP Server 的外網 IP 地址。
#設定本機使用者登入後所在目錄。
local_root=/var/ftp/test
#全部使用者被限制在主目錄。
chroot_local_user=YES
#啟用例外使用者名稱單。
chroot_list_enable=YES
#指定例外使用者列表檔案,列表中使用者不被鎖定在主目錄。
chroot_list_file=/etc/vsftpd/chroot_list
#開啟被動模式。
pasv_enable=YES
allow_writeable_chroot=YES
#本教程中為Linux執行個體的公網IP。
pasv_address=
#設定被動模式下,建立資料轉送可使用的連接埠範圍的最小值。
#建議您把連接埠範圍設定在一段比較高的範圍內,例如50000~50010,有助於提高訪問 FTP Server 的安全性。
pasv_min_port=50000
#設定被動模式下,建立資料轉送可使用的連接埠範圍的最大值。
pasv_max_port=50010
更多參數的詳細資料,請參見 vsftp設定檔及參數說明。
d. 按 Esc 鍵,輸入:wq,按 Enter 鍵關閉並儲存設定檔。
- 建立 chroot_list 檔案,並在檔案中寫入例外使用者名稱單。
a. 執行以下命令,建立 chroot_list 檔案。
vim /etc/vsftpd/chroot_list
b. 按 i 進入編輯模式。
c. 輸入例外使用者名稱單。此名單中的使用者不會被鎖定在主目錄,可以訪問其他目錄。
d. 按 Esc 鍵,輸入:wq,按 Enter 鍵關閉並儲存設定檔。
- 執行以下命令,重啟 vsftpd 服務。
systemctl restart vsftpd
步驟三:設定安全性群組
搭建好 FTP 網站後,在執行個體安全性群組的入方向添加規則並允許存取下列 FTP 連接 port。
被動模式需開放 21 連接 port,以及 /etc/vsftpd/vsftpd.conf 設定檔中參數 pasv_min_port 和 pasv_max_port 之間的所有連接 port。配置詳情如下表所示。
規則方向 | 授權策略 | 協議類型 | 連接埠範圍 | 授權對象 |
入方向 | 允許 | 自訂TCP | 21/21 | 所有要訪問FTP伺服器的用戶端公網IP地址,多個地址之間用逗號隔開。 允許所有用戶端訪問時,授權對象為0.0.0.0/0。 |
入方向 | 允許 | 自訂TCP | pasv_min_port /pasv_max_port 。例如:50000/50010 | 所有要訪問FTP伺服器的用戶端公網IP地址,多個地址之間用逗號隔開。 允許所有用戶端訪問時,授權對象為0.0.0.0/0。 |
步驟四:測試搭建的 FTP Server
FTP用戶端、Windows 命令列工具或瀏覽器均可用來測試 FTP Server。本文以Windows 10 64位系統的本地主機作為 FTP 用戶端,介紹 FTP Server 的訪問步驟。
- 在本地主機,開啟這台電腦。
- 在地址欄中輸入ftp://<FTP Server 外網 IP 地址>:<FTP 連接 port>,本文中為 Linux 執行個體的內網 IP 地址。例如:ftp://192.168.XX.XX:21。
- 在彈出的登入身份對話方塊中,輸入已設定的 FTP 使用者名稱和密碼,然後單擊登入。登入後,您可以查看到 FTP Server 指定目錄下的檔案,例如:測試檔案 testfile.txt。

vsftp 設定檔及參數說明
/etc/vsftpd 目錄下檔案說明如下:
- /etc/vsftpd/vsftpd.conf 是 vsftpd 的核心設定檔。
- /etc/vsftpd/ftpusers 是黑名單檔案,此檔案中的使用者不允許訪問FTP伺服器。
- /etc/vsftpd/user_list是 白名單檔案,此檔案中的使用者允許訪問FTP伺服器。
vsftpd.conf 設定檔參數說明如下:
使用者登入控制參數說明如下表所示。
參數 說明 anonymous_enable=YES 接受匿名使用者 no_anon_password=YES 匿名使用者login時不詢問口令 anon_root=(none) 匿名使用者主目錄 local_enable=YES 接受本機使用者 local_root=(none) 本機使用者主目錄 - 使用者權限控制參數說明如下表所示。
參數 | 說明 |
write_enable=YES | 可以上傳檔案(全域控制) |
local_umask=022 | 本機使用者上傳的檔案許可權 |
file_open_mode=0666 | 上傳檔案的許可權配合umask使用 |
anon_upload_enable=NO | 匿名使用者可以上傳檔案 |
anon_mkdir_write_enable=NO | 匿名使用者可以建目錄 |
anon_other_write_enable=NO | 匿名使用者修改刪除 |
chown_username=lightwiter | 匿名上傳檔案所屬使用者名稱 |
常見問題
您需要根據以下操作步驟,開啟IE瀏覽器的下載許可權。
在本地主機中開啟IE瀏覽器。
在瀏覽器的右上方單擊
表徵圖,然後單擊Internet 選項。
在Internet 選項對話方塊的頂部,單擊安全頁簽。
在選擇一個地區以查看或更改安全設定地區,單擊Internet,然後在該地區的安全層級地區,單擊自訂層級。
選擇下載 > 檔案下載 > 啟用,然後單擊確定。
單擊應用,然後單擊確定。
您可以根據 FTP 的報錯資訊手動排查問題。當您的報錯難以排查解決時,建議您使用第三方 FTP 用戶端串連工具。例如:FileZilla。下載地址為FileZilla。本樣本介紹使用FileZilla串連匿名模式的FTP伺服器。
配置 vsftpd 為匿名模式。
運行以下命令,修改設定檔
/etc/vsftpd/vsftpd.conf
。如果您在安裝 vsftpd 時,使用的是
apt install vsftpd
安裝命令,則設定檔路徑為/etc/vsftpd.conf
。vim /etc/vsftpd/vsftpd.conf
按
i
進入編輯模式。將匿名上傳許可權的注釋去掉,修改為
anon_upload_enable=YES
。按
Esc
退出編輯模式,然後輸入:wq
並斷行符號以儲存並關閉檔案。
修改後的設定檔,如下圖所示。
- 運行以下命令更改
/var/ftp/pub
目錄的許可權,為FTP使用者添加寫入權限。
/var/ftp/pub
為FTP服務預設的檔案目錄。
/var/ftp/pub
為FTP服務預設的檔案目錄。
chmod o+w /var/ftp/pub/
運行以下命令重新載入設定檔。
systemctl restart vsftpd
下載並安裝 FileZilla。
通過 FileZilla 串連匿名模式的 FTP Server。
開啟 FileZilla 用戶端。
在頂部功能表列,選擇檔案 > 站台管理員。
在站台管理員對話方塊的左下角,單擊新增站台(N)。
輸入新網站的名稱,並完成網站配置。
以下介面為 3.68.1 版本的 FileZilla,其他版本的 FileZilla 介面可能有所不同。
圖示紅框是需填入的資訊
具體的配置項說明如下:
新網站名稱:您自訂的網站名稱。例如
test-01
。協議:FTP-檔案傳輸通訊協定。
主機:FTP Server 外網 IP 地址。本文中為 Linux 執行個體的外網 IP 地址,例如
211.23.XX.XX
。連接埠:21。
登入類型:一般。
本樣本中使用 FTP 用戶端串連一般模式的 FTP Server。所以您需要使用 FTP 使用者密碼串連FTP Server,則登入類型需要設定為正常,並需要配置使用者和密碼資訊。
單擊連線(C)。
連線成功後,您可以對檔案進行上傳、下載和刪除等操作。FileZilla 工具介面如下圖所示。
圖中各地區的資訊說明如下表所示。
序號
說明
①
顯示命令、FTP串連狀態和任務執行結果。
②
本地地區,顯示本地主機的目錄資訊。
③
遠程地區,顯示FTP伺服器的目錄資訊。匿名模式下,預設目錄為
/pub
。④
記錄地區,可查看FTP任務的隊列資訊和日誌資訊。