Linux FTP Server 安装与配置指南
一 环境准备与安装
sudo apt update
sudo apt install vsftpd -y
sudo yum install vsftpd -y
sudo dnf install vsftpd -y
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
sudo systemctl status vsftpd
以上步骤完成后,vsftpd 服务即安装并运行,可继续后续配置。
二 核心配置 vsftpd.conf
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
# 基本访问
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
# 用户隔离(禁出主目录)
chroot_local_user=YES
# 如 chroot 后需要写入,取消下行注释(存在一定安全风险)
# allow_writeable_chroot=YES
# 被动模式(PASV),云服务器或 NAT 环境强烈建议开启
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10100
# 日志
xferlog_enable=YES
xferlog_std_format=YES
sudo systemctl restart vsftpd
上述配置覆盖了本地用户登录、写入、目录隔离与被动模式端口段等关键项,适合大多数内网与云上部署。
三 用户与目录权限
sudo adduser ftpuser
sudo passwd ftpuser
sudo mkdir -p /srv/ftp
sudo chown ftpuser:ftpuser /srv/ftp
sudo chmod 755 /srv/ftp
local_root=/srv/ftp
目录与权限设置完成后,用户即可在受限目录内进行受控的上传与下载。
四 防火墙与被动模式端口
sudo ufw allow 21/tcp
sudo ufw allow 10000:10100/tcp
sudo ufw reload
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --add-port=10000-10100/tcp
sudo firewall-cmd --reload
说明:FTP 控制通道使用 21/TCP,数据通道在主动模式使用 20/TCP,被动模式使用配置段 pasv_min_port–pasv_max_port 的范围。云服务器或位于 NAT 后时,务必开放被动端口段并在客户端使用 PASV 模式。
五 客户端测试与进阶安全
ftp <服务器IP>
# 登录后可使用:put localfile.txt、get remotefile.txt
sudo tail -f /var/log/vsftpd.log