使用ipv6和ddns给群晖做外部访问
2022-12-13 12:47 2022-12-28 12:38 ≈ 1.7k字 ≈ 5分钟

2022.12.28更新,当时脑子进水了,反向代理的时候目的地IP写127.0.0.1最合适

最简单的肯定是quickconnect了,但是必须要把账户迁移到国内,相当于用户信息、地址链接等等都要保存在国内,这点从苹果把数据放到云上贵州开始,我就很反感,因此icloud上我现在就是白嫖5G空间同步一些配置信息了,重要的文件和照片全都放在自己的nas上了(这也是当初买nas的原因)

虽然咱也不是要干什么违法的事情,但是我的隐私你们这样乱搞纯属扯淡,防网络诈骗有很多方法,各种实名各种监控,也没见国内诈骗少多少,所以我果断把已经迁移到国内的账号里面的设备删除,然后重新注册了一账号,准备自己做外网访问

登陆新账号之后,你会发现在quickconnect这里有建议你迁移的提示,呵呵,给一个微笑送给他们自己体会吧

1670905069658

获取ipv6地址

好了扯远了,做ddns的前提就是你要有外网IP,当然了至少目前北京已经不给个人分配了,不过开了个增值服务一个月100块钱,可以分一个,纯粹是扯淡。本来就应该给我的东西,编出一堆理由不给,然后又开个口子收钱,这就是典型的强盗思维。

不过好在ipv6的地址充裕,目前至少北京应该是全部分配下来了,首先把光猫改桥接(我是四年前还是五年前就自己root进去自己改了,教程可能要搜一下),然后进入路由器把ipv6打开,选择Native模式即可,ipv6的dns选择自动配置,另外记得把ipv6的防火墙关闭,然后重启路由器。确认之后在群晖内就可以看到已经获取到2408开头的ipv6地址了,同时你路由器下的所有设备,应该都可以获取到ipv6地址了

1670904756888

域名解析

玩nas的人相比都已经有自己的域名了,最简单的注册就是阿里和腾讯了,一站式的服务,注册加解析。但其实你可以把域名迁出到其他平台管理解析的,我一直使用的就是freedns,界面简陋但及其可靠,最关键的是,配置ddns极其简单

这里多说一句,一群傻逼玩意为了监控各种作妖,以前人家还给中国开放发ssl证书的权限,被他们自己作没了,原因是他们发假证书劫持dns被发现了,可笑死我了,所以你现在进所有政府的网站你会发现他们的证书都是人美国签发的,哈哈哈哈哈!!

1670905482299

先做一条域名解析,选AAAA就是ipv6地址的解析然后保存

然后点击左边的Dynamic DNS进入配置页面,点击上面的dynamic update interface

1670905618484

然后就可以选择要启用DDNS的域名了,激活它,后面会出现带动态口令的上传链接,把它复制下来就可以了

1670905719483

自动上传新的地址

如果你用的也是freedns,那么好消息,你不需要使用群晖自带的ddns(因为里面不能上传ipv6地址),你也不需要使用大名鼎鼎的ddns-go,你只需要打开文本编辑器,写一个shell文件:

1
2
3
#!/bin/bash

curl http://v6.sync.afraid.org/u/*************

就这么简单,curl后面的是你刚才复制的上传地址

然后保存成.sh的文件(记得utf-8编码),把它放到群晖的任意路径

进入控制面板,拉到最下面有个计划任务,前面就是命名和计划时间,我是选的每天0点到11点50,每10分钟执行一次,运行命令这里就直接bash空格你刚才保存脚本的位置即可
1670906114629

后面是可以开启一个任务执行日志的,不过这种东西你打开看一眼没问题,就把它关上吧,十分钟一次那日志文件也挺多的。

申请SSL证书

不用去其他地方申请,群晖自带的证书申请工具就可以申请let’s Encrypt的免费证书,在控制面板-安全性-证书里面新增就可以了,申请完毕之后把证书设置成默认证书,并且进入设置,把里面的证书全都重新选择一遍,至此就可以在外网使用https://自定义域名访问你的群晖啦

1670906383630

使用证书给Docker里的应用

有了证书之后,给docker里的应用开启https的支持其实就有两种方式了:

1、 针对不同的应用把证书导入按照本身的方式开启;

2、 使用群晖自带的反向代理服务器

这里强烈建议使用反向代理,不需要自己搭建个nginx,因为7.0版本的反向代理服务器使用起来真的非常简单

1670951541739

直接控制面板里面-登陆门户-高级-反向代理服务器-新增,然后把需要做反向代理的应用填写进去即可,这里使用自带的反向代理服务器有一个很大的好处,不需要再处理证书了,选择完毕之后群晖会自动把证书装载好

然后自定义标题里面新增选个WebSocket,直接保存即可

Home Assistant的特殊配制

最新版本的Home Assistant在配置反向代理的时候,为了安全需要,必须在configuration.yaml文件里面添加一个授权信息,把群晖的内网IP添加进去,否则反向代理不成功

1
2
3
use_x_forwarded_for: true
trusted_proxies:
- 192.168.31.241 # Add the IP address of the proxy server

注意

毕竟关闭了路由器的ipv6防火墙,所以还是建议开启双重认证吧,手机上下载一个SynologySecure Signin,这玩意跟暴雪安全令似的,有了这个还是满安全的,而且你可以设置相信某台设备,在家也不用重复输入令牌了

然后在防火墙里面把应用本来的端口设置只有群晖这个固定的ip可以访问,这样就更安全一点了(确实问题也不大,主要是防扫描而已,抛到公网肯定有风险的,把该做的都做了,无所谓啦)