树莓派搭建NAS 2018-11-18 记录 暂无评论 1767 次阅读 前段时间使用vps进行内网穿透,解决了没有共有ip的问题,达到使用域名或ip来进行远程控制或访问。听说联通的宽带提供了动态的外网ip,可以通过一级路由器的ddns来进行外网访问,但是现有网络环境是处于二级路由网段,且一级路由无法设置端口映射,所以导致无法通过外网对树莓派远程控制,所以通过内网穿透解决了这一问题。 --- 建立在能够通过外网访问树莓派的前提,业务需求是通过树莓派搭建大容量的云盘。 本次实现的功能是通过域名访问到本地树莓派的私人云盘。实现云盘的三个步骤:1、树莓派烧入nextcloudpi,激活配置nextcloud;2、安装frp服务端与frp客户端;3、总结优化 网络结构:   ### 一、烧入nextcloudpi,激活配置nextcloud: 首先是给树莓派注入灵魂-安装系统,nextcloudpi是一个专门网盘系统,系统内其实已经直接有ddns功能,无需路由器配置或花生壳,以下是官网介绍的系统特性,镜像配置如下:[这里镜像地址](https://ownyourbits.com/2017/02/13/nextcloud-ready-raspberry-pi-image/) [下载地址](https://ownyourbits.com/downloads/NextCloudPi_RPi_12-20-19/) #### 格式化SD卡,烧入系统 下载完镜像文件后就能直接通过工具烧入到SD开中,至于树莓派如何烧入系统网上已经有很多资料,这是使用Etcher工具进行烧入,工具下载地址:[点击这里](https://etcher.io/)  烧入完成后记得在boot盘根目录下创建文件名为ssh的文件,便于之后ssh远程连接使用。如果没有准备网线的可以配置WiFi连接,在boot盘创建wpa_supplicant.conf文件,添加如下内容 ``` country=CN ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="Danke_1504" psk="wifi.danke.life" key_mgmt=WPA-PSK priority=1 } ``` 之后开始对nextcloud进行基本的配置,准备一台与树莓派在同一局域网的电脑,使用ssh连接树莓派(工具putty或secureCRT),用户密码默认pi和raspberry,进入界面后使用命令查看端口是否开放。 ``` sudo netstat -ntlp # 使用ufw开启防火墙 sudo ufw enable -y sudo ufw allow 80 sudo ufw allow 443 # https 客户端 sudo ufw allow 4443 # 仪表盘 sudo ufw allow 7000 # frp 内网穿透地址 sudo ufw reload ``` #### 激活nextcloud 之后在同一网段另一台电脑中输入树莓派的地址,地址会直接跳到nextcloudpi activation进行激活,这里需要注意的是,nextcloudpi 默认使用https协议连接,所以出现连接不安全,原因是因为ssl证书没有认证,这个不是重点,重点是出现两个用户和对应的密码,这个最好是用txt或笔记本记下,这两个密码之后会用到。用户登录4443端口nextcloudpi设置后台界面与443端口客户端界面。  首先,我们先进入到4443端口的设备设置界面,进入后页面会有配置导向,按照步骤与说明进行基本配置,按照配置一步一步来进行,主要是配置USB外设与DDNS动态解析,使用U盘或磁盘最好先格式化ext4再接入到树莓派中,或在导向中直接进行格式化,至于DDNS我这里没弄,主要是因为我没有动态公网IP:)。 PS:在添加外设时得需要添加插件才能成功   ### 二、安装frp服务端与frp客户端: 到这一步如果不太会linux的可能会多花点时间。[参考博客](https://blog.mufeng.info/index.php/archives/74/ "参考博客")。 frps.ini配置 ``` [common] bind_port = 7000 vhost_https_port = 443 # 监听端口 log_file = ./frps.log # 日志输出 log_level = info # 日志记录等级 log_max_days = 3 # 日志最长保留时间 dashboard_port = 7500 # 仪表盘 dashboard_user = mufeng # 仪表盘用户 dashboard_pwd = password # 仪表盘密码 ``` frpc.ini ``` [common] server_addr = **.**.**.**.** server_port = 7000 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000 [web01] type = https local_port = 443 custom_domains = you.domains.com # 你的域名 ``` 可以直接使用系统带的apache作为容器,也能自行下载nginx来进行动态代理。 好,这里算是基本上配置完成,在各自服务器下输入命令启动服务,如果出现什么问题可能是防火墙端口没有开放的原因 ``` ./frps -c ./frps.ini ./frpc -c ./frpc.ini ``` 再浏览器中输入域名https://[you.domains.com](http://you.domains.com/):443就能访问到nextcloud客户端了  ### 三、总结优化 1、启动frp服务的时候可以使用nohup进行挂起或使用守护线程工具mp2、supervisor,也能使用systemd进行服务程序管理。以下是frps的service配置:(ubuntu系统) ``` vim /lib/systemd/system/frps.service [Unit] Description = frps server # 描述 [Service] ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini # 启动服务 WorkingDirectory=/usr/local/frp/ # 工作目录,log输出目录 ExecReload=/bin/kill -SIGHUP $MAINPID ExecStop=/bin/kill -SIGINT $MAINPID [Install] WantedBy=multi-user.target ~ ``` frpc的配置基本一样,保存后就能使用systemctl start/restart/stop frps.service对frp服务程序操作。 2、一位大神介绍给我的工具,用于windows系统下直接管理云盘工具,可以将网盘像磁盘一样挂载到本地–raidrive  配置如下:  好了,基本上大功告成,可以放一些小电影啦,现在也挺晚的,该睡觉了,其实还有一个问题没有解决–https安全解析,直接到freessl中自行申请证书,上传到服务器,然后到apache中配置。 --- ### 2020年1月18日 刚安装好树莓派后需要更新源和软件,但是国内更新速度过慢,这里建议换源,换源前需要查看系统版本,避免换错版本源,导致更新数据失败。 ``` # 查看系统版本 $ lsb_release -a # 换源 $ nano /etc/apt/sources.list $ nano /etc/apt/sources.list.d/raspi.list ``` 我这里是buster版本的raspbain  把原来的地址注释掉,换成如下内容 ``` # sources.list deb http://mirrors.aliyun.com/raspbian/raspbian/ buster main contrib non-free rpi ``` ``` # raspi.list deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ buster main ui ``` 打赏: 微信, 支付宝 标签: 树莓派, 内网穿透 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。