关键字:绿联 DX4600、域名直连、动态域名解析、内网穿透、光猫、nas、docker、ddns-go、ipv6、nginx proxy manager、ssl
前言
我是业余 nas 玩家,折腾了两天,此篇是我自己的笔记和总结(篇尾有彩蛋),希望能够为大家实现域名直连 nas 贡献个人智慧、提供个人方案,但更多的还是和大家沟通交流。还请大家切记,只有把笔记同个人具体实际相结合,才能探索出属于自己的解决方案
“但这一切值得吗”x1 ——《冰汽时代》
另外,我使用的是绿联 DX4600+(双十一新购),绿联 DX4600 系列都支持 docker,固件版本 3.0.0 开始支持 ipv6 / 域名直连登录,请确保固件版本最新
捋清思路
1. 公网 ipv4 地址存量少、申请难,因此如果想要外网访问 nas,那就要使用 ipv6(数量多到可以为地球上的每一粒沙子都分配一个地址)
2. 但是,ipv6 地址根本不是人能记住的,因此需要同域名绑定,域名记起来就简单多了
简单补充一下网络知识:访问域名时,会向 dns 服务器查询这个域名对应的 ip 地址(dns 服务器可以简单看作 域名 – ip 对照表),拿到 ip 地址后就知道了设备在网络中的位置(ip 地址可以比喻成你家门牌号),就可以向设备发起请求
3. 可是,运营商分配 ipv6 地址一般是动态变换的,也就是说可能三天两头就会变一次,因此需要动态更新域名绑定的 ipv6 地址,这就用到了 ddns(动态域名服务 dynamic dns),将变化的 ipv6 地址绑定到固定的域名上。ddns 的作用就是动态更新 dns 服务器上域名和 ip 地址的对应关系
4. 至此,外网访问 nas 还差最后一步,就是通过防火墙,因为防火墙会过滤 ipv6 流量,所以需要关闭光猫和路由器的防火墙,接着就能外网访问 nas 了
5. 补充:域名开启 https 会在后面介绍,关闭防火墙将使设备暴露在公网,有安全问题,后续会简单提及
前期准备
1. 域名购入,推荐腾讯云或阿里云,我这里用的腾讯云,具体不再赘述
2. 进入控制台 – 云解析 DNS,开启域名解析(点击添加域名,按步骤来即可,如果遇到问题可以先查查腾讯云文档,有详细教程和步骤)
4. 检查代理软件是否开启 ipv6(若没开代理软件,跳过这一步)
以小蓝猫为例,如图所示,开启 ipv6
5. 检查光猫和路由器是否开启 ipv6
路由器比较简单,进入路由器后台管理界面开启 ipv6 即可
光猫比较棘手,但通常情况下已经开启 ipv6,先进行下一步 ipv6 连通性测试,如果通过就暂时不用管光猫,若不行,用超级管理员账号进入光猫后台(192.168.1.1)开启
下图为光猫常见的超管初始账密,如果进不去,可能要另辟蹊径了,这就是棘手的部分…
老光猫的 ip 协议版本是无法直接更改的,需要删除再新建配置
删除前一定要截图备份配置信息,删除前一定要截图备份配置信息,删除前一定要截图备份配置信息,特别是 vlan id 和拨号账户密码。拨号账号密码忘记没事,但这个 vlan id 要有,新建配置时要填(若是真忘记了请找客服,移动是 10086)
6. 测试是否通过 ipv6 检测(https://www.test-ipv6.com/)
DDNS-Go 动态更新域名解析
ddns-go 是一个很好用的 ddns 程序,可以自动添加并更新域名绑定的 ip 地址
1. 启动 docker,在镜像仓库搜索 ddns-go 并下载(镜像管理 – 镜像仓库)
如果拉取速度过慢,试试更改镜像源(基本信息 – 镜像源设置)为网易云镜像,或者腾讯云镜像(在自定义那栏输入 https://ccr.ccs.tencentyun.com/)
2. 下载完毕后,创建容器(镜像管理 – 本地镜像 – 找到 ddns-go – 创建容器)
3. 容器参数配置(注:我直接拿配置好的演示,界面略微不同)
容器重启策略改成 总是(always),如果 docker 设置了开机自启,容器 ddns-go 也会自动启动,除非手动停止(点击右边的问号可查看各策略的意思)
网络模式选择 host
设置配置存放位置,文件夹名称可以任意,但装载路径一定得填 root
容器端口保持 9876 就行。如果本地端口冲突,把网络改成 bridge 模式,本地端口不填(会自动设置)
启动容器,并打开 ddns-go 管理界面
4. ddns-go 参数配置
dns 服务商选择 DNSPod,然后点击“创建 DNSPod Token”,跳转到腾讯云 DNSPod 界面,不出意外的话已经自动登录了(注:DNSPod 已被腾讯收购,DNSPod 解析和腾讯的互通)
点击创建秘钥,秘钥 token 记得保存下来,只显示一次,然后把 id 和 token 填入 ddns-go(见上图)
ipv4,没有,不启用
ipv6,启用,域名部分填入二级域名(比如你的一级域名是 example.cn,可以填 nas.example.cn,方便记忆),之后 ddns-go 会帮我们自动创建并添加解析记录(这个后文会说明)。获取 ip 方式选择通过网卡获取
禁止公网访问 ddns-go 管理界面,勾选
配置完毕,点击保存,然后去 DNSPod 检查是否多了一条记录
5. 验证内网是否可以访问,两个办法:
① 测试内网能不能 ping 通域名,能 ping 通说明内网访问正常
② 打开绿联 web 端地址(你填入 ddns-go 的域名 + 端口号 9999,9999 是绿联默认端口号,例如 nas.example.cn:9999),能打开说明内网访问正常
“至此已经成功了一半”
打通外网访问
1. 验证外网是否可以访问,两个办法:
① 测试公网能不能 ping 通域名,能 ping 通说明公网访问正常
打开 https://ipw.cn/ipv6ping/ 进行 ipv6 ping 测试,多 ping 几次(因为有可能是 ping 服务器的问题),如果能 ping 通会显示 ip 地址和响应时间,如果 ping 不通,则显示 ping failed
② 手机流量下打开绿联 web 端(这个方法最简单),能打开说明外网访问正常
以下是手机流量下(外网)访问成功的界面(可以看到绿联没做移动端适配…不好意思,老职业病了)
注:手机 edge 浏览器有缓存机制,如果你之前连接 wifi 时访问过绿联 web 端,先关闭这个页面,并重启手机 edge 浏览器,然后再重新访问
2. 如果外网无法访问,则需要关闭光猫和路由器防火墙,放行 ipv6 流量
先放一张示意图,辅助理解(非网络从业者,图示内容目的只是辅助理解)
关闭路由器防火墙
关闭光猫防火墙(ipv6 session 防火墙)。中提到“要检查光猫是否开启了 ipv6”,因为一般都是开启,所以可以暂时不管光猫,但这一步是必须的(该来的还是要来的)
使用超级管理员账号进入光猫后台(192.168.1.1),如果使用 前期准备 中列出的超管账号进不去光猫,那你得求助万能的搜索引擎或者运营商客服了…
这里以移动老光猫为例,关闭 ipv6 session 防火墙,然后等待一会即可
3. 再次验证外网是否可以访问,同样采用步骤 1 的两个方法
开启 HTTPS
1. 申请 ssl 证书(依然是用腾讯云)
进入控制台 – SSL 证书 – 我的证书 – 申请免费证书(免费证书的额度不是一次性的,证书吊销或正常到期后额度会释放,证书有效期一年,到期后需要续期)
证书申请一般几分钟就能审核通过
然后下载证书文件,后面要用到
2. 部署 nginx proxy manager(nginx 反向代理我懂得不多,所以后续我会少说点话)
为什么选择 npm(注:后文将 nginx proxy manager 简称为 npm,此 npm 非 node package manager,本文不涉及 node.js)
因为它界面好看(连理由都是那么的优雅!优雅至极!)
和部署 ddns-go 那会一样,在 docker 镜像仓库搜索 nginx-proxy-manager(注意横杆是必须的,不然搜不到)
因为这个镜像很大(800+MB),如果多次拉取失败,请尝试将镜像源改成 docker 官方源(慢是慢了点,但不容易出错)
下载完毕后创建容器,配置容器参数(同样,这里也是拿已经创建好的容器演示,界面会有略微不同)
重启策略选择 总是(always),作用不再赘述
网络选择 bridge
文件夹一个存放数据,一个存放证书,名字可以自己设定,但装载路径要和图示一致
更改容器本地端口,因为运营商会封锁 80、443 端口,所以端口改成了 11 开头,方便记忆
配置完毕,启动容器,打开 npm 管理页面,默认的账号密码是 [email protected] 和 changeme
第一次进入管理页面会让你设置名字并修改账号密码
3. 配置 nginx proxy manager
添加 ssl 证书
上传 key 和 crt 两个文件即可,然后点保存
设置代理服务
按图所示配置
如果忘记了绿联 ip 地址,可以从 设备管理 – 网络设置 中查看(前文提到的开启绿联 ipv6 地址的地方)
添加 ssl 证书,选择刚才创建好的 ssl 证书,最后点击保存
4. 打开浏览器,访问绿联 web 端,端口号改成 11443,如 nas.example.cn:11443,不出意外,已经能够 https 访问了
域名直连 nas
1. 绿联 nas 开启本地登录(网络服务 – 本地账号)
2. 域名直连登录 nas
"至此,结束"
安全问题
由于防火墙不能像云服务那样设置安全组来放行端口,因此需要整个关闭,这样会使内网设备暴露在外,引发安全问题,但是得益于 ipv6 地址的动态变化和巨大存量,遇到安全问题的概率几乎为 0
对于一些路由器,比如荣耀或华为的,除了互联网防火墙之外还设了一道局域网防火墙,能够检测黑客攻击网络,控制智能家居设备的行为,这使得安全性又得以进一步提高
结语
就现阶段来看,自己弄域名直连和内网穿透有点多次一举,因为绿联 nas 内置内网穿透服务,可以外网访问 nas,就算绿联服务器挂了,也可以局域网本地连接登录,此时若想外网登录,域名直连才能发挥作用。而自己设置的 域名 + ipv6 的登录方式,需要关闭防火墙,进而引发安全问题(虽然概率极低)
局域网本地登录
“但这一切值得吗”x2 ——《冰汽时代》
彩蛋
彩蛋的彩蛋
双十一换新
#免责声明#
①本站部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
②若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
③如果本站有侵犯、不妥之处的资源,请联系我们。将会第一时间解决!
④本站部分内容均由互联网收集整理,仅供大家参考、学习,不存在任何商业目的与商业用途。
⑤本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与任何商业和非法行为,请于24小时之内删除!