一、前言:
随着时代的发展,越来越多的人学会了折腾各类数码产品,比如nas。因此就有了外网访问设备的需求。
访问方法有很多,对于有公网Ip的朋友们,这是一种福利,对于没有公网ip的,也不要气磊,因为Ipv6的公网已经来啦~!
二、购买域名
域名是一定要有的。国内服务商有很多,例如腾讯、阿里。有很多活动域名。例如xyz域名,腾讯这边经常有活动,首年相当便宜。当让,如果你实在不想花钱,也有很多免费的顶级域名可以注册,例如tk域名。。当然,本文就不再说明如何注册了。
三、配置dns解析商
域名是需要解析才会生效的,因此需要配置dns解析商。国内的话,腾讯/dnspod、阿里 都是比较常见的解析服务提供商。本文提到的ddns服务 支持的是 腾讯云、dnspod.cn、阿里云 这3中 api的解析服务。
四、使用ddns解析工具/服务,使域名能够实时更新你的动态ip。
本文讲述的是我自己写的ddns服务,哈哈。目标就是简化客户端的配置和代码量,主要是方便我以前的路由器能实时更新ddns,那是多年前的事情了,那时候各类插件并不全,因此就自己写了个。
1、scjtqs服务站的ddns功能:
a、ipv4的ddns批量更新
b、ipv6的ddns更新
c、ip变化之后会收到qq通知
d、部署简单,只要你的路由器/设备支持 wget 或者 curl之类的url访问工具,并支持定时任务 (例如crontab )就行。
e、支持docker化。
g、支持dnspod.cn、阿里云dns服务,腾讯云dns服务。有其他解析服务需求的,欢迎联系我,我添加支持。
2、注册scjtqs服务站账号:
a、打开 https://wx.scjtqs.com 的注册网址 (目前只开放了qq授权登录,微信的登录应该还没过期,还能用,后续不打算续期了,每年300大洋,腾讯真坑)
b、注册(登录)成功后,在顶部的导航栏 找到 “动态ddns服务”。或者直接访问 https://wx.scjtqs.com/ddns 打开
c、输入验证码(随便输4个字母就行了,我取消了验证,走个形式)激活ddns服务。
3、配置使用ipv4的ddns服务
a、配置ddns服务信息,打开 https://wx.scjtqs.com/ddns/user/dnstype 选择你的api的授权和信息。目前我只支持了阿里云、腾讯云 以及dnspod.cn的api。别认为腾讯云和dnspod.cn合并了,他们的api就是一个了。他们的api是分开的,dnspod.cn的api到2012年就没更新了。推荐dnspod.cn的用户使用腾讯云的api的key,放心,他们是一家的,不用改解析,点击对应的“获取地址” 取得对应的key:
其中token验证码,随便填一些数字就行。(个人推荐使用腾讯云 的api这一套,因为我自己用的就是,有bug我自己就发现并修复了,其他的部分未经严格测试)。
b、配置你的域名和子域名:https://wx.scjtqs.com/ddns/user/userdomain 先添加你的 根域名。例如我的scjtqs.com。再添加你要解析的字域名例如我的 jose:
c、配置qq消息推送(可选服务):https://wx.scjtqs.com/ddns/user/qq 使用该服务,需要添加机器人的qq号为好友,然后输入你的接收端的qq好进行确认就行。如果一直提示验证失败,那么请确认你 是否添加了好友,如果确认已添加了好友,那么将好友删掉重新添加一下。(如果多次尝试未成功,可以联系我处理该“bug”。
d、到这里ipv4的ddns基本完成得差不多了,就剩下客户端对应起来了。
打开网址 https://wx.scjtqs.com/ddns/User/index 可以看到右侧面板有提示一个私密链接。没错,其中token后面的数字就是你之前配置的token。这是一个简易的校验机制,防止别人用你的url导致ddns被覆盖。token别用特殊字符,否则会校验失败。
在你的设备 上 可以是 路由器,也可以是nas上面,配置上定时任务,使其每分钟 定时访问你的 私密链接 这样一旦你的ip变化了,服务器这边会自动更新你的ip解析,并且推送到你的qq上。
e、当然啦,如果你嫌弃配置定时任务太麻烦,可以使用我的docker镜像来完成ddns定时任务。详情请见 https://github.com/scjtqs/docker-ddns docker镜像已支持 armhf,arm64,amd64和i386的设备。其余的未做支持。
4、配置并使用ipv6的ddns服务(仅支持设备具备单独的ipv6公网的,nat6的情况就抱歉了,除非你的路由器支持docker,就可以部署在路由器上)
a、ipv6的部分仅支持 docker方式部署。原因嘛。。我的服务器没有开通ipv6地址,无法获取到客户端的ipv6地址啦,所以只能在客户端获取了ipv6地址之后上报。放心,过程也简化了滴!同样的docker镜像配方,下载 我给你生成好的php文件,-v到docker内就行了~!
b、重要消息说3遍:
要使用ipv6的ddns服务,docker一定要使用 host网络模式~~!!
要使用ipv6的ddns服务,docker一定要使用 host网络模式~~!!
要使用ipv6的ddns服务,docker一定要使用 host网络模式~~!!
因为只有Host模式,才能获取到当前服务器的ipv6地址。