在树莓派上安装和配置 vsftpd(Very Secure FTP Daemon)服务器的步骤如下:
1. 安装 vsftpd
打开终端,执行以下命令安装 vsftpd:
sudo apt update
sudo apt install vsftpd
安装完成后,vsftpd 会自动启动。可以通过以下命令验证服务状态:
sudo systemctl status vsftpd
2. 备份原始配置文件
在修改配置前,先备份原始配置文件:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup
3. 配置 vsftpd
使用文本编辑器(如 nano 或 vim)打开配置文件:
sudo nano /etc/vsftpd.conf
在文件中进行以下修改:
基础配置
# 禁止匿名访问
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 启用写入权限
write_enable=YES
# 本地用户上传文件的默认权限
local_umask=022
# 启用被动模式(推荐)
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100
用户隔离配置
# 限制用户只能访问自己的主目录
chroot_local_user=YES
# 允许指定用户例外(可选)
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
其他安全设置
# 启用 SSL/TLS 加密(可选)
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
修改完成后,按 Ctrl+O
保存,按 Ctrl+X
退出。
4. 创建允许访问的用户列表(可选)
如果启用了 chroot_list_enable=YES
,需要创建 /etc/vsftpd.chroot_list
文件并添加允许访问的用户:
sudo nano /etc/vsftpd.chroot_list
在文件中每行添加一个用户名(例如 pi
),保存后退出。
5. 创建 FTP 用户和目录
创建一个专门的 FTP 用户(例如 ftpuser
)并设置密码:
sudo adduser ftpuser
按提示设置密码和用户信息。
创建用户的 FTP 目录并设置权限:
sudo mkdir -p /home/ftpuser/ftp/files
sudo chown -R ftpuser:ftpuser /home/ftpuser/ftp
sudo chmod -R 755 /home/ftpuser/ftp
6. 配置防火墙(可选)
如果树莓派启用了防火墙(如 ufw),需要开放 FTP 端口:
sudo ufw allow 20/tcp # FTP 数据端口
sudo ufw allow 21/tcp # FTP 控制端口
sudo ufw allow 40000:40100/tcp # 被动模式端口范围
7. 重启 vsftpd 服务
配置完成后,重启 vsftpd 服务使更改生效:
sudo systemctl restart vsftpd
8. 测试 FTP 连接
使用 FTP 客户端(如 FileZilla、WinSCP 或命令行工具)连接到树莓派的 IP 地址,使用之前创建的用户名(如 ftpuser
)和密码登录。
- 主机:树莓派的 IP 地址(如
192.168.1.100
) - 端口:21
- 用户名:
ftpuser
- 密码:用户密码
常见问题
- 无法连接:检查防火墙设置和 vsftpd 服务状态。
- 权限问题:确保文件目录权限正确(
chmod
和chown
)。 - SSL 证书错误:可生成自签名证书或使用 Let’s Encrypt 证书。
通过以上步骤,你可以在树莓派上成功配置一个安全的 FTP 服务器,限制用户访问特定目录,并支持文件上传和下载。