1. 安装并启动
bash
apt update
apt install vsftpd -y
systemctl start vsftpd
systemctl enable vsftpd
2. 准备目录
bash
mkdir -p /opt/ftp
chmod 755 /opt/ftp
3. 创建 FTP 用户
建议不要直接用 root 登录 FTP。
bash
useradd -d /opt/ftp -s /usr/sbin/nologin ftpuser
passwd ftpuser
chown ftpuser:ftpuser /opt/ftp
如果后面登录报 530 Login incorrect,再检查 /etc/shells 里是否有 /usr/sbin/nologin,没有就补一行。
4. 修改配置
bash
cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
nano /etc/vsftpd.conf
关键配置改成这样:
ini
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
allow_writeable_chroot=YES
local_root=/opt/ftp
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100
保存后重启:
bash
systemctl restart vsftpd
5. 放行端口
如果有防火墙:
bash
ufw allow 21/tcp
ufw allow 40000:40100/tcp
ufw reload
6. 测试
bash
ftp 127.0.0.1
输入用户名 ftpuser 和刚才设置的密码。登录后根目录就是 /opt/ftp。
注意
- 如果提示
500 OOPS: writable root inside chroot,把/opt/ftp权限改成755,或者把allow_writeable_chroot=YES确认已开启。 - 如果这台机器在公网,FTP 是明文传输,长期用建议改用 SFTP,直接用 SSH 账号登录,不需要额外装服务。