vsftpd极简配置

配置文件在/etc/vsftpd.conf

一键清空

sudo truncate -s 0 /etc/vsftpd.conf

写入

# ============================================
# vsftpd 只读配置 - 禁止匿名,本地用户仅下载
# ============================================

# --- 匿名访问控制 ---
anonymous_enable=NO

# --- 本地用户认证 ---
local_enable=YES

# --- 全局写权限关闭(只读场景核心设置)---
write_enable=NO

# --- 本地用户文件权限掩码 ---
local_umask=022

# --- 下载控制 ---
download_enable=YES

# --- chroot 目录隔离(将用户限制在其家目录)---
chroot_local_user=YES

# --- 指定所有本地用户的根目录 ---
local_root=/data/ftp

# --- 允许 chroot 目录可写(避免登录报错)---
# 仅在使用较新版本 vsftpd 时启用
allow_writeable_chroot=YES

# --- 用户白名单(仅允许指定用户登录)---
userlist_enable=NO
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO

# --- 日志 ---
xferlog_enable=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES

# --- 连接设置 ---
connect_from_port_20=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd

# --- 被动模式端口(便于防火墙放行)---
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

# ---使用 UTF-8 编码 ---
utf8_filesystem=YES

# --- 禁止 root 用户登录(安全加固)---
# root 默认已在 /etc/vsftpd/ftpusers 黑名单中

重启服务

sudo systemctl restart vsftpd
sudo systemctl status vsftpd

放行端口

sudo ufw allow 21
sudo ufw allow 30000:31000/tcp