環境準備
yum install -y vsftpd ftp
systemctl enable vsftpd
systemctl start vsftpd
核心配置檔 /etc/vsftpd/vsftpd.conf
# 基本設定
anonymous_enable=NO # 禁止匿名登入
local_enable=YES # 允許本地用戶
write_enable=YES # 允許寫入
local_umask=022 # 預設權限掩碼
# 目錄限制(安全關鍵)
chroot_local_user=YES # 限制用戶在家目錄
allow_writeable_chroot=YES # 允許家目錄可寫(若需上傳)
# 被動模式(防火牆/NAT 環境必須)
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100
pasv_address=你的公網IP或域名
# 日誌
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
log_ftp_protocol=YES
建立 FTP 專用用戶
useradd -m -d /home/ftpuser -s /sbin/nologin ftpuser
passwd ftpuser # 設定密碼
# 若需限制僅 FTP 登入,shell 設為 /sbin/nologin
防火牆與 SELinux
# firewalld
firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=40000-40100/tcp
firewall-cmd --reload
# SELinux
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
常見問題排查