找回密码
 立即注册
查看: 1700|回复: 7

[求助] 猫盘群晖ipv6提交为内网地址,请教代码如何改成第二个IPV6...

[复制链接]
4 渣金 回复本帖可获得 1 渣金奖励! 每人限 1 次

9

主题

70

回帖

324

积分

中级渣柚V1

积分
324
发表于 2020-4-26 02:47:48 | 显示全部楼层 |阅读模式
从4月1日来到矿渣后,就仿佛打开了新世界,经常折腾到深夜,然后第二天伴随着黑眼圈和唠叨出门...
8 U5 b+ S( r- G( T( v明天,对了就是明天 又少不了一顿臭骂...
  k  D. l& ?7 p+ [0 [& {
1 D9 [3 r/ p" a+ \1 w8 F" R百度搜到一大佬在张大妈上发布的aliddns教程,按照他的照抄结果脚本把内网ipv6地址传上去了,
8 o, m3 P4 X" Y/ X) w4 E, V% A- n+ l  y( @# r/ P/ D

4 X7 @" J6 W! O4 u$ \. r仔细一看他的教程中 ipv6地址栏 第一行地址就是外网地址,而我的是内网地址,
. ]/ t) h5 B7 p2 X* X瞎子过河改了第20行 print $2 不行,33行tail -n4也不行,1 s' P" I/ @% \5 K/ f
菜鸟看不懂代码,也不知道去哪问,希望能有路过的大神能指点下
! K' O, _6 t* ^' z
+ z, d* M( z7 i

3 [; n% j% O9 h" D
+ Q; m1 e- O4 h7 P9 | ds120j.png " k  T& @2 A1 X7 e- I

3 V$ s0 x" p; E. u
  1. aliddnsipv6_ak="aliddns_id"& w( v% _/ E: \$ I) D0 g
  2. aliddnsipv6_sk="password_info". ^# P% W2 K1 |+ Z3 \9 j
  3. aliddnsipv6_name1='nas': g6 R" m9 ?2 f% A. `, o* x
  4. aliddnsipv6_domain='mydomain.cn'
    ) Z5 X+ p9 S2 a3 m$ a
  5. aliddnsipv6_ttl="600"
    6 C6 k0 v% p9 L0 g+ k( Q
  6. 4 r. B. o& e: B7 b! l7 o
  7. if [ "$aliddnsipv6_name1" = "@" ]
    " E4 Q$ g% V/ \5 [) ~
  8. then
    + T7 S. Y2 @4 @0 e( O1 ]1 E
  9.   aliddnsipv6_name=$aliddnsipv6_domain# }( D; y! p- w, i2 Q
  10. else$ w! o' A4 j6 e  m; b
  11.   aliddnsipv6_name=$aliddnsipv6_name1.$aliddnsipv6_domain
    2 T" G: @( t% [8 S; o* r
  12. fi
    0 W, W  ?5 K) x5 s5 b' i

  13. " r4 @* [$ ?' Z2 U9 B
  14. now=`date`9 s! q+ `$ x& n$ e
  15. 5 B2 b+ E& D9 _9 f
  16. die () {6 F( g. N. H+ a4 u
  17.     echo $1
    , T6 C* U' Y0 ^
  18. }( p7 O! c. _6 b5 N3 ^
  19. $ J+ e4 y2 V/ y- ~; M- ?; s3 c/ m
  20. ipv6s=`ip addr show eth0 | grep "inet6.*global" | awk '{print $1}' | awk -F"/" '{print $1}'` || die "$ipv6"# g# z( X9 w, R2 T
  21. ) w2 q2 `$ J. E4 C
  22. for ipv6 in $ipv6s8 z* r' w! G; A; f
  23. do
    : z! O# f- ~) n/ B+ c) s
  24.   #ipv6 = $ipv6
    # v5 D; L- s  U: r. x: p1 h
  25.   break
    $ o; n' L) s* p5 x. ^0 w
  26. done/ K* A3 n' {8 ?
  27. ) `& @! r3 m) `+ ^; V1 p
  28. echo $ipv60 i3 ?% S( ?6 S7 Y+ T, {* k

  29. & Q  h- G# @3 }& S: T
  30. current_ipv6=`nslookup -query=AAAA $aliddnsipv6_name 2>&1`: V5 n' |9 R5 t4 V* b" t7 m4 p
  31. #echo $current_ipv6
    3 x% e$ |/ ~  g' z

  32. + u2 J3 U# V: C. ~; {7 C
  33. current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`
      X; D+ H) L9 {" U4 a
  34. echo $current_ipv6
    7 J8 T% |  ?# Y3 y7 V4 v* L

  35. 2 w0 o$ k4 a" O) l; W' z
  36. if [ "$?" -eq "0" ]
    5 I- B' H5 `% |, S- f* a' z2 a8 N- p
  37. then
    / ]: y( b( c5 e3 O, ]
  38.     current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`
    # F2 ?' \# p( `& [8 Z
  39.     echo $current_ipv6
    ( E5 H# I8 o* ~; W+ Y2 \
  40. - ~7 C; e2 G7 b7 G! ~% R0 }5 w5 J( e
  41.     if [ "$ipv6" = "$current_ipv6" ]. r2 z2 v, S  D; v3 s
  42.     then$ J: X! ]2 N! a, D6 h
  43.         echo "skipping"
    ) g& I+ l/ C1 j- e
  44.     fi * l( M2 W1 u) A1 b2 C/ K4 D
  45. # fix when A record removed by manual dns is always update error
    5 ^/ F9 {% M$ P) k* s3 r
  46. else; e- d, a5 b1 o& J
  47.     unset aliddnsipv6_record_id
    / m( e  }6 G# ~$ r; d
  48. fi) \. r8 {1 X' t; {# E

  49. . O& V- F3 H) R9 l
  50. 0 {" g  B2 N  w+ i
  51. timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`1 K3 j$ x1 ^$ ]; j% K

  52. 8 R& |$ H" h0 `' k! K

  53. 0 C7 q9 v5 r4 G
  54. urlencode() {# `& a8 N' @- ^/ X: \
  55.     # urlencode <string>
    : F! n& K6 z: k2 {% E# n
  56.     out=""
    6 h' u2 O. K) M" ^- H3 N2 X0 j2 B+ G
  57.     while read -n1 c& x4 s! R. E4 k
  58.     do
    1 z, y! ^4 T7 y! k3 I. w1 ~- K; x/ J
  59.         case $c in
    / U7 {: e. g9 F! b) F, F$ b
  60.             [a-zA-Z0-9._-]) out="$out$c" ;;
    * ]" k! d$ H3 i' M9 A
  61.             *) out="$out`printf '%%%02X' "'$c"`" ;;
    : ^' {# B4 |- w# T6 R0 D8 y) |
  62.         esac
    4 l) I, l! j. L, ]! A1 Y' {
  63.     done: l7 t9 x4 P" v
  64.     echo -n $out2 J( Y; H3 l, n$ r" L( E
  65. }; y! E, s3 d! Z( y

  66. ) V: w) C) `9 C8 n( U) b
  67. enc() {
    " p6 m6 {  e/ I
  68.     echo -n "$1" | urlencode
    & L3 k; P1 ]% `  \0 Y" }! }# X' U
  69. }+ X# v5 C' B1 V* K- u

  70. " D- B6 ~6 p  o0 ^/ _/ q
  71. send_request() {
    ' a& |% R; ^9 ?; Q& v# u8 t3 O
  72.     local args="AccessKeyId=$aliddnsipv6_ak&Action=$1&Format=json&$2&Version=2015-01-09". H( e2 x0 b, k; J3 ^
  73.     local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddnsipv6_sk&" -binary | openssl base64)* z) p: U" S% X0 S8 @6 v0 A
  74.     curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")"
    ) A0 c+ u; }1 W- I9 {' F
  75. }1 q( q5 i5 y" t. U$ s0 F
  76. / n- g9 \& q( p0 J% K! C. I$ h
  77. get_recordid() {+ U7 I( `7 b# z0 H
  78.     grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'# h+ e" a) P" u3 f+ }) [) k
  79. }4 F# g( _( Y8 p

  80.   f' Z. y- H& ]0 U! @% o6 C9 e
  81. query_recordid() {' L# F* ~5 J0 \- @
  82.     send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddnsipv6_name&Timestamp=$timestamp&Type=AAAA"
    " G0 T' ^% Y& Z& s' `  \
  83. }
    * \3 ]& ]1 {" z$ m5 M) B

  84. 7 e; w' G: h/ |- h
  85. update_record() {
    6 h% Y2 W6 Q( e* H/ h6 ]3 |
  86.     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)"9 [# B9 q, J4 D: l9 k# ]: R( i- o4 u
  87. }8 [7 i9 G0 C- H( L: x0 ?0 c

  88. : E6 J9 l" V3 T+ l! p4 e# V
  89. add_record() {
    * {, v; r. Y: V& @: U
  90.     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)"
    2 i6 I& T- r  J2 A; ^/ V/ ^% ^
  91. }. C5 a/ F$ ~. i5 D* i# o3 E
  92. " z7 Q) j% {% r: i( T  L
  93. #add support */%2A and @/%40 record- g' _/ h2 q2 f

  94. : h% ?2 Q! x3 z+ ^: D
  95. & }/ g; Y" d, g
  96. if [ "$aliddnsipv6_record_id" = "" ]  n; g0 a* \7 G" m. l1 L. P" H: k
  97. then5 j" b3 B9 e+ j  L0 P3 |7 r
  98.     aliddnsipv6_record_id=`query_recordid | get_recordid`7 O2 g. r0 D! N* n
  99.     #echo '-----------------' $aliddnsipv6_record_id; r- q1 d. A, z* R& G+ {3 d
  100. fi
    2 q, l5 A* R8 w9 e; x: q
  101. if [ "$aliddnsipv6_record_id" = "" ]
    7 b- {$ H; q  U0 p
  102. then
    - m* B% |! |) n/ W1 `# n# y
  103.     aliddnsipv6_record_id=`add_record | get_recordid`
    % E2 q1 E* Z$ l4 B4 u
  104.     echo "added record $aliddnsipv6_record_id"* p5 N8 F# M- S3 [
  105. else5 Q9 ]4 ~: J+ \2 q: j( j2 X2 J" `
  106.     update_record $aliddnsipv6_record_id$ B# W8 k1 M" `8 g3 y
  107.     echo "updated record $aliddnsipv6_record_id"
    # J5 Z: f+ ^" F. C  E
  108. fi
    " M( u- n9 G: m+ a! c8 ~, a
  109. ; I- w$ p+ ~7 W$ G0 Y
复制代码
- p) F( l# s# m1 n) E. F( E: I

+ P. J5 D6 ^) f: [. k- Q0 a0 q7 i

5

主题

61

回帖

156

积分

初级渣柚V2

积分
156
发表于 2020-4-26 09:45:38 | 显示全部楼层

回帖奖励 +1 渣金

大神赶紧来研究, 可惜我安装的高恪, 应该不支持ipv6

4

主题

82

回帖

420

积分

中级渣柚V1

积分
420
发表于 2020-4-26 10:19:36 | 显示全部楼层

回帖奖励 +1 渣金

GitHub上有python的的ddns 脚本,https://github.com/NewFuture/DDNS,
# c  t5 I9 R: o, w7 t. T7 ^# G修改一下配置文件就可以上传ipv6地址了

4

主题

50

回帖

256

积分

中级渣柚V1

积分
256
发表于 2020-4-27 14:19:36 | 显示全部楼层

回帖奖励 +1 渣金

路过,不懂

0

主题

19

回帖

42

积分

初级渣柚V1

积分
42
发表于 2020-4-27 16:34:28 | 显示全部楼层

回帖奖励 +1 渣金

可能是你路由器设置问题,或者群晖网络手动可以固定ipv6试试

1

主题

5

回帖

55

积分

初级渣柚V2

积分
55
发表于 2020-5-10 00:16:43 | 显示全部楼层

回帖奖励 +1 渣金

吃金   谢谢楼主   祝楼主早日解决问题

2

主题

41

回帖

179

积分

初级渣柚V2

积分
179
QQ
发表于 2020-5-11 13:45:56 | 显示全部楼层

回帖奖励 +1 渣金

我的路由不支持ipv6,得到的只是fe80开头的

9

主题

70

回帖

324

积分

中级渣柚V1

积分
324
 楼主| 发表于 2020-6-9 16:38:43 | 显示全部楼层
wangyefengol 发表于 2020-4-27 01:048 n; c/ @' I: t$ J* a% f
可能是你路由器设置问题,或者群晖网络手动可以固定ipv6试试
2 T4 M) @0 Z- @& }8 x
的确是路由器问题,谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|矿渣社区 ( 黔ICP备2024020525号-1 )

GMT+8, 2025-10-6 15:54 , Processed in 0.139873 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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