樹莓派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.pswp.cn/diannao/90425.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/90425.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/90425.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

4.服務注冊發現:微服務的神經系統

在微服務架構中,服務之間不再是固定連接,而是高度動態、短暫存在的。如何讓每個服務準確找到彼此,是分布式系統治理的核心問題之一。服務注冊發現機制,正如神經系統之于人體,承擔著連接、協調、感知變化的關鍵角色。 本文將圍繞 Netflix 開源的服務注冊發現組件 Eureka 展…

基于Docker Compose部署Traccar容器與主機MySQL的完整指南

Traccar Docker鏡像內嵌了H2數據庫,該數據庫容量有限,當達到一定容量時,定位數據無法寫入會導致無法定位顯示。為此有必要為Traccar 配置外部數據庫。根據官網文檔和自身經驗我選擇了MySQL。 參考的官方文檔 軟件環境為ubuntu server 24.04版…

paddlehub環境搭建和測試

目錄1.環境搭建1.1 創建conda環境1.2 安裝paddlepaddle和paddlehub1.3 安裝依賴2. 移動端模型部署2.1 安裝移動端模型2.2 測試3. 服務部署3.1 啟動PaddleHub Serving3.2 發送預測請求1.環境搭建 1.1 創建conda環境 conda create --name paddlehub python3.8 conda activate p…

408第三季part2 - 計算機網絡 - ip地址II

理解路由聚合就是從第一個不一樣的往后全置為0題目這里一般來說會到達2個目的地址,但中間有個路由,所以路由聚合一下就行了聚合出來這個然后下一跳就是跳到下一個路由器d前面一樣的不動,不一樣的開始全置為0c再次理解題目這個先匹配169.96.40…

【Unity】MiniGame編輯器小游戲(十一)消消樂【Crush】

更新日期:2025年7月9日。 項目源碼:獲取項目源碼 索引 消消樂【Crush】一、游戲最終效果二、玩法簡介三、正式開始1.定義游戲窗口類2.規劃游戲窗口、視口區域3.方塊 Block①.定義方塊類②.生成方塊所有類型③.生成消消樂棋盤④.繪制收集欄⑤.繪制方塊陣列4.查看方塊擋住的其他…

RK3588 Android SDK 實戰全解析 —— 架構、原理與開發關鍵點

📖 推薦閱讀:《Yocto項目實戰教程:高效定制嵌入式Linux系統》 🎥 更多學習視頻請關注 B 站:嵌入式Jerry RK3588 Android SDK 實戰全解析 —— 架構、原理與開發關鍵點 作者:嵌入式 Jerry 一、前言 隨著 AIoT、工業智…

從救火到賦能:運維的職責演進與云原生時代的未來圖景

引言:刻板印象的瓦解 提起"運維工程師",許多人腦海中可能仍會浮現這樣的畫面:深夜里守著閃爍的監控屏幕、手忙腳亂地重啟服務器、在布滿網線的機房里穿梭…這曾是運維工作的真實片段,但絕非全貌,更非未來。 在云計算、DevOps、SRE理念和云原生技術棧的沖擊下,…

UDP的socket編程

socket接口int socket(int domain, int type, int protocol);參數說明??參數說明domain協議族(地址族),如 AF_INET(IPv4)、AF_INET6(IPv6)type套接字類型,UDP 使用 SOCK_DGRAM&…

基于SD-WAN的管件制造數字化產線系統集成方案

1. 背景與目標隨著制造業向智能化、數字化方向轉型,傳統產線面臨著數據割裂、協同效率低下等問題。管件制造作為典型場景,涉及多環節的設計、制造與質檢流程,亟需一套高效的系統集成方案,保障全流程數據貫通與實時協同。本方案基于…

學習open62541 --- [79] 在docker中運行open62541工程

docker是非常流行的容器技術,解決了部署環境不一致的問題,open62541的工程也可以在docker容器中運行,本文講述如何把open62541工程放到docker容器中運行。 本文使用WSL ubuntu 22.04作為宿主環境,其它linux也是一樣。一 拉取debia…

