当前位置: 首页 > news >正文

树莓派vsftpd文件传输服务器的配置方法

在树莓派上安装和配置 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)和密码登录。Windows cmd命令窗口:>ftp 192.168.1.177(你的服务器地址),按提示输入相应用户名、密码

  • 主机:树莓派的 IP 地址(如 192.168.1.100
  • 端口:21
  • 用户名ftpuser
  • 密码:用户密码

常见问题

  1. 无法连接:检查防火墙设置和 vsftpd 服务状态。
  2. 权限问题:确保文件目录权限正确(chmodchown)。
  3. SSL 证书错误:可生成自签名证书或使用 Let’s Encrypt 证书。

通过以上步骤,你可以在树莓派上成功配置一个安全的 FTP 服务器,限制用户访问特定目录,并支持文件上传和下载。

http://www.lryc.cn/news/583024.html

相关文章:

  • 【02】MFC入门到精通——MFC 手动添加创建新的对话框模板
  • overleaf 改为XeLatex
  • Vue响应式原理四:响应式-监听属性变化
  • 正点原子学习 用户权限管理
  • 【python基础】运算符与布尔值全解析
  • 智慧航天运载体系全生命周期监测 | 图扑数字孪生
  • Shader面试题100道之(41-60)
  • 从0实现线性回归模型
  • vue3.2 前端动态分页算法
  • 「Java案例」打印数字金字塔
  • [Backlog] 核心协调器 | 终端用户界面(TUI)实现 | 多分支任务冲突解决 | 测试验证体系
  • 技术支持丨解决 ServBay 在 Windows 启动时反复提示安装 .NET 的问题
  • Python(30)基于itertools生成器的量子计算模拟技术深度解析
  • 使用LLaMA-Factory微调Qwen2.5-VL-3B 的目标检测任务-数据集格式转换(voc 转 ShareGPT)
  • 【洛谷题单】--顺序结构(一)
  • C++高频知识点(六)
  • [NOIP][C++]洛谷P1376 [USACO05MAR] Yogurt factory 机器工厂
  • LeetCode--42.接雨水
  • C++(STL源码刨析/vector)
  • 从历史航拍图像中去除阴影
  • 11款常用C++在线编译与运行平台推荐与对比
  • 力扣-75.颜色分类
  • Web后端开发-Mybatis
  • qt-C++笔记之setCentralWidget的使用
  • 软件系统测试的基本流程
  • 数据结构*搜索树
  • 从零开始手写嵌入式实时操作系统
  • 牛市来临之际,如何用期权抢占反弹先机?
  • 初识mysql(一)
  • [特殊字符] AlphaGo:“神之一手”背后的智能革命与人机博弈新纪元