路由远程访问配置详解及可道云,nextcloud利用redis加速访问并挂载本地文件

2021-04-06 16:14:34 28点赞 181收藏 13评论

创作立场声明:本文中提到商品除硬盘外多为二手,cpu与机箱疯涨不下,可能已无法以文中提到的价格购入。组机方案多样,一切从需求出发,攒机玩的是乐趣,不是由厂商精准营销带动的冲动消费。本人水平有限,疏漏之处在所难免,请各位老兄多多包涵.

上一篇中,我已经充分介绍了硬解存在的必要性,本篇让我们一起来配置docker中的各种必须套件,大多数以图形界面安装,小部分以命令行实现,本篇受众定位是有一定计网基础的普通用户。

PART1 Docker与群晖套件联动配置

首先继续昨日未完的话题,docker是什么这里不再解释,可以看做是任意操作系统下可实现相同功能的一组套件(跨平台,且拓展性极高,安全性好)

而后开始选择需要安装的套件与对应的docker注册表,可道云和nextcloud需要redis进行缓存加速,默认群晖不支持redis,因此只有选择注册表安装,默认群晖内的php套件并不支持php-redis和memorycache,因此需要用ssh命令添加至php拓展列表,onlyoffice的安装在此不再赘述,网上一抓一大把。

1.1 docker下的redis安装

至此开始redis的docker版本安装,教程参考了另一位老兄的图形化安装教程

安装完毕后,映射端口为6379,如本地有数据库管理软件,可测试相应nas ip的6379端口可否连接(一般无需密码)

1.2 php-redis

麻烦之处在在于需要为php添加拓展,网上教程林林总总,个人测试过之后只有一种办法可行,遂写于此:

首先确定需要的php版本,可道云支持php7.0以上版本,nextcloud最新版支持php7.3以上版本,于是选择为php7.3添加拓展

首先打开nas的ssh选项,建议更换端口号为大于1024小于6w的任意数字(防止被黑客肉鸡攻击)

路由远程访问配置详解及可道云,nextcloud利用redis加速访问并挂载本地文件

然后登入ssh并取得root权限(需要输入密码)

路由远程访问配置详解及可道云,nextcloud利用redis加速访问并挂载本地文件

在之后观察相应目录下是否有编译好的redis.so文件[注:以下的vol均为安装php的卷,需要自行替换]

命令:/volume1/@appstore/PHP7.3/usr/local/lib/php73/modules/

ls

存在reids.so文件存在reids.so文件

然后为php-fpm.ini文件末尾添加拓展加载索引

命令:vi /volume1/@appstore/PHP7.3/misc/php-fpm.ini

添加的字段:

  • [Redis]

  • extension_dir = "/volume1/@appstore/PHP7.3/usr/local/lib/php73/modules/"

  • extension = memcached.so

路由远程访问配置详解及可道云,nextcloud利用redis加速访问并挂载本地文件

最后重启php7.3即可正常使用php-redis拓展

1.3 可道云与nextcloud加载redis

可道云需要使用webstation进行映射安装,nextcloud也一样,方便对文件进行合理的权限控制

1.3.1 可道云的redis配置

如果在初次安装可道云时选择redis作为缓存,则后续不用配置,无脑用就可以了

如果没有,又不想清空配置文件重新安装,则可修改安装目录下config/setting.php中的缓存相关配置,如下图所示 (如果无权限,需要先设置好读写权,否则无法修改)

可道云的redis配置可道云的redis配置

1.3.2 nextcloud的redis配置

初次安装无法选择缓存,只能从配置文件中修改

根据官方文档对Memory caching的解释,我们需要先验证redis是否在运行,如果在运行,才可添加相关配置

命令如下:

ps ax | grep redis
22203 ? Ssl 0:00 /usr/bin/redis-server 127.0.0.1:6379

查询运行进程查询运行进程

将下列命令添加至 安装目录/config/config.php 文件(别忘了最后的 ]; 如果不小心删了程式会报错)

'memcache.distributed' => 'OCMemcacheRedis','redis' => [
'host' => 'redis-host.example.com',
'port' => 6379,],

路由远程访问配置详解及可道云,nextcloud利用redis加速访问并挂载本地文件

修改配置文件利用缓存修改配置文件利用缓存

1.3.3 测试缓存

如果缓存已被应用,则读取文件时内存占用会增加,数据库也会有缓存占用表。

测试过程不表,可以正常写入数据库中缓存表和建立文件列表索引,此功能亦改善了访问文件列表的速度,操作延迟有一定的下降(无图抱歉)

1.3.4 参考链接

参考链接1

参考链接2

参考链接3

PART2 webstation搭建网站并映射本地端口

此步骤较为简单,直接上图

