当前位置:Nnboli资源网 > 群晖资源 > 正文

作者:nnboli

收录群晖资源,免费分享资源,搬运资源分享技术,免费折腾才是王道!

手机扫码查看

群晖IPV6+阿里云DDNS动态解析实现外网访问

  • 家里移动支持ipv6所以找资料折腾了一下这东西
  • 演示地址:https://ipv6.nnboli.com
  • 以上地址提供演示,非ipv6无法访问
  • 首先是确认自己的宽带是否已经开通ipv6,测试方法可以访问http://www.test-ipv6.com/
  • 查看群晖是否获取IPV6地址
    群晖IPV6+阿里云DDNS动态解析实现外网访问
  • 由于ipv6会动态更新,此时就需要用到阿里云的ddns。这里采用群辉定时任务来执行ddns脚本。
  • 首先要拥有阿里云的域名,然后添加一条AAA记录,指向当前群辉已经获取的ipv6地址。
  • 修改ddns脚本添加定时任务,要修改脚本中对应aliddnsipv6_ak,aliddnsipv6_sk,aliddnsipv6_name1,aliddnsipv6_domain四个参数。脚本可以直接放到群辉中自己的文件目录下,具体目录根据自己的情况而定。
aliddnsipv6_ak="xxxxxxxx"
aliddnsipv6_sk="xxxxxxxxxxxxxxxx"
aliddnsipv6_name1='xxx'
aliddnsipv6_domain='xxxx.xxx'
aliddnsipv6_ttl="600"

if [ "$aliddnsipv6_name1" = "@" ]
then
  aliddnsipv6_name=$aliddnsipv6_domain
else
  aliddnsipv6_name=$aliddnsipv6_name1.$aliddnsipv6_domain
fi

now=`date`

die () {
    echo $1
}

ipv6s=`ip addr show ovs_eth0 | grep "inet6.*global" | awk '{print $2}' | awk -F"/" '{print $1}'` || die "$ipv6"

for ipv6 in $ipv6s
do
  #ipv6 = $ipv6
  break
done

echo $ipv6

current_ipv6=`nslookup -query=AAAA $aliddnsipv6_name 2>&1`
#echo $current_ipv6

current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`
echo $current_ipv6

if [ "$?" -eq "0" ]
then
    current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`
    echo $current_ipv6

    if [ "$ipv6" = "$current_ipv6" ]
    then
        echo "skipping"
    fi
# fix when A record removed by manual dns is always update error
else
    unset aliddnsipv6_record_id
fi


timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`


urlencode() {
    # urlencode <string>
    out=""
    while read -n1 c
    do
        case $c in
            [a-zA-Z0-9._-]) out="$out$c" ;;
            *) out="$out`printf '%%%02X' "'$c"`" ;;
        esac
    done
    echo -n $out
}

enc() {
    echo -n "$1" | urlencode
}

send_request() {
    local args="AccessKeyId=$aliddnsipv6_ak&Action=$1&Format=json&$2&Version=2015-01-09"
    local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddnsipv6_sk&" -binary | openssl base64)
    curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")"
}

get_recordid() {
    grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'
}

query_recordid() {
    send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddnsipv6_name&Timestamp=$timestamp&Type=AAAA"
}

update_record() {
    send_request "UpdateDomainRecord" "RR=$aliddnsipv6_name1&RecordId=$1&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&TTL=$aliddnsipv6_ttl&Timestamp=$timestamp&Type=AAAA&Value=$(enc $ipv6)"
}

add_record() {
    send_request "AddDomainRecord&DomainName=$aliddnsipv6_domain" "RR=$aliddnsipv6_name1&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&TTL=$aliddnsipv6_ttl&Timestamp=$timestamp&Type=AAAA&Value=$(enc $ipv6)"
}

#add support */%2A and @/%40 record


if [ "$aliddnsipv6_record_id" = "" ]
then
    aliddnsipv6_record_id=`query_recordid | get_recordid`
    #echo '-----------------' $aliddnsipv6_record_id
fi
if [ "$aliddnsipv6_record_id" = "" ]
then
    aliddnsipv6_record_id=`add_record | get_recordid`
    echo "added record $aliddnsipv6_record_id"
else
    update_record $aliddnsipv6_record_id
    echo "updated record $aliddnsipv6_record_id"
fi

群晖IPV6+阿里云DDNS动态解析实现外网访问
群晖IPV6+阿里云DDNS动态解析实现外网访问

  • 补充一张设置参数的图:

群晖IPV6+阿里云DDNS动态解析实现外网访问

2019-5-25再补充说明一个:
就是代码里面有一个网卡参数并不是所有人都一样的,可以在群晖SSH里面用ifconfig查询,一般是ovs_eth0或者eth0,对照参数设置。可以设置运行日志查看错误的地方。方法如下:
群晖IPV6+阿里云DDNS动态解析实现外网访问
群晖IPV6+阿里云DDNS动态解析实现外网访问
群晖IPV6+阿里云DDNS动态解析实现外网访问

抱歉,隐藏内容 回复 后刷新可见
本文共2867个字
您阅读这篇文章共花了: 0小时00分00秒
本站作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可

作者:nnboli, 转载或复制请以 超链接形式 并注明出处 Nnboli资源网
原文地址:《群晖IPV6+阿里云DDNS动态解析实现外网访问》 发布于2019-05-19

分享到:
赞(2) 打赏

评论 46

7 + 9 =
  1. #41

    学习一下,我原来的更新不了

    tzyjf2周前 (10-02)来自中国/China 谷歌浏览器 Windows 10 江苏省南通市 电信回复
  2. #40

    真不错 效果真好

    sowhat1462周前 (09-30)来自中国/China 谷歌浏览器 Windows 10 广东省珠海市 电信回复
  3. #39

    我终于找到了

    hyghot1个月前 (09-03)来自中国/China 谷歌浏览器 Windows 10 甘肃省 电信回复
  4. #38

    域名记录可不可以设置成@??????

    doudou2732个月前 (08-29)来自中国/China 谷歌浏览器 Windows 7 江苏省 移动回复
  5. #37

    非常感谢作者分享,正需要试试

    henhao2个月前 (08-27)来自中国/China 谷歌浏览器 Windows 10 中国 移动回复
  6. #36

    非常感谢作者分享

    kamihao2个月前 (08-27)来自中国/China 谷歌浏览器 Windows 10 甘肃省兰州市 电信回复
  7. #35

    感谢感谢~正需要试试

    873803312个月前 (08-21)来自中国/China 谷歌浏览器 Windows 10 浙江省杭州市 浙江理工大学回复
  8. #34

    我也这样设置的 但是 访问不了 都有ipv6

    cw6262420182个月前 (08-20)来自中国/China QQ浏览器 Windows 10 北京市 移动回复
  9. #33

    感谢感谢~正需要试试

    guoshuhuang2个月前 (08-15)来自中国/China 谷歌浏览器 Windows 10 中国 移动回复
  10. #32

    感谢

    k'k2个月前 (08-12)来自中国/China 谷歌浏览器 Windows 10 安徽省合肥市 联通回复
  11. #31

    HGGGHJBCGKKVCBM我的

    nintenlang3个月前 (07-29)来自中国/China 谷歌浏览器  Android 9 EML-AL00 Build/HUAWEIEML-AL00 江苏省 移动回复
  12. #30

    感谢感谢!正需要,试试

    alex3个月前 (07-29)来自中国/China 谷歌浏览器 Windows 7 重庆市渝中区 电信回复
  13. #29

    感谢感谢!正需要,试试

    vvmark3个月前 (07-25)来自中国/China 谷歌浏览器 Windows 10 湖北省荆门市 电信回复
  14. #28

    感谢感谢!正需要

    wrhyh19783个月前 (07-24)来自中国/China 谷歌浏览器 Windows 10 甘肃省 电信回复
  15. #27

    .真的不错,多发表这样的文章

    s653387073个月前 (07-21)来自中国/China 谷歌浏览器  NX563J Build/PKQ1.181021.001 河南省郑州市 电信回复
  16. #26

    太感谢了正好需要

    ask3个月前 (07-20)来自中国/China 谷歌浏览器 Windows 10 北京市 移动回复
  17. #25

    啊啊啊啊

    memory5993个月前 (07-20)来自中国/China 谷歌浏览器 Windows 10 河南省郑州市 联通回复
  18. #24

    太感谢了正好需要、

    yushaojie3个月前 (07-19)来自中国/China 谷歌浏览器 Windows 10 江苏省苏州市 移动回复
  19. #23

    不错啊,收下了,感谢楼主发帖

    huangaibo3个月前 (07-14)来自中国/China 谷歌浏览器 Windows 7 中国 移动回复
  20. #22

    谢谢

    谢谢3个月前 (07-12)来自中国/China QQ浏览器 Windows 7 上海市 移动回复
  21. #21

    来学习

    缒逐3个月前 (07-02)来自中国/China 谷歌浏览器 Windows 10 广东省 移动回复
  22. #20

    谢谢

    vivazhi3个月前 (07-02)来自中国/China 谷歌浏览器 Windows 10 江苏省无锡市 移动回复
  23. #19

    感谢大神分享,学习下

    liuxinting3个月前 (07-01)来自中国/China 谷歌浏览器 Windows 7 广东省广州市 移动回复
  24. #18

    学习学习

    wert4个月前 (06-29) 火狐浏览器 Windows 10 北美地区 回复
  25. #17

    感谢大神分享,学习下。

    eclairs1114个月前 (06-27)来自中国/China 谷歌浏览器 Windows 10 湖南省长沙市 电信回复
  26. #16

    学习了,谢谢!

    mahu1234个月前 (06-22)来自中国/China 谷歌浏览器 Windows 10 江苏省南京市 电信回复
  27. #15

    向大神学习学习,谢谢

    aerogithub4个月前 (06-20)来自中国/China 谷歌浏览器 Windows 10 湖南省 电信回复
  28. #14

    感谢分享经验

    4个月前 (06-14)来自中国/China 谷歌浏览器 Windows 10 重庆市 移动回复
  29. #13

    学习过程中!

    4个月前 (06-14)来自中国/China 谷歌浏览器 Windows 10 重庆市 移动回复
  30. #12

    吼吼吼吼吼吼吼吼吼吼吼吼吼吼吼

    水水水水水水水水水水4个月前 (06-14)来自中国/China QQ浏览器 Windows 10 湖北省武汉市 电信回复
  31. #11

    感谢分享经验

    xuorui4个月前 (06-13)来自中国/China 谷歌浏览器 Mac OS X 10_14_5 北京市 电信回复
  32. #10

    这边研究研究,太感谢了

    otakusz4个月前 (06-09)未知系统 谷歌浏览器 Windows 10 局域网 对方和您在同一内部网回复
  33. #9

    感谢分享!收藏了

    cww10104个月前 (06-08)未知系统 QQ浏览器 Windows 10 局域网 对方和您在同一内部网回复
  34. #8
    qq_avatar

    看看看看看看看看

    似水流年hjklg4个月前 (06-07)未知系统 谷歌浏览器 Windows 7 局域网 对方和您在同一内部网回复
  35. #7

    我这提示添加了记录 但是从阿里云看并没有变化。。

    66664个月前 (06-06)未知系统 谷歌浏览器 Windows 10 局域网 对方和您在同一内部网回复
    • DDNS的域名阿里云不要有记录,然后同步添加记录再看有没有

      os0074个月前 (06-07)未知系统 谷歌浏览器 Windows 7 局域网 对方和您在同一内部网回复
      • 主机名填错了。填了@会失效

        66664个月前 (06-07)未知系统 谷歌浏览器 Windows 10 局域网 对方和您在同一内部网
    • @
      记录值我倒没试过,我昨晚又试了脚本,没什么问题啊,一般来说ipv6变动很少,基本都是固定的多

      nnboli4个月前 (06-07)未知系统 谷歌浏览器  ARE-AL00 Build/HONORARE-AL00 局域网 对方和您在同一内部网回复
  36. #6

    不错收藏了

    莱卡4个月前 (06-04)未知系统 QQ浏览器 Windows 10 局域网 对方和您在同一内部网回复
  37. #5
    qq_avatar

    谢谢啦,支持

    二二4个月前 (06-02)未知系统 谷歌浏览器 Windows 10 局域网 对方和您在同一内部网回复
  38. #4

    感谢分享

    omgg5个月前 (05-26)未知系统 谷歌浏览器 Windows 7 局域网 对方和您在同一内部网回复
  39. #3

    大佬,你外网访问域名后面需要加端口吗?

    deyu0015个月前 (05-23)未知系统 谷歌浏览器 Windows 10 局域网 对方和您在同一内部网回复
    • 要得啊 比如群晖5000,只有80 443不用,也可以弄反代去端口吧。自己用我觉得没必要就没弄

      nnboli5个月前 (05-23)未知系统 谷歌浏览器 Windows 7 局域网 对方和您在同一内部网回复
  40. #2

    谢谢啦,支持

    deyu0015个月前 (05-23)未知系统 谷歌浏览器 Windows 10 局域网 对方和您在同一内部网回复
  41. #1

    不知道那几个需要改的都是什么项目

    deyu0015个月前 (05-23)未知系统 谷歌浏览器 Windows 10 局域网 对方和您在同一内部网回复
    • 补充了一张参数的设置图,你可以看一下

      nnboli5个月前 (05-23)未知系统 谷歌浏览器 Windows 7 局域网 对方和您在同一内部网回复
群晖IPV6+阿里云DDNS动态解析实现外网访问

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册