IPv6 + aliddns 实现群晖外网控制
追加修改(2020-04-21 22:21:20):
脚本已经更新,修复了之前经常报错的问题,但我没有ipv6环境了。。。。。。。所以v6没有测试,另外我换电信宽带了!所以有公网ip了!!!!!总结!!电信宽带好!!!!
另外执行方式略有变化,可自行查看脚本或者执行 python3 aliddns.py --help 查看
=====================================================================================
2020-04-21 更新:
部分人遇到编码问题,我已经在github中更新。 一些人不明白新脚本执行方式,我也大概说下 python3 aliddns.py www baidu.com A 上面python3 就是脚本要用python3 命令执行,aliddns.py 这边就是脚本路径,www baidu.com 注意这边www 和baidu.com 中间是空格,baidu.com 就是你申请的域名,www就是你实际想申请的前缀,最后你访问的域名是www.baidu.com。 同理,若你最后想访问的域名是 abc.efg.baidu.com 那么你的命令就是 python3 aliddns.py abc.efg baidu.com A 最后的A是DNS记录类型,不理解也没关系,反正就是记住ipv4就填A,ipv6 就填AAAA。
追加修改(2020-02-21 12:19:08):
脚本已经更新,修复了之前经常报错的问题,但我没有ipv6环境了。。。。。。。所以v6没有测试,另外我换电信宽带了!所以有公网ip了!!!!!总结!!电信宽带好!!!!
另外执行方式略有变化,可自行查看脚本或者执行 python3 aliddns.py --help 查看
种草nas许久!不过因为穷!一直没入,正好搭上蜗牛星际的车!虽然东西还没到,但也先研究了一下群晖的外网访问!!
##目前主流内网穿透方案
目前内网穿透有如下几种方案
frp、ngrok等转发工具,需要一个有公网ip的服务器,速度也受限于这台服务器!(国外慢,国内贵。。)
群晖自带quickconnect,原理应该和上述类似。速度也受限于群晖官方服务的带宽。
还有zerotier one 这种p2p什么的
然后就是ddns!!!!!
按理说ddns应该是比较好的方案,毕竟现在家里带宽上行都还好,再不济4M总是有的,更别说移动百兆宽带上行能给到50M,但问题就是没有公网ip!!!所以没法做ddns,ddns原理就是有一个域名,解析到isp分配给你的公网ip上,因为isp分配给你的ip会变,所以动态的改变域名的解析记录。而这就存在问题!移动(运营商)不给公网ip怎么办,一个办法,打客服去gang!(我试过,没卵用)二用ipv6.
IPv6
目前国内三大运营商应该都部署了IPv6,路由器默认应该是没有开启ipv6的,这里说一下梅林开启的方法
进入管理页面,如果光猫是路由,联机类型选择 passthough,如果桥接,选择native ppp拨号,详细可以百度。然后梅林的话要把ipv6防火墙关掉,不关的一会就会出现IPv6没有的情况,还不知道什么情况!
IPv6配置好之后注册万网域名,域名注册不细说,详细可以百度!然后申请ali的 AccessKeyId 和 Access Key Secret,记录下来,后续要用到,不会配置也可以百度。然后下载aliddns.py 的python脚本
aliddnsipv6_ak = "AccessKeyId"
aliddnsipv6_sk = "Access Key Secret"
aliddnsipv6_name1 = 'subDomainName' #自定义一个名字,需要符合域名规范
aliddnsipv6_domain = 'domainName' #注册的域名
aliddnsipv6_ttl = "600"
打开脚本(不要用记事本!)用notepad++或者sublime打开,修改上方几个值,举例,你在万网注册了一个域名叫test.com,那么aliddnsipv6_domain后面就填test.com,然后再自己想一个名字,比如ddns,然后填到aliddnsipv6_name1后面,那么一会你访问群晖的 地址就是
修改完成后把文件上传到群晖任意目录(前提你要能找的到),然后新增计划任务!
因为是python脚本所以需要安装python,没有装的自己去套件中心安装!然后命令就是python3 文件路径,路径像我那样放就是/volume1/+filestation显示的路径。
然后就等每十分钟执行就完了。只要ipv6地址变化了,那么就会自动更新域名解析记录。
最后使用 网址 https://你配置的域名:5001 尝试登录即可
参考:
总结
本文基于上述值友的文章,文中所述脚本也是参考上文中的shell脚本所写,目前存在问题,有时候会请求失败,后面再看下,python入门,轻喷,有问题可在github上提issue或直接评论中指出!
另外这个不仅仅可以用于群晖,还可以用在其他地方,只要支持python以及有ipv6网络,都可以实现公网访问!比如我还在家里的Windows上弄了一个,实现remote desktop。效果比之前用frp好多了!







校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
请问最新的脚本代码是哪个?
校验提示文案
老大能不能发一份给我wandyblues@qq.com
第二个问题代码里没有找到
aliddnsipv6_name1 = 'subDomainName' #自定义一个名字,需要符合域名规范
aliddnsipv6_domain = 'domainName' #注册的域名
是不是最新的代码没有这些,
麻烦了,辛苦了
校验提示文案
usage: aliddns.py [-h] [--value VALUE] RR DomainName Type
aliddns.py: error: the following arguments are required: RR, DomainName, Type
校验提示文案
python3 /volume1/ddns/aliddns.py nas fanzhaoqian.top AAAA
校验提示文案
aliddns.py: error: the following arguments are required: Type
校验提示文案
校验提示文案
校验提示文案
raceback (most recent call last>:
File "/volume1/ddns/aliddns.py", line 310, in
print("\u5f00\u59cb\u5904\u7406: RR:" + RR + " DomainName:" + DomainName>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128>
大佬请悦目分析下 。SSH进目录可以用,加到计划任务就不行。
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
aliddns.py: error: the following arguments are required: Type
校验提示文案
校验提示文案
校验提示文案
raceback (most recent call last>:
File "/volume1/ddns/aliddns.py", line 310, in
print("\u5f00\u59cb\u5904\u7406: RR:" + RR + " DomainName:" + DomainName>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128>
大佬请悦目分析下 。SSH进目录可以用,加到计划任务就不行。
校验提示文案
File "/volume1/ddns/aliddns.py", line 310, in
print("\u5f00\u59cb\u5904\u7406: RR:" + RR + " DomainName:" + DomainName>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128>
大佬请悦目分析下 。SSH进目录可以用,加到计划任务就不行。
校验提示文案
桥接选native 唉 早看到就好了 v6成功
校验提示文案
python3 /volume1/ddns/aliddns.py nas fanzhaoqian.top AAAA
校验提示文案
usage: aliddns.py [-h] [--value VALUE] RR DomainName Type
aliddns.py: error: the following arguments are required: RR, DomainName, Type
校验提示文案
老大能不能发一份给我wandyblues@qq.com
第二个问题代码里没有找到
aliddnsipv6_name1 = 'subDomainName' #自定义一个名字,需要符合域名规范
aliddnsipv6_domain = 'domainName' #注册的域名
是不是最新的代码没有这些,
麻烦了,辛苦了
校验提示文案
请问最新的脚本代码是哪个?
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案