IPv6 + aliddns 实现群晖外网控制

2019-07-21 17:09:31 28点赞 293收藏 83评论

追加修改(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的,这里说一下梅林开启的方法

IPv6IPv6

进入管理页面,如果光猫是路由,联机类型选择 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 尝试登录即可


参考:

移动宽带只能内网穿透? 手把手教你IPV6下的群晖DDNS访问小编注:此篇文章来自#原创新人#活动,成功参与活动将获得额外100金币奖励。详细活动规则,请猛戳此链接!好像原文种的aliddns脚本已经失效,在这里更新以下地址提取码:kww7距离上一篇家庭影院至今已经过去三年了,以前一直用着黑群晖,主要任务就是下载电影,顺便备份一下家庭照片视频。随着这一段时间星zzqa| 217 评论300 收藏2k查看详情


总结

本文基于上述值友的文章,文中所述脚本也是参考上文中的shell脚本所写,目前存在问题,有时候会请求失败,后面再看下,python入门,轻喷,有问题可在github上提issue或直接评论中指出!

另外这个不仅仅可以用于群晖,还可以用在其他地方,只要支持python以及有ipv6网络,都可以实现公网访问!比如我还在家里的Windows上弄了一个,实现remote desktop。效果比之前用frp好多了!

展开 收起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2849元起

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

2190.84元起

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

4099元起

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

8899元起

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

1549元起

Synology 群晖 DS923+ NAS网络存储服务器 标准无硬盘

Synology 群晖 DS923+ NAS网络存储服务器 标准无硬盘

4899元起

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

7196元起

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

2299元起

Synology 群晖 DS720+ 双盘位NAS(J4125、2GB)

Synology 群晖 DS720+ 双盘位NAS(J4125、2GB)

4099元起

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

1399元起

Synology 群晖 DS218+ 2盘位 NAS网络存储服务器 京东云定制版(J3355、2GB)

Synology 群晖 DS218+ 2盘位 NAS网络存储服务器 京东云定制版(J3355、2GB)

暂无报价

synology群晖nas云存储ds920+中小型企业办公网络存储群辉家庭个人私有云盘四盘位NAS备份硬盘服务器ds918+(DS920+希捷企业级16T*4)

synology群晖nas云存储ds920+中小型企业办公网络存储群辉家庭个人私有云盘四盘位NAS备份硬盘服务器ds918+(DS920+希捷企业级16T*4)

4150元起

Synology 群晖 DS416 企业级 NAS网络存储

Synology 群晖 DS416 企业级 NAS网络存储

暂无报价

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

3090元起

Synology 群晖 DS423 四核心 4盘位 NAS网络存储 私有云 照片自动备份

Synology 群晖 DS423 四核心 4盘位 NAS网络存储 私有云 照片自动备份

3199元起
83评论

  • 精彩
  • 最新
  • ip6还没有普及啊,终端必须有ip6才能连。一般单位都不会有ip6的

    校验提示文案

    提交
    家庭宽带和4G应该都有了吧。。公司单位就不太清楚了。。。

    校验提示文案

    提交
    收起所有回复
  • quickconnect本来就支持IPV6吖

    校验提示文案

    提交
    黑群。。。 [皱眉] [皱眉]

    校验提示文案

    提交
    收起所有回复
  • 固定公网ip肯定不给啊。但是动态公网ip还是给的吧?

    校验提示文案

    提交
    移动是真不给。。逼急了就让你退了。。。估计是真给不了。。

    校验提示文案

    提交
    他给,20一个月

    校验提示文案

    提交
    收起所有回复
  • 我的移动宽带也没ipv6 运营商问题……

    校验提示文案

    提交
    嗯???不会吧?是不是路由器没开ipv6或者不支持??

    校验提示文案

    提交
    还真不是 打电话问过客服,也问过安装人员 ,搞不了,运营商的问题,不支持

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 本人小白,刚入了218p。想问问如何弄才能在国外也可以上次照片和视频?

    校验提示文案

    提交
    兄弟,你这问题超纲了。。。白裙的话直接用群晖自带的服务就好啦。。

    校验提示文案

    提交
    货都还没有到。现在先学习起来。昨天刚问了电信可以给公网IP,是不是用了速度回快很多。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • windows上怎么弄ipv6的ddns?大神给个教程呗。

    校验提示文案

    提交
    装一个python3就好。。。然后就可以用这个脚本了。。

    校验提示文案

    提交
    收起所有回复
  • 类似方案,我的域名在dnspod,路由上用API更新v4 v6

    校验提示文案

    提交
    嗯!其实我也只是参照脚本用python实现了一下而已。。可以在win上用。。

    校验提示文案

    提交
    收起所有回复
  • 使用了,怎么提示没有到文件呢?是什么情况?

    校验提示文案

    提交
    确认文件路径正确么?

    校验提示文案

    提交
    收起所有回复
  • 之前这个脚本能用,现在不能用了

    校验提示文案

    提交
    私聊?我给你看下?

    校验提示文案

    提交
    收起所有回复
  • 突然对文章末尾所说的remote desktop很感兴趣,有空出个教程?

    校验提示文案

    提交
    就Windows自带的远程桌面

    校验提示文案

    提交
    这回答很简单粗暴,瞬间不知道咋回答

    校验提示文案

    提交
    收起所有回复
  • 假设家里有一个电信给的光猫,和一个wifi 路由器。是不是说wifi路由器上开启IPV6, 光猫上不要动?(当然我也没有密码进不去。。。)

    校验提示文案

    提交
    电信直接要公网ip吧。。。我当时装的时候,安装师傅看我家有nas直接给我开了公网ip

    校验提示文案

    提交
    收起所有回复
  • 我用想主域名访问,但是设置 aliddnsipv6_name1='@' 后会报错,修改失败。请问怎么解决??

    校验提示文案

    提交
    请问使用的新脚本么??新脚本不需要在脚本里设置域名,可以用新脚本尝试一下。

    校验提示文案

    提交
    新脚本里没找到域名设置 阿里云下有多个域名 那我应该用什么域名访问呢?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • @墨清寒轩 老大,最新的脚本是哪个?回去试试,原来用光猫可以,后来换梅林就不行了,ipv6防火墙也关了,
    请问最新的脚本代码是哪个?

    校验提示文案

    提交
    点文中链接 ,(python脚本 那边)

    校验提示文案

    提交
    感谢,老大。我直接复制走就行吧。没看到下载的地方

    校验提示文案

    提交
    收起所有回复
  • @墨清寒轩 老大,两个疑问,麻烦了,麻烦了,第一我把脚本内容复制notepad++里打开,并修改内容,然后运行的时候报sh: /volume1/ddns/aliddns.py: /usr/bin/python3^M: bad interpreter: No such file or directory,估计我复制的有问题,
    老大能不能发一份给我wandyblues@qq.com
    第二个问题代码里没有找到
    aliddnsipv6_name1 = 'subDomainName' #自定义一个名字,需要符合域名规范

    aliddnsipv6_domain = 'domainName' #注册的域名
    是不是最新的代码没有这些,
    麻烦了,辛苦了

    校验提示文案

    提交
    😂别老大了,怪别扭的,你这个是没装python3吧,然后新脚本看下 去看看 这里的使用说明,下载的话直接右击另存为就可以了。。

    校验提示文案

    提交
    收起所有回复
  • @墨清寒轩 群晖里安装了py3,也在文件里设置好了,但是运行后返回的信息是这个,不太明白是什么意思。大神给分析一下
    usage: aliddns.py [-h] [--value VALUE] RR DomainName Type
    aliddns.py: error: the following arguments are required: RR, DomainName, Type

    校验提示文案

    提交
    没加参数啊 应该是 python3 aliddns.py 域名前缀 域名 A 这种形式,可以看一下那个说明。。

    校验提示文案

    提交
    我在群晖里运行,不是按照你写的那种方式吗?

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 我怎么计划任务不能运行。。。ssh可以,脚本是这么写么。。不懂python
    python3 /volume1/ddns/aliddns.py nas fanzhaoqian.top AAAA [喜极而泣] [喜极而泣] [喜极而泣] [喜极而泣]

    校验提示文案

    提交
    对的。。。

    校验提示文案

    提交
    Traceback (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>


    这是我的报错,请大佬悦目 (手动膝盖)

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 是Ipv6地址,后面输入了AAAA,出现这个错误咋回事
    aliddns.py: error: the following arguments are required: Type

    校验提示文案

    提交
    解决了么现在?

    校验提示文案

    提交
    收起所有回复
  • 不会私聊,请问脚本300多行是吗,dnspod的能用这个脚本吗

    校验提示文案

    提交
    不能。。只能阿里的

    校验提示文案

    提交
    dnspod不能用这个。。

    校验提示文案

    提交
    收起所有回复
  • 请问脚本是你写的吗?群晖有时候有F开头的内网IPV6 能跳过吗?或者强制记录24开头的IPV6

    校验提示文案

    提交
    哦哦,回头我改下直接通过外网获取,现在是直接取地址取不到才会从外网获取

    校验提示文案

    提交
    脚本修改了,麻烦帮忙测试下,我没有ipv6的环境!多谢

    校验提示文案

    提交
    收起所有回复
  • 这是输出
    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进目录可以用,加到计划任务就不行。

    校验提示文案

    提交
    在一堆import XXX后面加上下面两行就好了
    import codecs
    sys.stdout = codecs.getwriter("utf-8">(sys.stdout.detach(>>

    校验提示文案

    提交
    在一堆import XXX下面添加下面两行代码就好了
    import codecs
    sys.stdout = codecs.getwriter("utf-8">(sys.stdout.detach(>>

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
目录

293
扫一下,分享更方便,购买更轻松