找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 41006|回复: 123

黑群IPv6免费DDNS设置

 火.. [复制链接]
发表于 2019-6-20 19:20 | 显示全部楼层 |阅读模式
本帖最后由 mht 于 2020-2-18 19:39 编辑

测试环境:DSM 6.2-23739 、 ASUS AC86U 梅林 384.11_2
假设已经设置好IPv6环境,黑群已经取得IPv6地址。
因为是黑群无法使用synology提供的ddns,还要免费,所以不用大家常用的国内那两家的DNS。
在测试了一堆后确定使用dynv6的DDNS。(顶级域名和https签名也有免费的就不在这里说了)

1. 申请一个动态域名
    访问 dynv6.com ,按网页指导应该很简单就可以申请到域名。
2. 取得 token,token是一串字符,相当于一串密码,有了它可以免去登陆等麻烦的操作直接修改我们的域名。
   
     选择要查看的域名,然后点击instructions项,在页面中就可以找到token了

     上图token=后面那串字符就是token了,拷贝下来,后面要用到。

3. 在群晖里设置自动更新IP
    1)  如果不在乎硬盘是否休眠可以用计划任务,非常简单。
         新建计划任务名称和用户帐号随意,设置成每天 0点-23点50分,每10分钟运行。
          运行用户自定义脚本如下:

  1. curl -s "https://dynv6.com/api/update?hostname=xxx.dynv6.net&ipv6=auto&token=xxxxxxxxxxxxxxxx"
复制代码
       (其中token用上面拷贝的token替代,xxx.dynv6.net即申请到的二级域名)
        缺点:
        由于计划任务每10分钟运行一次,硬盘无法休眠。服务器有可能有Bug,出现过IP更新失败的情况,域名指向为空。
    2) 修改群晖自定义DDNS配置,强力推荐。
         ssh连接到群晖
         修改/etc/ddns_provider.conf,在文件最后增加以下内容:
  1. [USER_dynv6]
  2.         queryurl=https://dynv6.net
  3.         modulepath=/usr/syno/bin/ddns/dynv6.php
  4.         website=https://dynv6.com
复制代码
        将附件中的dynv6.php放到 /usr/syno/bin/ddns 目录下。用chmod修改权限为755。
         到控制面板->外部访问->DDNS->新增
         选"*dynv6",主机名称填写申请到的二级域名如:xxxx.dynv6.net
         用户名随便写,没用到;密码/密钥填写:token。
         这种方式使用群晖的更新机制,应该只有在开机及IP地址变化时才会更新,测试过不影响硬盘休眠。
         而且是在本机取得IPV6地址后直接设置给服务器,目前未发现有更新出错的情况。

--------------------------------------
IPv6是每个机器都会分配到一个独立的IP地址,也就意味着外部可以直接访问到所有连接的机器。
虽然由于地址空间非常大,我也没见过IPv6的扫描工具,但是把空调、电视、机顶盒。。。这些设备都暴露在外网总觉得不是很放心。
华硕也是这么想的,所以他专门做了一个IPv6防火墙的设置:
IPv6 防火墙
允许来自局域网中 IPv6 主机的所有传出流量及相关的传入流量。任何其他传入流量必须得到特别允许。

打开防火墙后只允许指定的端口连接,如果关闭防火墙,所有的连接都不被允许!(好象是这样的)
所以要想从外部访问到群晖必须开启IPv6防火墙,并开放指定的端口。
但是梅林的IPv6防火墙存在非常大的问题,它指定的本地IP只能写完整IPv6的IP地址,因此当IPv6地址变化时端口规则就失效了!!!
办法也是有的,网络提供商一般会给一个IPv6的前缀,由路由器根据每台机器的MAC地址分配的地址的后半部分。
所以可以用类似于 ipv4 mask的格式来指定IP地址的后几位。

1. 打开IPv6防火墙
2. 开启jffs脚本功能
3. 打开/jffs/scripts下的firewall-start,如果不存在就新建一个并设置755权限
4. 加入如下内容:
  1. ip6tables -I FORWARD 6 -d ::11:22:33:44/::ffff:ffff:ffff:ffff  -m state --state NEW -m tcp -p tcp --dport 5001 -j ACCEPT
