温馨提示×

linux vsftp怎样开匿名

小樊
33
2026-10-21 08:11:08
栏目: 智能运维

在 Linux 下使用 vsftpd(Very Secure FTP Daemon) 开启匿名访问,一般按下面步骤操作(以常见发行版为例:CentOS / Rocky / Alma / Ubuntu / Debian 均适用)。


一、安装 vsftpd(如未安装)

# CentOS / Rocky / Alma
yum install -y vsftpd

# Ubuntu / Debian
apt update
apt install -y vsftpd

二、修改 vsftpd 配置文件

配置文件通常位于:

/etc/vsftpd/vsftpd.conf   # CentOS 系
/etc/vsftpd.conf          # Ubuntu 系

编辑配置:

vim /etc/vsftpd/vsftpd.conf

确保以下关键配置存在并正确(匿名核心配置):

anonymous_enable=YES
local_enable=YES
write_enable=YES

# 匿名用户根目录(默认即可)
anon_root=/var/ftp

# 是否允许匿名上传(按需开启)
anon_upload_enable=YES

# 是否允许匿名建目录(按需开启)
anon_mkdir_write_enable=YES

# 匿名用户权限掩码
anon_umask=022

⚠️ 注意:

  • 如果只开匿名,可把 local_enable=NO
  • 如果不需要上传,建议关闭 anon_upload_enable

三、匿名目录权限设置(很重要)

vsftpd 默认匿名目录是:

/var/ftp

1️⃣ 确保目录存在

mkdir -p /var/ftp

2️⃣ 设置权限(不能给匿名写根目录)

chown root:root /var/ftp
chmod 755 /var/ftp

3️⃣ 如需要匿名上传,建子目录

mkdir -p /var/ftp/pub
chmod 777 /var/ftp/pub

四、关闭 SELinux 限制(CentOS / Rocky)

如果是 CentOS 系,SELinux 可能拦截:

临时关闭(测试用)

setenforce 0

永久允许 FTP(推荐)

setsebool -P ftpd_full_access on

五、防火墙放行 FTP

# firewalld
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload

# 或 iptables
iptables -A INPUT -p tcp --dport 21 -j ACCEPT

六、启动 vsftpd

systemctl enable vsftpd
systemctl restart vsftpd

七、测试匿名登录

ftp localhost

登录信息:

  • 用户名:anonymous
  • 密码:任意(通常写邮箱)

或用浏览器:

ftp://服务器IP

八、常见问题

❌ 530 Login incorrect

  • 匿名未开启
  • SELinux 未放行
  • 目录权限错误

❌ 550 Permission denied

  • 匿名目录不可写
  • 未开启 anon_upload_enable

如果你告诉我:

  • 系统版本(CentOS / Ubuntu)
  • 是否需要匿名上传
  • 是否配合 被动模式(PASV)

我可以给你一份可直接用的完整配置。

0 踩