外网远程下载树莓派文件

前言:

上一章讲到使用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的远程端口 )、用户名密码(树莓派的用户名和密码) 。

2、进入传输设置栏,选择主动传输模式,并点击连接。

3、从树莓派的硬盘中下载文件

进入树莓派的移动硬盘中(此处挂载在/home/mount_disk目录),进入子目录选择一个文件右击下载。

文件下载成功!至此已成功实现通过外网远程下载树莓派内的文件!!!

 

遗留问题:

1、FileZilla使用GB2132编码连接树莓派后,中文名称的文件依然显示为乱码。

2、使用被动模式访问树莓派的FTP服务器会出现会报错 “服务器发回了不可路由的地址” 并且连接失败。

 

结语:

博文中虽然成功实现了功能,但本人对具体内部技术实现还是停留在一知半解的地步。希望各位发现博文有什么问题或存在疑问请留下评论,大家一起学习交流,谢谢!

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值