在 Ubuntu 上搭建 FTP 服务器并开启匿名访问,最常用的是 vsftpd。下面给你一个清晰可行的步骤(基于 Ubuntu 20.04/22.04/24.04 通用)。
sudo apt update
sudo apt install vsftpd -y
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
sudo nano /etc/vsftpd.conf
确保以下配置存在(没有就加上):
# 允许匿名登录
anonymous_enable=YES
# 匿名用户根目录(默认通常是 /srv/ftp)
anon_root=/srv/ftp
# 匿名用户可下载
anon_world_readable_only=NO
# 如果不允许上传,保持下面关闭
# anon_upload_enable=NO
# anon_mkdir_write_enable=NO
# 本地用户登录(可选)
local_enable=YES
# 写权限(如果你后面要开上传)
write_enable=YES
listen=YES
listen_ipv6=NO
sudo mkdir -p /srv/ftp
sudo chown root:root /srv/ftp
sudo chmod 755 /srv/ftp
放一个测试文件:
echo "anonymous ftp test" | sudo tee /srv/ftp/test.txt
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
ftp localhost
anonymousftp://你的IP
sudo ufw allow 21/tcp
如果是云服务器,还需在安全组放行 21 端口。
在 /etc/vsftpd.conf 中:
anon_upload_enable=YES
anon_mkdir_write_enable=YES
然后:
sudo mkdir /srv/ftp/upload
sudo chown ftp:ftp /srv/ftp/upload
sudo chmod 777 /srv/ftp/upload
⚠️ 匿名写权限非常危险,仅限内网或测试
anonymous_enable=YES755pasv_enable=YES + pasv_min_port/pasv_max_port如果你愿意,我可以帮你只开匿名只读、或配合 nginx 做内网 FTP 的方案。