复制代码
其中 ::11:22:33:44是群晖的IPv6地址的后面4组(注意:我的是后4位不变,所以这么搞,如果你的IP地址的变化不是这样的,可能要改下)
其中 --dport 5001 是要放行的端口,群晖的 https 端口是5001所以放掉这样。(不要管https的默认端口433,这个端口很可能会被运营商拦掉,直接访问5001好了)
如果要放行多个,就加多行,改下端口号就可以了。
运行下 ./firewall-start或重启下路由。

2020/2/13更新:
3) 有朋友提到可以安装DDNS Update2来实现,相比上面的方法更适合新手。(测试硬盘无法休眠)
1. 下载地址
https://www.cphub.net/?id=40&pid=565   (这个网站经常挂,我刷新了很长时间才进去)




实在无法访问的可以从网盘下载:
链接: https://pan.baidu.com/s/1QOyXO-7Ojy0p6MQBAteVag 提取码: 4wg4

2. 手动安装
运行群晖的套件中心,按右上角的手动安装

选择刚下载的spk安装包文件,按步骤进行安装,如果安装时提示需要先安装perl,就先搜索安装一下Perl。

3. 简单设置


安装完成后套件中心会显示“未启动”(就算安装时选择了“立即启动”也一样),这是因为在没有配置文件的情况下他的服务是无法启动的。
先从“主菜单”中运行DDNS Update2的配置程序:


Check interval: 选择检测IP变更的时间间隔,最小为30秒 (这里有点怀疑是否会影响休眠)
IP check method:选择检测IP的方法,Internal项应该是群晖内部取得的IP,External应该是访问各个IP Check接口时返回的IP(即第二个TAB项里的那一堆堆的网站)
                           检测出来的IP会显示在右边的"IP"及右上角。如果Internal不能正常取得再使用External吧,怎么说系统已经自己取了一次,也挺累的。
IP Type: 这里选择是要更新 IPv4 / IPv6 或两者,按自己需要的选择。
按右下角的"OK"
-------------------------
增加一下dynv6的选项:



