怎么实现
虽然可以使用QuickConnect从公网连接家里的群晖,但是访问速度会受限制,且不容易记住。
如果可以将自己买的域名解析到群晖上就好了。
但是这么做要解决两个问题:
1、家用宽带的公网IP是动态的,过两天就会分配一个新的IP
2、家用宽带的80和443端口默认被运营商屏蔽了
第二个问题可以通过使用其他端口解决,第一个问题就要通过下面的方法来实现:动态域名解析(DDNS)--定时探测群晖最新的公网地址,将域名解析的A记录改成当前IP
安装docker
在群晖套件中搜索安装docker
安装完毕后,打开docker,并单机注册表,然后搜索“aliyun",选择第一个搜索结果aliyun-ddns-cli并按第一行的下载,下载该映像
在左侧单机映像,然后选中刚刚下载的映像,单机第一行的启动
创建映像
点击启动后会自动进入创建容器窗口。
这里我点击左下角的高级设置
按钮,然后进入配置窗口,在配置窗口中单击环境选卡:
获取阿里云accesskey
现在我们需要从阿里云中获取AKID、AKSCT两项内容,他们是登录阿里进行ddns设置的用户权限,这个需要从阿里云的accesskey获取。
登录阿里云的控制台,把鼠标放到右上角头像上会弹出子窗口,选择Accesskey管理
此时会弹出提示窗口,建议使用子用户创建。所以我们点击开始使用子用户,进入到RA访问控制后,点击开始使用子用户AccessKey
勾选open API选项就可以了,这个账户不需要控制台登录权限的。
完成后,刷新页面,单击刚刚创建的用户名,点权限管理
新增授权
选择授权AliyunDNSFullAccess
完成后,可以看到已经被赋予dns管理权限
回到认证管理页,可以看到一开始已有一个accesskey id了,但是看不到密码,而且这个密码也无法再重新查看了,只能后面新建一个Accesskey id
创建AccessKey会弹出新建的id和secret,这个id和secret就是群晖里面需要的信息。
配置映像
回到群晖,在环境选项卡中输入我们得到的id和secret
AKID
:自己域名的AccessKey ID
AKSCT
:自己域名的Access Key Secret
Domain
:设置访问的域名,可以根据自己的喜欢设置一级或二级域名。
REDO
:设置多少分钟更新一次dns设置,我这里设置的300秒,即5分钟
设置端口
存储空间映射(将docker的目录映射到容器中)。也可以选择不映射
启动容器
映像创建成功后,在容器
中可见该容器,并对其可以启停
在域名解析列表中可见已自动生成一条A记录的解析
该条A记录的IP会根据容器的公网IP变化
配置映射
通过上面的方法可以将公网的请求引导家门口,但是还需要告诉访问者是请求的哪个内网IP和端口,所以需要在出口路由器配置一个端口映射。每个品牌路由器的配置界面不同,主要输入:公网端口,内网IP,内网端口
比如要访问控制台(默认端口5000)
配置公网端口(任意,除了80和443):5566,
内网IP:192.168.1.2,
内网端口:5001
这样,访问刚配置的域名nas.boxbull.com:5566就可以访问到内网的192.168.1.2:5001了
评论(0)