当前位置: 首页 > 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.dtcms.com/a/270855.html

相关文章:

  • Java 大视界 -- 基于 Java 的大数据分布式计算在生物信息学蛋白质 - 蛋白质相互作用预测中的应用(340)
  • 【算法深练】DFS题型拆解:沿着路径“深挖到底”、递归深入、回溯回探的算法解题思路
  • 【数据分析】多数据集网络分析:探索健康与退休研究中的变量关系
  • ESOP系统电子作业指导汽车零部件车间的数字化革命
  • 玛哈特网板矫平机:精密矫平金属开平板的利器
  • 钉钉企业应用开发技巧:查询表单实例数据新版SDK指南
  • 2023年华为杯研究生数学建模竞赛A题WLAN组网分析
  • 结构体指针:使用结构体指针访问和修改结构体成员。
  • 【网络】Linux 内核优化实战 - net.ipv4.tcp_ecn_fallback
  • softmax
  • GitHub 趋势日报 (2025年07月08日)
  • SQLZoo 练习与测试答案汇总(复杂题有最优解与其他解法分析、解题技巧)
  • 分类预测 | Matlab基于KPCA-ISSA-SVM和ISSA-SVM和SSA-SVM和SVM多模型分类预测对比
  • 打造自己的组件库(二)CSS工程化方案
  • Tensorflow的安装记录
  • 一天一道Sql题(day04)
  • 开源链动2+1模式与AI智能名片融合下的S2B2C商城小程序源码:重构大零售时代新生态
  • 华为静态路由配置
  • linux正向配置dns解析
  • 事件驱动架构
  • 汽车工业制造领域与数字孪生技术的关联性研究​
  • UI前端大数据处理性能评估与优化:基于负载测试的数据处理能力分析
  • 利用Wisdom SSH高效搭建CI/CD工作流
  • python Gui界面小白入门学习
  • # Shell 编程:从入门到实践
  • Android 系统默认代码,如何屏蔽相册分享功能
  • Android 组件内核
  • Go语言高级面试必考:切片(slice)你真的掌握了吗?
  • 设计模式(行为型)-责任链模式
  • golang条件编译:Build constraints