端口对应网站列表端口对应网站列表

nextcloud详细配置nextcloud详细配置

可道云详细配置(7.2已添加相关拓展)可道云详细配置(7.2已添加相关拓展)

其中有一些杂七杂八的权限问题,此处不表,百度下都是解决方法,目录没权限给他就是了,文件没权限也直接给(这里有一点注意的,webstation读写文件的权限与目前登录用户的一致,因此只需更改登录用户对文件操作/读写权限即可,不要选everyone,有很大的安全隐患)

最后尝试以nas ip:端口号形式是否可正常访问网站,如果可以且通过权限测试,又可正常访问,则阶段到此结束。

nextcloud挂载nas共享文件夹教程在文末(站里好像都说不能挂,结果查了下文档找到个拓展转眼就挂上了路由远程访问配置详解及可道云,nextcloud利用redis加速访问并挂载本地文件 )

nextcloud坑还是比较多的,我直接把我改好的配置文件贴在下面。适度避坑,安全你我

  • <?php

  • $CONFIG = array (

  • 'instanceid' => 'oc750mp53d93',

  • 'passwordsalt' => 'zZevG/jrQuNqrqd6srp2xe1PpTRs89',

  • 'secret' => 'JFKTtYSIFj6NaAOugH12NSluKANXQu2k1q6t1N7txzu4vqUL',

  • 'trusted_domains' =>

  • array (

  • 0 => '192.168.50.10:8088',

  • 1 => 'xxx.xxx.xxx:8088', #此处为允许外网访问配置,下章介绍

  • ),

  • 'datadirectory' => '/volume1/web/nextcloud/data',

  • 'dbtype' => 'mysql',

  • 'version' => '21.0.0.18',

  • 'overwrite.cli.url' => 'http://192.168.50.10:8088',

  • 'dbname' => 'nextcloud',

  • 'dbhost' => 'localhost',

  • 'dbport' => '',

  • 'dbtableprefix' => 'oc_', #数据库表前缀

  • 'dbuser' => 'oc_xxx',

  • 'dbpassword' => 'r2gsqq2q8gYY0q8uqagqSX0VXHkfI3',

  • 'installed' => true,

  • 'allow_local_remote_servers' => true,

  • 'memcache.distributed' => 'OCMemcacheRedis', #缓存配置

  • 'redis' => [

  • 'host' => 'localhost',

  • 'port' => 6379,

  • ],

  • );


PART3 浅谈网络解析

在讲解外网访问之前,我们必须要了解域名,公网ip,域名解析,csrf,ddns等名词的含义(本章不涉及到ssl/rsa/数字签名等现代密码学算法[也就是常见的https路由远程访问配置详解及可道云,nextcloud利用redis加速访问并挂载本地文件 ])

首先域名:

在域名出现之前,人们只有通过ip地址直接访问相应的server,而ip标识性很差(个别除外),直至www的出现改变了现状,server可以直接传输超文本内容,加强了,于是就大众开始关注域名的易记忆性与访问高效性,因此,域名最基本的作用是代替ip地址让访问服务器变得更加容易,服务器开放的不同端口提供不同的服务,例如负责ssh的22端口就无法在浏览器中ip:22的形式打开web服务,有界面服务和无界面服务也要区分开来,不提供界面的服务通常偏向于控制和服务性(例如ftp/ssh/telnet),有界面服务通常注重于交互式服务(例如web)

再者公网IP:全称广域网IP,是为除了保留地址之外的任意ip地址

保留地址如下:

  • A类:10.0.0.0 到 10.255.255.255

  • B类:172.16.0.0 到172.31.255.255

  • C类:192.168.0.0 到192.168.255.255

  • 其中127.0.0.0 到127.255.255.255 为系统环回地址

如果你的路由器拨号(PPP)之后获得的ip不在此列,那么恭喜你,你已经有了一个的广域网ip

怎么测试其可用性呢?

首先更换路由器访问端口为x。(1024<x<65535),然后用手机通过数据网络,啥设备都行,只要不是通过目前局域网接入的互联网即可,直接访问路由拨号获得的 ip:设置好的端口号 如果可以显示路由控制界面,则说明此ip可用,可以进行下一步。(光猫需改桥接模式,路由端负责拨号)

既然前面已经介绍了域名相关知识,那么我们这里就要用上,域名的本质是解析ip地址,而ip对应的server为访问者提供各式各样的服务,群晖用的最多的是web服务(tcp),所以此章只介绍web相关内容。

