FTP(文件傳輸協(xié)議)是一種用于在網(wǎng)絡(luò)上進(jìn)行文件傳輸?shù)臉?biāo)準(zhǔn)協(xié)議。盡管現(xiàn)在有更多現(xiàn)代替代方案(如SFTP),但FTP因其簡(jiǎn)單、兼容性廣,在很多場(chǎng)景下,如網(wǎng)站后臺(tái)文件管理、企業(yè)內(nèi)部文件共享等,依然非常實(shí)用。
本文將手把手教您如何在Linux系統(tǒng)的云服務(wù)器上,使用最流行的 vsftpd(Very Secure FTP Daemon)軟件來(lái)搭建一個(gè)安全可靠的FTP服務(wù)器。我們將以恒訊科技的云服務(wù)器為例,但步驟適用于任何品牌的云服務(wù)器。
在開(kāi)始之前,請(qǐng)確保您擁有:
一臺(tái)云服務(wù)器:您需要一臺(tái)已安裝Linux操作系統(tǒng)(如CentOS、Ubuntu)的云服務(wù)器。例如,您可以從恒訊科技官網(wǎng)購(gòu)買(mǎi)一臺(tái)入門(mén)級(jí)云服務(wù)器,通常選擇CentOS 7.x或Ubuntu 20.04 LTS等穩(wěn)定版本。
SSH登錄權(quán)限:您能夠使用SSH密鑰或密碼遠(yuǎn)程登錄到您的服務(wù)器。
云平臺(tái)安全組配置權(quán)限:這是關(guān)鍵一步!云服務(wù)器通常通過(guò)“安全組”來(lái)充當(dāng)防火墻。您需要登錄到恒訊科技的管理控制臺(tái),找到您云服務(wù)器的安全組規(guī)則。
使用SSH客戶(hù)端(如PuTTY、Terminal)連接到您的云服務(wù)器。
對(duì)于CentOS/RHEL系統(tǒng):
bash
# 更新yum包管理器
sudo yum update -y
# 安裝vsftpd
sudo yum install vsftpd -y
對(duì)于Ubuntu/Debian系統(tǒng):
bash
# 更新apt包管理器
sudo apt-get update
# 安裝vsftpd
sudo apt-get install vsftpd -y
安裝完成后,啟動(dòng)vsftpd服務(wù)并設(shè)置為開(kāi)機(jī)自啟:
bash
# 啟動(dòng)服務(wù)
sudo systemctl start vsftpd
# 設(shè)置開(kāi)機(jī)自啟
sudo systemctl enable vsftpd
vsftpd的主配置文件是 /etc/vsftpd/vsftpd.conf。在修改之前,建議先備份原文件。
bash
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
然后使用文本編輯器(如vim或nano)編輯配置文件:
bash
sudo vim /etc/vsftpd/vsftpd.conf
找到并修改以下關(guān)鍵參數(shù),如果行首有#注釋?zhuān)?qǐng)將其刪除:
ini
# 禁止匿名用戶(hù)登錄(提高安全性)
anonymous_enable=NO
# 允許本地系統(tǒng)用戶(hù)登錄
local_enable=YES
# 允許用戶(hù)有寫(xiě)權(quán)限(上傳、刪除文件)
write_enable=YES
# 設(shè)置本地用戶(hù)創(chuàng)建文件的默認(rèn)權(quán)限
local_umask=022
# 禁止用戶(hù)離開(kāi)其主目錄(將其禁錮在自己的目錄中,非常重要?。?/span>
chroot_local_user=YES
allow_writeable_chroot=YES
# 被動(dòng)模式配置(PASV),這對(duì)云服務(wù)器至關(guān)重要!
# 請(qǐng)將下面的 [您的云服務(wù)器公網(wǎng)IP] 替換為您云服務(wù)器的實(shí)際公網(wǎng)IP地址
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=[您的云服務(wù)器公網(wǎng)IP] # 例如 pasv_address=123.123.123.123
被動(dòng)模式(PASV)解釋?zhuān)河捎贔TP客戶(hù)端與服務(wù)器之間存在防火墻(云安全組),主動(dòng)模式常常會(huì)失敗。被動(dòng)模式要求服務(wù)器開(kāi)放一個(gè)端口范圍供客戶(hù)端連接,配置此項(xiàng)是成功連接的關(guān)鍵。
保存并退出編輯器。
這是讓外網(wǎng)能夠訪問(wèn)到您FTP服務(wù)的關(guān)鍵。登錄到恒訊科技的管理控制臺(tái):
找到您的云服務(wù)器實(shí)例。
進(jìn)入其關(guān)聯(lián)的安全組規(guī)則配置頁(yè)面。
確保已開(kāi)放以下端口:
端口21(FTP命令端口):這是必須的。
端口30000-31000(FTP被動(dòng)模式端口范圍):這個(gè)范圍必須與配置文件中 pasv_min_port 和 pasv_max_port 一致。
在恒訊科技的安全組規(guī)則中,添加入站規(guī)則如下:
協(xié)議:TCP,端口:21,源:0.0.0.0/0(或您指定的IP段以增強(qiáng)安全)
協(xié)議:TCP,端口:30000-31000,源:0.0.0.0/0(或您指定的IP段)
出于安全考慮,不建議直接使用root用戶(hù)進(jìn)行FTP登錄。我們創(chuàng)建一個(gè)新用戶(hù),例如 ftpuser。
bash
# 創(chuàng)建用戶(hù),并指定其主目錄,例如 /home/ftpuser
sudo useradd -d /home/ftpuser -m ftpuser
# 為該用戶(hù)設(shè)置密碼
sudo passwd ftpuser
系統(tǒng)會(huì)提示您輸入兩次新密碼,請(qǐng)牢記這個(gè)密碼,它將用于FTP登錄。
默認(rèn)情況下,由于我們開(kāi)啟了 chroot_local_user=YES,該用戶(hù)將被限制在自己的 /home/ftpuser 目錄下,無(wú)法訪問(wèn)系統(tǒng)的其他部分。
讓所有配置生效:
bash
sudo systemctl restart vsftpd
現(xiàn)在,您可以使用FTP客戶(hù)端(如FileZilla、WinSCP)進(jìn)行測(cè)試了。
主機(jī)/地址:您的云服務(wù)器公網(wǎng)IP
用戶(hù)名:ftpuser
密碼:您設(shè)置的密碼
端口:21
在FileZilla中,建議將“傳輸模式”設(shè)置為“被動(dòng)(PASV)”。
連接失敗? 首先檢查安全組規(guī)則是否已正確配置,并確保 pasv_address 填寫(xiě)了正確的公網(wǎng)IP。
權(quán)限錯(cuò)誤? 確保FTP用戶(hù)對(duì)其主目錄有讀寫(xiě)權(quán)限(chmod 755 /home/ftpuser)。
更安全的選擇:SFTP 如果您僅需要通過(guò)SSH管理文件,實(shí)際上無(wú)需搭建FTP。因?yàn)镾SH服務(wù)器默認(rèn)就提供了SFTP功能,它更安全(加密傳輸),且無(wú)需額外配置防火墻規(guī)則。您可以直接使用SSH用戶(hù)憑據(jù)通過(guò)FileZilla等客戶(hù)端連接(協(xié)議選擇SFTP)。
SSL/TLS加密:對(duì)于更高安全要求,可以考慮配置vsftpd使用FTPS,對(duì)傳輸過(guò)程進(jìn)行加密。
通過(guò)以上六個(gè)步驟,您已經(jīng)在恒訊科技的云服務(wù)器上成功搭建了一個(gè)安全可用的FTP服務(wù)器。整個(gè)過(guò)程的核心在于:
正確安裝和配置vsftpd,特別是被動(dòng)模式參數(shù)。
在云平臺(tái)安全組中開(kāi)放正確的端口范圍。
希望這篇教程能幫助您輕松實(shí)現(xiàn)文件傳輸?shù)男枨?。恒訊科技的云服?wù)器性能穩(wěn)定、網(wǎng)絡(luò)優(yōu)質(zhì),為這類(lèi)應(yīng)用的穩(wěn)定運(yùn)行提供了堅(jiān)實(shí)的基礎(chǔ)。如果您在操作中遇到任何問(wèn)題,可以隨時(shí)參考恒訊科技官方文檔或聯(lián)系技術(shù)支持獲取幫助。
Copyright ? 2013-2020. All Rights Reserved. 恒訊科技 深圳市恒訊科技有限公司 粵ICP備20052954號(hào) IDC證:B1-20230800.移動(dòng)站