Spring Boot微服務中集成gRPC實踐經驗分享

Spring Boot微服務中集成gRPC實踐經驗分享 一、業務場景描述 在某電商系統中,推薦服務、庫存服務、訂單服務等微服務需要高效、雙向流式通信,RESTHTTP已無法滿足低延遲、高并發和嚴格類型安全的需求。為此,我們選擇在Spring Boot微服務中集成…

springboot項目編寫測試類,亂碼問題解決

?MockMvc 的默認行為? MockMvc ?默認使用 ISO-8859-1 解碼響應,而服務端實際返回 UTF-8 編碼數據 。 Postman 無亂碼是因瀏覽器自動識別編碼,但 MockMvc 需顯式配置。 ?過濾器失效場景? Spring 的 CharacterEncodingFilter ?默認只對 POST 請求生效…

打破傳統,開啟 AR 智慧課堂?

在教育領域,AR 智慧課堂宛如一場及時雨,為傳統教育模式帶來了革命性的變革,讓學習變得更加生動有趣、高效互動。通過 AR 技術,抽象的知識瞬間變得鮮活起來,學生們可以在虛擬與現實交織的世界中,探索歷史的長…

熱烈祝賀 Flink 2.0 存算分離入選 VLDB 2025

VLDB 2025 論文熱烈祝賀 Apache Flink 2.0 的重磅研究成果《Disaggregated State Management in Apache Flink 2.0 》被數據庫領域頂級會議 VLDB 2025 正式接收!這項工作由 Apache Flink 社區 聯合 阿里巴巴實時計算 Flink 團隊 以及多位學術界研究人員共同完成&…

蓄電池能量管理matlab的simulink仿真

蓄電池能量管理matlab的simulink仿真模型 AlternatorTableData.mat , 7395 Battery_Management_Lib.mdl , 577258 Readme.txt , 1293 license.txt , 1551 ssc_battery_management.mdl , 221248 ssc_lead_acid_battery_50Ah_ini.m , 1760 ssc_lead_acid_battery_80Ah_ini.m , 1…

MyBatisPlus-03-擴展功能

文章目錄【README】【1】基于MyBatisPlus的代碼生成器【2】MyBatisPlus-DB靜態工具【2.1】使用MyBatisPlus的DB靜態工具查詢單個及多個用戶地址【查詢單個用戶的訪問效果】【查詢多個用戶的訪問效果】【3】邏輯刪除【3.1】代碼實現【4】枚舉處理器【4.1】代碼實現【5】JSON處理…

初識Neo4j之Cypher(三)

目錄 一、介紹 二、語法 1、節點 2、關系 3、屬性 4、模式 一、介紹 Cypher 是 Neo4j 的聲明式查詢語言,兼容 GQL 標準。通過 openCypher 項目,Cypher 以開源方式提供。它類似于 SQL,但專為圖數據優化。 Cypher 直觀且接近自然語言&…

19-C#靜態方法與靜態類

C#靜態方法與靜態類 1.static-靜態方法animal.eat();//直接調用 public class animal {public static void eat()//定義靜態方法{messagebox.show("animal eat");} }2.static-靜態類animal.eat();//直接調用public stat…

基于YOLO的足球檢測Web應用:從訓練到部署的完整實戰

用Python和深度學習技術打造一個完整的足球檢測系統,支持圖片檢測、視頻分析和實時監控。本文帶你從零開始構建一個專業的Web應用。🎯 項目背景 在體育賽事分析和足球訓練中,準確識別和定位足球是一個重要需求。本項目利用YOLO深度學習算法&a…

npm 切換 node 版本 和npm的源

在開發過程中,不同項目可能需要不同版本的 Node.js,同時 于由XX原因,我們需要切換npm的源。這時如果需要切換node版本或者npm的源,我們可以使用以下方法。 使用 nvm 切換 Node 版本 1、安裝 npm install nvm -g2、使用 # 列出所有…