树莓派搭建NAS 2018-11-18 记录 暂无评论 208 次阅读 前段时间使用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/) Features: - Debian 9 stretch - [Nextcloud](https://nextcloud.com/) 13.0.2 - Apache 2.4.25, with HTTP2 enabled - PHP 7.0 ([double the speed](http://blog.teamtreehouse.com/5-new-features-php-7) of PHP5!) - MariaDB 10 - [Redis](https://redis.io/) memory cache ( [NEW 11-12-2017](https://ownyourbits.com/2017/11/12/nextcloudpi-gets-new-look-and-feel-redis-spdns-support-berryboot-support-debian-installer-and-more) ) - 4.9 Linux Kernel ( [NEW 03-13-2017](https://ownyourbits.com/2017/03/13/nextcloudpi-gets-nextcloudpi-config/) ) - Automatic redirection to HTTPS - ACPU PHP cache - PHP Zend OPcache enabled with file cache - HSTS - Cron jobs for Nextcloud - Sane configuration defaults - Pre-installed popular Apps for home use ( calendar, contacts, notes, tasks, news … ) - Full emoji support ( [NEW 05-24-2017](https://ownyourbits.com/2017/05/24/nextcloudpi-gets-automount-backups-nextcloud-online-installation-nextcloud-12-and-more/) ) - Postfix email - [Secure](https://ownyourbits.com/2017/03/25/nextcloud-a-security-analysis/) [下载地址](https://ownyourbits.com/downloads/NextCloudPi_RPi_11-04-18/) [nextcloudpi-github](https://github.com/nextcloud/nextcloudpi/wiki) #### 格式化SD卡,烧入系统 下载完镜像文件后就能直接通过工具烧入到SD开中,至于树莓派如何烧入系统网上已经有很多资料,这是使用Etcher工具进行烧入,工具下载地址:[点击这里](https://etcher.io/)  烧入完成后记得在boot盘根目录下创建文件名为ssh的文件,便于之后ssh远程连接使用。完成烧入之后开始对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 sudo ufw reload ``` #### 激活nextcloud 之后在同一网段另一台电脑中输入树莓派的地址,地址会直接跳到nextcloudpi activation进行激活,出现不安全的原因是因为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中配置。 标签: 树莓派, 内网穿透 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。