Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> FTP 伺服器

阿里雲 Linux (Red Hat) 搭建 FTP 服務器完整配置指南

編輯:FTP 伺服器

阿里雲環境特殊性說明

  • 預設安全組(防火牆)僅開放 22/80/443/3306 等少量埠,**21/20/被動模式埠口需手動開放**
  • 官方鏡像 yum 源可能較舊,建議先更新至阿里雲內部源(加速下載)
  • 實例規格較小(1C/2G)時,注意 vsftpd 進程數與記憶體限制

部署步驟

1. 更新 yum 源(阿里雲內部源)

# 備份原源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

# 下載阿里雲源(以 CentOS 7 為例,其他版本至 mirrors.aliyun.com 獲取對應 repo)
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/CentOS-7.repo

# 清理快取並重建
yum clean all
yum makecache

注意: 若無法 wget(無公網 IP),可在阿里雲控制台「實例詳情 → 遠程連線 → 工作台」複製源內容手動建立 repo 檔。

2. 安裝 vsftpd

yum install -y vsftpd

3. 建立 FTP 專用帳號與目錄

# 檢查 nologin 路徑(通常 /sbin/nologin 或 /usr/sbin/nologin)
which nologin

# 建立帳號,指定家目錄 /ftp,禁止 Shell 登入
useradd -d /ftp -s /sbin/nologin ftpuser

# 設定密碼
passwd ftpuser

# 設定目錄擁有者與權限
chown -R ftpuser:ftpuser /ftp
chmod 755 /ftp

4. 配置 vsftpd 核心參數

vi /etc/vsftpd/vsftpd.conf

關鍵修改:

# 關閉匿名
anonymous_enable=NO

# 開啟本地用戶與寫入
local_enable=YES
write_enable=YES

# 限制用戶在家目錄(chroot)
chroot_local_user=YES
allow_writeable_chroot=YES   # vsftpd 3.0+ 需此項允許家目錄可寫

# 啟用 ASCII 模式(文字檔換行轉換)
ascii_upload_enable=YES
ascii_download_enable=YES

# 被動模式埠口範圍(需與安全組一致)
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=51000

# 可選:限制速度、連線數
local_max_rate=1048576       # 1 MB/s
max_clients=100
max_per_ip=5

5. 修改 /etc/shells 確保 nologin 合法

vi /etc/shells
# 確認檔案包含 /sbin/nologin 或 /usr/sbin/nologin,否則追加

6. 配置阿里雲安全組(關鍵步驟)

登入阿里雲控制台 → 網路與安全 → 安全組 → 配置規則 → 入方向新增:

協議/埠口授權物件說明
TCP 210.0.0.0/0FTP 控制連線
TCP 200.0.0.0/0主動模式資料埠(少用)
TCP 50000-510000.0.0.0/0被動模式資料埠範圍(對應 pasv_min/max_port)

7. 啟動服務並設定開機自啟

systemctl start vsftpd
systemctl enable vsftpd

8. 驗證測試

# 本機測試
ftp localhost
# 用戶名:ftpuser,密碼:您設定的密碼
# 成功登入後應顯示 230 Login successful,目錄為 /ftp

# 遠端測試(FileZilla/WinSCP/lftp)
# 協議:FTP,加密:僅純 FTP(或要求 TLS),主機:公網 IP,埠口:21,用戶/密碼同上

阿里雲常見坑點對照表

現象原因解決
客戶端連線逾時 / 無法列表安全組未開放被動模式埠口開放 TCP 50000-51000(或您自訂範圍)
500 OOPS: cannot change directorySELinux 阻擋 / 家目錄權限錯誤setsebool -P ftp_home_dir=1;確認目錄 755、擁有者正確
530 Login incorrect帳號在 /etc/vsftpd/ftpusers 或 user_list 禁止名單中編輯兩檔移除該帳號;檢查 PAM 配置
上傳速度極慢local_max_rate 限制 / 實例頻寬上限 / 客戶端網路調整或移除 local_max_rate;確認實例頻寬規格
無法啟動 vsftpd21 埠被佔用 / 配置語法錯誤netstat -nlap | grep :21;vsftpd -olisten=NO /etc/vsftpd/vsftpd.conf 驗證語法

進階:啟用 FTPS (FTP over TLS) 加密傳輸

# 1. 產生自簽憑證(生產環境請用 CA 簽發)
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  -keyout /etc/ssl/private/vsftpd.key \
  -out /etc/ssl/certs/vsftpd.pem \
  -subj "/C=CN/ST=Beijing/L=Beijing/O=MyOrg/CN=ftp.example.com"

# 2. 配置 vsftpd.conf 追加
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

# 3. 重啟服務
systemctl restart vsftpd

FileZilla 連線時選擇「要求 FTP over TLS (FTPS)」,即可加密傳輸帳密與資料。

總結

阿里雲部署 FTP 服務器的核心差異在於安全組配置與yum 源優化。掌握「控制台開放埠口 + vsftpd 被動模式埠口範圍一致」原則,配合標準化部署流程與安全加固,即可獲得穩定、合規的 FTP 服務。

Copyright © Windows教程網 All Rights Reserved