简化 vsftpd 的自动挂载
一、场景与原则
二、方案一 bind 挂载到 vsftpd 目录(最简单)
sudo mkdir -p /data/ftp /var/ftp/pub
sudo chown -R ftp:ftp /var/ftp/pub
sudo chmod -R 755 /var/ftp/pub
sudo mount --bind /data/ftp /var/ftp/pub
echo '/data/ftp /var/ftp/pub none bind 0 0' | sudo tee -a /etc/fstab
sudo mount -a
df -h | grep pub
三、方案二 按需自动挂载本地磁盘到 vsftpd 目录(autofs)
# RHEL/CentOS
sudo yum install -y autofs
# Debian/Ubuntu
sudo apt-get install -y autofs
sudo systemctl enable --now autofs
/ftp /etc/auto.ftp --timeout=300
data -fstype=none,ro,bind :/data/ftp
如需可写,将 ro 改为 rw 并确保目录权限与 vsftpd 配置匹配。ls /ftp/data # 触发挂载
df -h | grep /data/ftp
四、方案三 将远程 FTP 挂载为本地目录供 vsftpd 发布(curlftpfs)
# Debian/Ubuntu
sudo apt-get install -y curlftpfs
# RHEL/CentOS(需 EPEL)
sudo yum install -y epel-release
sudo yum install -y curlftpfs
sudo mkdir -p /mnt/remote_ftp
sudo curlftpfs -o rw,allow_other ftp://user:pass@192.0.2.10/pub /mnt/remote_ftp
echo 'curlftpfs#ftp://user:pass@192.0.2.10/pub /mnt/remote_ftp fuse rw,allow_other,_netdev 0 0' | sudo tee -a /etc/fstab
sudo mount -a
sudo mkdir -p /var/ftp/pub/remote
echo '/mnt/remote_ftp /var/ftp/pub/remote none bind 0 0' | sudo tee -a /etc/fstab
sudo mount -a
remote -fstype=fuse,curlftpfs#ftp://user:pass@192.0.2.10/pub /mnt/remote_ftp
五、安全与运维要点
sudo setsebool -P ftpd_full_access=on
pasv_enable=YES
pasv_min_port=8555
pasv_max_port=8566
pasv_address=203.0.113.10