黑群晖搭建
硬件是铁威马的F2-221,双网口,cpu是Intel J3355 CPU。
- 烧录rr.img镜像到U盘中作为启动盘,Windows下可以用Rufus,Mac用Balena Etcher
GitHub - RROrg/rr: Redpill Recovery (arpl-i18n)
- 完成后插入设备中等待启动完成,设备会自动获取IP(此时网线插入到下面的网口)
- 进入路由器查看连接IP,输入http://IP:7681,进入指令界面
- 按照需求选择,build loader.
- 完成后利用Synology assistant查找设备,并进行初始化
- 完成初始化后等待系统重启
反向代理服务器
如果想要访问NAS上的其他服务(emby/gitea/qbittorrent)可以利用群晖自带的反向代理服务器的功能,配置相应的转发规则,即可实现
- 打开控制面板,搜索反向代理

- 新建规则,按照需求进行添加

注意:
整体思路是通过访问443 https端口,此时来源设置为未来想要访问的域名,访问时通过群晖来对流量进行转发,转发至相应的服务端口上,这样方便配置https。
内网穿透
需要一台有公网IP的vps,并利用frp实现
服务器端
- 下载frp:
- 编辑
frps.toml
1 | bindPort = // 与frpc服务端绑定端口 |
- 试运行是否有错误
1 | ./frps -c frps.toml |
- 加入systemctl服务,程序在vps启动时自启动,在
/etc/systemd/system/创建frps.service,内容如下:
1 | [Unit] |
客户端
客户端部署在Nas上,开启群晖的SSH功能
- 在
/volumn1下新建frp文件夹 - 进入
frp文件夹下,下载frp - 编辑
frpc.toml
1 | serverAddr = "" //frps服务端的ip |
试运行是否有错误
1
./frpc -c frpc.toml
加入systemctl,加入的方法与上面一致。
1
2
3
4
5
6
7
8
9
10
11
12[Unit]
Description = frp server
After = local-fs.target multi-user.target //程序在群晖系统启动完成并挂载硬盘后启动
Wants = local-fs.target
[Service]
Type = simple
ExecStart = /volume1/frp/frp_0.61.1_linux_amd64/frpc -c /volume1/frp/frp_0.61.1_linux_amd64/frpc.toml
Restart=always
[Install]
WantedBy = multi-user.target
HTTPS证书问题
上面已经打通了内网NAS和VPS的HTTP通道,为了实现TLS的加密,需要先完善证书问题,这里利用acme.sh的docker容器来实现自动申请证书,续签证书以及向dsm导入证书
- 在套件中下载container套件,这里需要docker,请准备好科学上网的环境,如果没有,可以利用cloudflare 自建docker 加速镜像,参考使用Cloudflare Worker加速docker镜像

在container套件中搜索nailpang/acme.sh,如果container无法搜索的话,通过ssh 进入群晖利用命令行实现:
1
sudo docker pull nailpang/acme.sh //加入sudo,不然会权限报错
在container的映像中运行,自动重启先不启用,调试完成后启用,在docker文件下新建
acme.sh,并映射到/acme.sh

- 在环境变量中配置如下:

- SYNO: 群晖用户名
- SYNO_PASSWORD: 群晖密码
- SYNO_Certificat: 为空替换默认的证书
- CF_TOKEN: 利用DNS验证获取证书,这里是CF的TOKEN,获取方式见acme.sh/wiki/dnsapi

这里建议重新新建一个群晖账号,关闭所有文件读取写入的权限,但需要加入administrator用户组

网络选择
host,并在执行命令的地方加入daemon启动守护模式ssh登陆群晖,在
/volume1/docker/acme.sh新建cert.sh
1 | #!/bin/bash |
- 试运行该脚本
sudo bash /volume1/docker/acme.sh/cert.sh,查看最后一步是否返回成功

- 由于自签的证书在三个月后会过期,因此在群晖中加入计划任务,每月对证书续签一次,运行权限是root
1 | bash /volume1/docker/acme.sh/cert.sh >>/volume1/docker/acme.sh/log.txt 2>&1 |

总结
反向代理器的坑点比较多,之前怎么配置都不正确,参考了其他人,通过443转发之后,居然就成功。证书的配置也是,还把之前的群晖直接搞崩了,也是参考别人用acme.sh中的depoy-hook可以直接部署,一次成功。完成上面的步骤,就可以访问自己设定的域名,穿透到NAS的数据了。务必注意数据流量以及防火墙的设置