按左上角的"New"来增加一个选项,按上图设置。
(如果不需要更新"IPv6请去掉勾选),按“OK”完成。

关闭配置界面。

4. 启动服务
回到套件中心,启动DDNS Update2 :


5. 再次打开DDNS Update2的配置界面。



这里现在可以看到最后更新时间,更新状态等信息。如果出现错误可以尝试修改(双击要修改的项)设置,
鼠标选择要测试的项,右键,有一个“Force update",点击可以立即更新。可以用这个立即来测试一个配置是否有问题。
左下角有一个“View log"可以看到更新的细节信息。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 2恩山币 +2 收起 理由
剑来 + 1 感谢 现在还能用
wm877431350 + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-6-23 01:07 | 显示全部楼层
没有IPV6就挂挂了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-8-19 23:09 | 显示全部楼层
本帖最后由 galfordliu 于 2019-8-19 23:30 编辑

你好,脚本似乎有点小问题,不能更新。群晖看正常,但域名哪里ip不更新还有,我运行“”外部访问后,dynv6的设置里不显示ipv6地址,但其他服务商设置页面能显示。奇怪

点评

mht
你试下在浏览器直接访问https://dynv6.com/api/update?hostname=你的域名&ipv6=你的IPV6地址&token=你的token 能正常更新吗?  详情 回复 发表于 2019-8-20 18:19
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-8-20 10:36 | 显示全部楼层
详细分享啊。。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-8-20 18:19 | 显示全部楼层
galfordliu 发表于 2019-8-19 23:09
你好,脚本似乎有点小问题,不能更新。群晖看正常,但域名哪里ip不更新还有,我运行“”外部访问后,dynv6 ...

你试下在浏览器直接访问https://dynv6.com/api/update?hostname=你的域名&ipv6=你的IPV6地址&token=你的token
能正常更新吗?

点评

http://ipv6.dynv6.com/api/update 是不是挂了? 今天反复尝试,http://ipv6.dynv6.com 完全访问不了,如果用http://dynv6.com的话只能更新ipv4地址  详情 回复 发表于 2019-12-31 14:39
成功了。是路由器问题。我是在有公网 的情况下测试的,似乎梅林380.70的ipv6都有点问题,获得的ipv6会突然掉。换了路由就稳定获得ipv6,并且ddns成功。谢谢  详情 回复 发表于 2019-8-21 20:41
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-8-21 20:41 | 显示全部楼层
mht 发表于 2019-8-20 18:19
你试下在浏览器直接访问https://dynv6.com/api/update?hostname=你的域名&ipv6=你的IPV6地址&token=你的t ...

成功了。是路由器问题。我是在有公网 的情况下测试的,似乎梅林380.70的ipv6都有点问题,获得的ipv6会突然掉。换了路由就稳定获得ipv6,并且ddns成功。谢谢
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-8-26 23:59 | 显示全部楼层
感谢,用sh脚本始终不行,折腾两天,慢慢摸索,自定义DNS成功
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-9-4 09:57 | 显示全部楼层
本帖最后由 ctaoist 于 2019-9-4 10:02 编辑

你好,我这边显示无法与服务器创建联机,请检查服务器是否正常联机。试了下,能ping通 dynv6.com ,不管是 ping -4 还是 ping -6 都可以 ping 通。

用群晖自定义DDNS功能也一样,我的 QUERY URL 填的是 https://dynv6.com/api/update?hos ... itxxxxxxxxxxxxxxLxN,token 和 hostname 是写死,但还是提示无法与服务器创建联机,请检查服务器是否正常联机。
但是在 shell 执行 curl -s "https://dynv6.com/api/update?hostname=xxx.dynv6.net&ipv6=auto&token=xxxxxxxxxxxxxxxxxxx" 可以成功更新。

而且有个奇怪问题,在ddns新增的页面可以看到ipv6,一旦点确定再点开编辑,页面的 ipv6 就显示空,其实还是有 ipv6 网络的,再点新增还是显示 ipv6 地址,之前添加的就不显示了,不过这个不影响脚本获取本机的 ipv6 地址

求大佬帮忙看一下



点评

mht
如果你是试了我上面的方式出现问题,请按下面的方法调试一下。 ssh登录到群晖, cd /usr/syno/bin/ddns sudo vi ./dynv6.php 修改第43行,(echo 'res:[...) 去掉前面注释的 '//' 保存退出。 运行: ./dynv6.ph  详情 回复 发表于 2019-9-5 16:09
mht
你是使用自定义功能新增了一个自定义的DDNS供应商对吧?由于dynv6.com提供的API的返回值与群晖要求的返回值不同。所以简单的新增一个供应商就无法取得正确的返回结果,当群晖不认识返回结果时就会默认显示为无法联机  详情 回复 发表于 2019-9-5 15:27
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-9-5 15:27 | 显示全部楼层
本帖最后由 mht 于 2019-9-5 15:28 编辑
ctaoist 发表于 2019-9-4 09:57
你好,我这边显示无法与服务器创建联机,请检查服务器是否正常联机。试了下,能ping通 dynv6.com ,不管是  ...

你是使用自定义功能新增了一个自定义的DDNS供应商对吧?由于dynv6.com提供的API的返回值与群晖要求的返回值不同。所以简单的新增一个供应商就无法取得正确的返回结果,当群晖不认识返回结果时就会默认显示为无法联机。这也是为什么我要修改配置文件,使用PHP脚本来增加一个供应商的原因。

同时,我在本机试了下,就算是显示无法联机,事实上IP地址已被更新。你的问题在我这里无法复现。
就算IP地址已经被更新也不要使用这种方式,因为群晖无法正确得到你的更新状态,可能会反复进行重试。
上面我也说了,ipv6=auto,由服务器自己去取你IPV6地址有时候会失败,此时服务器会把IPV6地址设置为空。

所以,请按我上文操作。

附:dynv6的返回值和群晖的返回值对应关系:
'addresses updated'   -  'good'
'invalid authentication token' - 'badauth'
'hostname not found' -  'nohost'
'addresses unchanged' -  'nochg'
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-9-5 16:09 | 显示全部楼层
ctaoist 发表于 2019-9-4 09:57
你好,我这边显示无法与服务器创建联机,请检查服务器是否正常联机。试了下,能ping通 dynv6.com ,不管是  ...

如果你是试了我上面的方式出现问题,请按下面的方法调试一下。
ssh登录到群晖,
cd /usr/syno/bin/ddns
sudo vi ./dynv6.php
修改第43行,(echo 'res:[...) 去掉前面注释的 '//'
保存退出。
运行:
./dynv6.php 'abc' '你的token' '域名.dynv6.net' 'auto'
根据服务器返回的信息进行问题定位。

点评

我用此方法,返回badconn,怎么搞?  详情 回复 发表于 2022-1-8 11:20
我两种方式都试了的。 调试成功了,感谢大佬。 你的脚本中获取ipv6地址的那条shell命令在我这边有、问题,我就改了下,忘记加引号了。。。。 感谢大佬  详情 回复 发表于 2019-9-6 10:39
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-9-6 10:39 | 显示全部楼层
mht 发表于 2019-9-5 16:09
如果你是试了我上面的方式出现问题,请按下面的方法调试一下。
ssh登录到群晖,
cd /usr/syno/bin/ddns ...

我两种方式都试了的。
调试成功了,感谢大佬。
你的脚本中获取ipv6地址的那条shell命令在我这边有、问题,我就改了下,忘记加引号了。。。。
感谢大佬
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-9-16 09:49 | 显示全部楼层
请问你这个自定义ddns可以用自己申请的域名做解析吗,如果能的话应该怎样修改我有.top的域名,有ipv6,用的自定义的aliddns现在黑裙硬盘都不休眠了

点评

mht
最简单的方法,还是按上面的操作,然后在你的.top域名里增加一个别名记录指向申请的二级域名。 比如,你的顶级域名是 abc.top,申请的 xxx.dynv6.net的二级域名。 在顶级域名的管理里找到管理域名记录的地方,增加  详情 回复 发表于 2019-9-16 22:07
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-9-16 22:07 | 显示全部楼层
laotou_123 发表于 2019-9-16 09:49
请问你这个自定义ddns可以用自己申请的域名做解析吗,如果能的话应该怎样修改我有.top的域名,有ipv6,用的 ...

最简单的方法,还是按上面的操作,然后在你的.top域名里增加一个别名记录指向申请的二级域名。
比如,你的顶级域名是 abc.top,申请的 xxx.dynv6.net的二级域名。
在顶级域名的管理里找到管理域名记录的地方,增加一条记录,比如名称(Name):nas,类型(Type)选择“CNAME”, 目标(Target): xxx.dynv6.net
这样访问 nas.abc.top 就可以了。

否则就要去修改aliddns的更新脚本,将其改成php的。我没有aliddns,就帮不了你了。

点评

知道哪有aliddns的php脚本吗?  详情 回复 发表于 2019-10-21 23:16
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-21 23:16 | 显示全部楼层
mht 发表于 2019-9-16 22:07
最简单的方法,还是按上面的操作,然后在你的.top域名里增加一个别名记录指向申请的二级域名。
比如,你 ...

知道哪有aliddns的php脚本吗?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-25 08:57 | 显示全部楼层
你好楼主,我使用了你的脚本出现了一个问题,我这边电信已经改为IPV4为内网IP  ipv6为公网IP
这样就造成了 IPV4的出口IP可能10天半个月都不变,IPV6可能2到3个小时 就变一次,这两天我
发现用,当出口IPV4不变的时候   IPV6到dnyv6有时候不会更新,变成空的,能不能从脚本里把IPv4
关掉,是不是修改第23行  IP=auto啊??

点评

mht
奇怪了,我的脚本不会更新ipv4的,23行那个$ip只是取得玩的,你可以看看下面并没有用到这个变量。 而ipv6如果取不到就会直接返回(第29行),不会进行更新操作。  详情 回复 发表于 2019-10-29 22:54
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-3-29 07:34

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表