参考了各大平台上不同帖子,整理了一下自己的思路,有时间的话会补上详细过程和配图(大概没有)。
1.将域名托管到DNSPod
本人域名购自阿里云,但是发现腾讯云旗下的DNSPod.cn服务更完善些,遂转至DNSPod。
只需在阿里云控制台将域名的DNS服务器切换为DNSPod指定的即可。
2.DDNS与自定义域名
注意:首先,需要公网IP。
我之前使用的是Oray的DDNS,域名托管在Cloudflare,二者的功能完全不重叠,也就是说要实现自定义域名访问,需要将CF的域名转发到Oray,因为Oray的免费二级域名不支持CNAME,更有甚者,Oray的域名不提供SSL证书,将HTTPS访问的途径堵死了。
因此这一步就很能体现DNSPod的服务优势了。
在域名托管完成后,在腾讯云申请DNSPod.cn的AppId和SecretKey,进入DSM,打开“控制面板-外部访问-DDNS-新增”,选择DNSPod.cn作为服务供应商,主机名称就可以直接使用自己的域名,分别填入AppId和SecretKey,就可以实现群晖自动将外部地址绑定到域名了。
3.UPnP设置
这里顺带提一下,由于不想手动设置网关的端口转发规则,而且由于电脑需要P2P下载不能使用DMZ,所以开启了UPnP。本人网关路由是小米AX3600,进入“控制面板-外部访问-设置路由器”,即可自动完成设置。
选择“新增”,添加群晖默认的5000、5001管理接口即可。
至此,通过http://xxxxxx.com:5000/ 已经可以从外网访问DSM。
注意,光纤用户请确保光猫已开启桥接模式并由路由器拨号,否则需要在光猫后台设置端口转发,但这样应该会及其麻烦。
4.局域网自定义Hosts
由于http://xxxxxx.com:5000/ 是通过端口转发访问内网的域名,在局域网内是无法使用该域名的。
在小米路由器绑定群晖NAS的IP地址,然后后台编辑自定义Hosts:
192.168.1.100 xxxxxx.com
Hosts记录会优先使用,这样在局域网内也可以使用该域名访问了。
由于内网并不会封堵80、8080、443接口,访问时并不需要加端口号,用http://xxxxxx.com/ 即可访问,不过群晖会自动将80端口的访问转到5000端口上。
5.SSL证书与HTTPS
腾讯云平台可以申请免费的TrustAsia一年SSL证书,但是单个证书只能对应一个二级域名或根域名。
改版后流程非常简单,申请后10分钟内即可下载,下载Nginx格式的证书。
打开“控制面板-安全性-证书-新增-添加新证书-导入证书(勾选“设为默认证书”)”,私钥选择“xxxxxx.com.key”,证书选择“xxxxxx.com_bundle.crt”,中间证书可空。
注意,添加完成后,在“设置”中将各服务的证书全部更改为“xxxxxx.top”。这会导致使用内网IP或群晖QC访问显示不安全,不过这些都用不上了。
最后,在“控制面板-登录门户-DSM”中勾选“自动将DSM桌面的HTTP连接重定向到HTTPS”即可启用强制HTTPS。
至此,在内网、外网使用https://xxxxxx.com:5001/ 都可以实现安全访问。在“控制面板-外部访问-高级设置”的“主机名称或固定IP”处填入“xxxxxx.com”,这样群晖就会将这个域名作为默认地址了。
6.设置应用程序别名
又是一个题外话,别名设置可以在不登陆DSM的情况下直接访问应用程序,例如File Station。
在“控制面板-登录门户-应用程序”中选择需要的程序并编辑,在“网页服务-别名”处起个名字,例如File Station的别名为“file”,这样就可以通过https://xxxxxx.com:5001/file/ 来直接打开File Station。
7.免端口访问
由于中国的ISP封堵80、443端口,HTTP、HTTPS不能用不带端口的默认域名访问。
接下来的方案并不是完美方案,借助了米发的301隐性重定向服务。
过程就不细说了,写一下对应关系:
1 | yun.gggggg.com -> https://xxxxxx.com:5001/ |
记得勾选启用HTTPS。
gggggg.com是我在CF托管的另一个域名,但是CF的页面规则中的重定向貌似有些问题,而且也不支持隐性重定向。另一方面,国内的云平台,比如DNSPod,重定向服务都需要备案,因此选择米发,有3条免费记录可用。
进入CF后台,在gggggg.com的DNS设置中将yun.gggggg.com和file.gggggg.com都CNAME到米发指定的节点。
由于隐性重定向是基于iFrame实现的,需要在DSM“控制面板-安全性-安全性”中取消勾选“不允许DSM被iFrame嵌入”,或者添加允许特定网站也可以。
这样的话,可以实现免端口访问了。由于隐性重定向的特性,访问yun.gggggg.com时的SSL证书就是gggggg.com的证书,这一步在CF后台可以自动搞定。
缺点:yun.gggggg.com并不能代替xxxxxx.com作为群晖的默认地址,由于其重定向的特性,访问yun.gggggg.com/~时都会被重定向到xxxxxx.com,即DSM的初始页面,造成功能无法使用(例如File Station的文件分享)。使用File Station分享文件时,依然需要产生带端口号的链接。
不过瑕不掩瑜,在中国环境下,能搞定到第5步已经是完美解法了。
8.注
在使用群晖管家、Synology Photo等客户端时,应当使用“xxxxxx.com”作为主机名,软件会自动追加5000端口。
Author: Sitrus

