天天看點

外網遠端下載下傳樹莓派檔案前言:準備:一、樹莓派通路移動硬碟二、樹莓派安裝FTP伺服器三、修改FRP支援遠端FTP通路四、通過外網遠端下載下傳樹莓派内的檔案遺留問題:結語:

前言:

上一章講到使用frp實作内網穿透達到遠端通路樹莓派的目的,這章在上一章的基礎上接着實作外網下載下傳樹莓派内檔案的功能。

準備:

1、移動硬碟一個(NTFS格式,擴充樹莓派的存儲容量)

2、安裝FileZilla軟體(主流FTP軟體)

一、樹莓派通路移動硬碟

1、移動硬碟通過USB口接入樹莓派中(此處需要為移動硬碟購買一條有外置供電的USB線,樹莓派USB口本身的供電帶不起一個移動硬碟)。

2、因挂載NTFS格式的硬碟預設隻有隻讀權限,是以需要安裝以下工具才能實作寫功能。

#安裝所需軟體包
sudo apt-get install fuse-utils ntfs-3g
#加載核心子產品
modprobe fuse
           

3、執行以下指令挂載移動硬碟。

sudo mount -t ntfs-3g /dev/sda1 /home/mount_disk (裝置符、具體挂載目錄根據實際情況來填)
           

4、設定移動硬碟定時休眠

為了讓硬碟壽命更長,需在不操作硬碟時讓硬碟進入休眠模式。硬碟休眠的常用工具有hdparm, hd-idle 和 sdparm,此處使用hd-idle。(不同的硬碟會适合使用不同的工具)

擷取hd-idle源代碼

wget http://sourceforge.net/projects/hd-idle/files/hd-idle-1.05.tgz
           

解壓目錄并安裝

tar -xvf hd-idle-1.05.tgz && cd hd-idle

dpkg-buildpackage -rfakeroot

sudo dpkg -i ../hd-idle_*.deb
           

編輯配置檔案

sudo vim /etc/default/hd-idle

START_HD_IDLE=true 

HD_IDLE_OPTS="-a sda -i 600 -l /var/log/hd-idle.log" # 調整空閑時間為10分鐘  (60 秒 * 10)
           

重新開機hd-idle服務

sudo service hd-idle restart
           

至此樹莓派已經能成功讀寫并能定時休眠移動硬碟了。

二、樹莓派安裝FTP伺服器

1、執行指令安裝FTP伺服器。

sudo apt-get install vsftpd
           

2、打開FTP伺服器配置檔案

sudo vi /etc/vsftpd.conf
           

3、修改配置檔案以下地方。

anonymous_enable=NO   #表示:不允許匿名通路

local_enable=YES   #設定本地使用者可以通路。

write_enable=YES # 設定可以進行寫操作

local_umask=022 #設定上傳後檔案的權限掩碼。

           

4、配置FTP伺服器支援被動模式

因在使用FRP内網穿透時,通過公網IP使用被動模式通路FTP伺服器會報錯“伺服器發回了不可路由的位址”并且連接配接失敗。

這個問題在百度和谷歌之後,找到一個解決方法:FTP伺服器配置支援被動模式,FTP用戶端使用主動模式連接配接。

故需在vsftpd.conf增加以下配置。

pasv_enable=YES #支援被動模式
pasv_min_port=50000 
pasv_max_port=50002
           

5、啟動FTP伺服器

sudo service vsftpd restart
           

至此樹莓派已配置完畢FTP伺服器。

三、修改FRP支援遠端FTP通路

1、執行指令pkill frpc結束正在運作的frpc程序。

2、修改frpc.ini檔案,在檔案結尾添加一下内容。

[ftp21]
type = tcp
local_ip = 127.0.0.1
local_port = 21    #FTP預設端口
remote_port = 2121 #遠端通路端口

[ftp1]
type = tcp
local_ip = 127.0.0.1
local_port = 50000
remote_port = 50000

[ftp2]
type = tcp
local_ip = 127.0.0.1
local_port = 50001
remote_port= 50001

[ftp3]
type = tcp
local_ip = 127.0.0.1
local_port = 50002
remote_port = 50002
           

3、執行./frpc -c ./frpc.ini。

至此已成功修改frp工具支援ftp遠端通路。

四、通過外網遠端下載下傳樹莓派内的檔案

1、打開FileZilla檔案欄中的站點管理器,點選新站點,填寫主機IP(VPS的公網IP)、端口(frpc.ini裡FTP的遠端端口 )、使用者名密碼(樹莓派的使用者名和密碼) 。

外網遠端下載下傳樹莓派檔案前言:準備:一、樹莓派通路移動硬碟二、樹莓派安裝FTP伺服器三、修改FRP支援遠端FTP通路四、通過外網遠端下載下傳樹莓派内的檔案遺留問題:結語:

2、進入傳輸設定欄,選擇主動傳輸模式,并點選連接配接。

外網遠端下載下傳樹莓派檔案前言:準備:一、樹莓派通路移動硬碟二、樹莓派安裝FTP伺服器三、修改FRP支援遠端FTP通路四、通過外網遠端下載下傳樹莓派内的檔案遺留問題:結語:

3、從樹莓派的硬碟中下載下傳檔案

進入樹莓派的移動硬碟中(此處挂載在/home/mount_disk目錄),進入子目錄選擇一個檔案右擊下載下傳。

外網遠端下載下傳樹莓派檔案前言:準備:一、樹莓派通路移動硬碟二、樹莓派安裝FTP伺服器三、修改FRP支援遠端FTP通路四、通過外網遠端下載下傳樹莓派内的檔案遺留問題:結語:

檔案下載下傳成功!至此已成功實作通過外網遠端下載下傳樹莓派内的檔案!!!

遺留問題:

1、FileZilla使用GB2132編碼連接配接樹莓派後,中文名稱的檔案依然顯示為亂碼。

2、使用被動模式通路樹莓派的FTP伺服器會出現會報錯 “伺服器發回了不可路由的位址” 并且連接配接失敗。

結語:

博文中雖然成功實作了功能,但本人對具體内部技術實作還是停留在一知半解的地步。希望各位發現博文有什麼問題或存在疑問請留下評論,大家一起學習交流,謝謝!

繼續閱讀