如果你在本地hosts添加了一条解析记录并刷新了dns缓存,则可以可以通过自定义的域名访问局域网内的nas服务。同理:如果你在互联网上(域名解析方)添加了一条指向广域网某ip地址的解析记录,你就可以通过域名访问广域网上某ip提供的服务。再进一步,如果你用自己注册的域名,解析到你自己路由的广域网ip地址,你就可以通过该域名直接访问你路由上开放的任意端口,此为域名解析原理。(不涉及到五层体系结构的通俗讲解路由远程访问配置详解及可道云,nextcloud利用redis加速访问并挂载本地文件 )

别忘了csrf:

啥是csrf,是一种防跨域请求伪造攻击的手段,可通过多种方式实现,而防护的手段大都为:不允许不合法的域名跳转,不允许HTML标签发送合法的跨域请求,这种防御我只在docker的qbtorrent注册表中见到过,一旦跨域则无法访问,错误码505,个别情况需要注意,普通用户不必深入了解。

原理原理

为什么需要ddns?

因为一般家庭或企业用户所获得的的广域网ip并非固定,而是会时常变化,一旦变化,我们的域名针对ip的A类解析记录就会失效,因此我们需要DDNS(动态域名解析服务),在本例中选择ax88u的aliddns应用插件实现ddns。

网络解析实践

实践前提一台内网运行web服务的nas,一个路由器(刷了华硕ML改固件的都可以,其实软路由也可以以定时任务的形式进行解析,此处不表,只阐述逻辑实现)

最终目标:以数据网络访问广域网某域名获得目前局域网内web服务为最终目标,开始搭建整个网络环境(局域网内服务优化先前已介绍,不再赘述)

以外网访问nextcloud为例子(需要事先修改配置文件更改trust域名)

内网访问内网访问

域名信任域名信任

以下为端口转发配置和aliddns设置:详见

先在阿里云申请域名(我相信这个大家都会),然后通过实名认证开放解析权限,如果要用ddns必须先创建一条子域名解析记录,如果不创建则路由内置插件无法更新ip

注册域名注册域名

添加解析记录添加解析记录

添加accesskey(插件用)添加accesskey(插件用)


端口转发端口转发

aliddnsaliddns

这样一顿操作过后,等三分钟,你尝试ping下设定的域名地址,如果返回ip和路由拨号获得的ip一致(记得刷新下DNS缓存[ipconfig/flushdns]和清空hosts文件),那么你就可以通过ip:开放端口来实现在广域网上对本地web服务的访问

外网访问域名外网访问域名

PS: 推荐群晖内部做静态IP配置,防止端口转发失效

静态IP配置静态IP配置

参考链接

参考链接


番外 nextcloud挂载localhost文件夹/nas共享文件夹(smb/sftp)

许久前见站内各位大佬评比nextcloud优劣,其中一条便是其无法访问群晖的共享文件夹。

无意中发现nextcloud可以通过External storage support插件实现对本机sftp及smb内容的访问及分享,速度依托于redis提前建立好的文建索引,文件夹下载速度亦有所提升

拓展应用拓展应用

挂载细节挂载细节

实现视图实现视图

数据库cache(文件列表索引缓存)大小数据库cache(文件列表索引缓存)大小

本篇到此结束,下篇可能会介绍chevereto图床的APIv1用法详解,讲究更实用的图床。相册,who?


感觉好像没什么人看的样子欸。是我图不够多?



展开 收起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2829元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

2190.84元起

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

4079元起

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

8899元起

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

1529元起

Synology 群晖 DS923+ NAS网络存储服务器 标准无硬盘

Synology 群晖 DS923+ NAS网络存储服务器 标准无硬盘

4899元起

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

7196元起

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

1399元起

Synology 群晖 DS720+ 双盘位NAS(J4125、2GB)

Synology 群晖 DS720+ 双盘位NAS(J4125、2GB)

4099元起

synology群晖nas云存储ds920+中小型企业办公网络存储群辉家庭个人私有云盘四盘位NAS备份硬盘服务器ds918+(DS920+希捷企业级16T*4)

synology群晖nas云存储ds920+中小型企业办公网络存储群辉家庭个人私有云盘四盘位NAS备份硬盘服务器ds918+(DS920+希捷企业级16T*4)

13746元起

Synology 群晖 DS416 企业级 NAS网络存储

Synology 群晖 DS416 企业级 NAS网络存储

暂无报价

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

2279元起

Synology 群晖 DS423 四核心 4盘位 NAS网络存储 私有云 照片自动备份

Synology 群晖 DS423 四核心 4盘位 NAS网络存储 私有云 照片自动备份

3199元起

Synology 群晖 DS1621+ 六盘位NAS (V1500B、4GB)

Synology 群晖 DS1621+ 六盘位NAS (V1500B、4GB)

6899元起

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

3090元起
13评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
181
扫一下,分享更方便,购买更轻松