Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

阿里雲 Linux 伺服器搭建 vsftpd FTP 服務完整實戰:從 yum 源更新到防火牆放行

編輯:關於 Linux

阿里雲 ECS (CentOS/RedHat 系列) 預設安全組與系統防火牆雙重阻擋,搭建 FTP 需同時處理:yum 源可用性、vsftpd 安裝配置、帳號建立、SELinux 布爾值、安全組規則、系統防火牆放行。本文提供端到端實戰流程。

阿里雲 FTP 搭建架構圖

一、更新 yum 源 (阿里雲內網源極快)

# 備份原源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
# 下載阿里雲 CentOS 7 源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 或 CentOS 8/9
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo

yum clean all
yum makecache

二、安裝 vsftpd

yum install vsftpd -y
systemctl enable --now vsftpd

三、建立 FTP 專用帳號 (禁止 Shell 登入)

# 確認 nologin 路徑
which nologin
# /usr/sbin/nologin 或 /sbin/nologin

# 建立帳號,家目錄指向 /ftp
useradd -d /ftp -s /sbin/nologin ftpuser
passwd ftpuser  # 設定密碼

# 目錄權限
chown -R ftpuser:ftpuser /ftp
chmod 750 /ftp

四、配置 vsftpd.conf (關鍵安全設定)

vim /etc/vsftpd/vsftpd.conf
# 修改/確認以下項目:
anonymous_enable=NO           # 禁用匿名
local_enable=YES              # 啟用本地用戶
write_enable=YES              # 允許寫入
chroot_local_user=YES         # 限制用戶在家目錄 (防目錄遍歷)
allow_writeable_chroot=YES    # 允許家目錄可寫 (配合 chroot)
pasv_enable=YES               # 被動模式
pasv_min_port=40000
pasv_max_port=40100           # 被動模式端口範圍 (需防火牆放行)
utf8_filesystem=YES           # 中文檔名支援
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
log_ftp_protocol=YES

五、SELinux 布爾值 (必開,否則 500 OOPS/553 錯誤)

setsebool -P ftpd_full_access on
setsebool -P ftp_home_dir on
# 驗證
getsebool -a | grep ftp

六、系統防火牆放行 (firewalld/iptables)

# firewalld (CentOS 7+)
firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=40000-40100/tcp  # 被動模式端口
firewall-cmd --reload

# iptables (CentOS 6)
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
iptables -I INPUT -p tcp --dport 40000:40100 -j ACCEPT
service iptables save

七、阿里雲安全組規則 (控制台操作)

  • 入方向:TCP 21 (命令端口)、TCP 40000-40100 (被動模式數據端口)
  • 授權對象:0.0.0.0/0 (或限定辦公室公網 IP 段)

八、驗證連線

# 本機測試
ftp localhost
# 遠端測試 (FileZilla / WinSCP / 命令列)
ftp <公網IP>
# 應成功登入、列出目錄、上傳下載檔案

常見錯誤對照表

錯誤原因解決
500 OOPS: cannot change directorySELinux 阻擋setsebool -P ftpd_full_access on
553 Could not create file目錄權限或 SELinuxchown ftpuser:ftpuser /ftp; setsebool -P ftp_home_dir on
425 Failed to establish connection被動模式端口未放行防火牆/安全組放行 40000-40100
530 Login incorrect帳號密碼錯誤或 nologin 未加入 /etc/shellsecho /sbin/nologin >> /etc/shells

依序完成七大步驟,阿里雲 ECS 上的 vsftpd 即可穩定、安全地提供 FTP 服務。

Copyright © Windows教程網 All Rights Reserved