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

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

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

9

主题

70

回帖

324

积分

中级渣柚V1

积分
324
发表于 2020-4-26 02:47:48 | 显示全部楼层 |阅读模式
从4月1日来到矿渣后,就仿佛打开了新世界,经常折腾到深夜,然后第二天伴随着黑眼圈和唠叨出门...- e/ n' w1 s9 Q, P# v
明天,对了就是明天 又少不了一顿臭骂...' E9 f3 Q# t* Q$ `
! N; F  r  H7 i5 W  O% D
百度搜到一大佬在张大妈上发布的aliddns教程,按照他的照抄结果脚本把内网ipv6地址传上去了,+ z3 E1 M# l. S- P9 L" @8 g, o
3 m5 z: ?( S* H, Q% G
" a0 ^8 K3 D2 E8 I) I# e: M% r
仔细一看他的教程中 ipv6地址栏 第一行地址就是外网地址,而我的是内网地址,5 J6 A2 _& m4 g' K- ]
瞎子过河改了第20行 print $2 不行,33行tail -n4也不行,
* G3 @, R/ g; B1 c# {! m9 ~菜鸟看不懂代码,也不知道去哪问,希望能有路过的大神能指点下
. y  H" B4 ~, z6 s9 \
9 j, |( W6 g) E% S% P. g

0 a9 \5 U1 h) P1 F  ~
: I5 n' D- k7 U! S, f+ q1 u( ^ ds120j.png
0 K% f9 d: g$ d1 C* W: P) _0 t# n0 a2 f" P# `
  1. aliddnsipv6_ak="aliddns_id"- p2 E' m2 h% L  M
  2. aliddnsipv6_sk="password_info"8 W6 y9 @! i  u8 n- ~7 G
  3. aliddnsipv6_name1='nas'
    6 b+ a9 @; B  u& b& S- b; A, P
  4. aliddnsipv6_domain='mydomain.cn'
    + ]& B% z( r  R# Z4 R4 b. i
  5. aliddnsipv6_ttl="600"
    9 J: j& j8 C9 ~, B# F
  6. - d0 J" \7 z0 L
  7. if [ "$aliddnsipv6_name1" = "@" ]
    5 l7 @2 o, S5 E/ Q6 E
  8. then
    5 O# I  V6 O* e! S0 S& @
  9.   aliddnsipv6_name=$aliddnsipv6_domain
    - s6 T/ [% n1 t/ n8 h" S
  10. else* u( d# V4 j0 t% T
  11.   aliddnsipv6_name=$aliddnsipv6_name1.$aliddnsipv6_domain3 i6 A% X, {4 _
  12. fi. G% u3 t. g1 h/ Y" a& }3 D
  13. , u6 `$ n4 J& |
  14. now=`date`  q1 [! s  I: L. j: t1 G$ E

  15.   q6 A- `. S3 |3 ]
  16. die () {% s9 U9 ?2 Z3 X; k1 h/ G
  17.     echo $1% {, u) a4 P1 r/ o* R% R3 ^
  18. }
    6 o2 [- h) f! y2 Q
  19. - P9 W' X' K/ A4 X; }
  20. ipv6s=`ip addr show eth0 | grep "inet6.*global" | awk '{print $1}' | awk -F"/" '{print $1}'` || die "$ipv6"
    + L/ c$ a0 c  T7 F' K

  21. , w3 }# g8 \. N2 L/ _9 c% k! q
  22. for ipv6 in $ipv6s
    $ L+ q( S9 X; G. ^) H# ]
  23. do$ E6 g$ X$ f0 S% u( p3 e
  24.   #ipv6 = $ipv6! X- B3 v# `% [
  25.   break: ]2 [/ t4 h$ v5 Y0 L% {
  26. done: p  ~' m+ n! _
  27. : g, `, a2 j; [6 r  k0 _
  28. echo $ipv6- }. f7 H! a' J, W

  29. 4 L1 {( S1 k3 @& s
  30. current_ipv6=`nslookup -query=AAAA $aliddnsipv6_name 2>&1`) p# u5 k& K- \8 d, Q  H9 R8 c: l0 P
  31. #echo $current_ipv6
    / B3 ~' ?% Q8 l

  32. 9 r  ~" E! ?2 g' I
  33. current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`  b- f+ b0 e8 q- ~
  34. echo $current_ipv6- k! i0 Y( ~: i$ G3 I

  35. / A0 B0 f( }! Z3 g* o: \
  36. if [ "$?" -eq "0" ]
    3 W0 a2 z2 Z; M. ^# Y" O. u
  37. then3 h6 ^' ~/ s6 N
  38.     current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`
    1 C- H6 ], J% g" v3 A& {
  39.     echo $current_ipv6! [  B! d$ T* U2 V0 A

  40. ) k& |3 q7 U- ~" @  l
  41.     if [ "$ipv6" = "$current_ipv6" ]2 B) R( Z0 E9 X
  42.     then: q$ g. x3 E9 |' T$ {3 A
  43.         echo "skipping"( U7 N, g( ~& t0 N
  44.     fi 4 G5 i8 o" c8 P+ z
  45. # fix when A record removed by manual dns is always update error
    # k1 g3 b! o  S; |/ G( V$ C
  46. else) V4 |  F# y, n1 F5 t5 H5 R
  47.     unset aliddnsipv6_record_id0 N$ l' c. Q0 X. E: T, A) O' `3 x
  48. fi
    8 ?' M' k+ H. c2 O( [6 T
  49. # t0 [  b3 S1 b" l  A; H# s4 M% N
  50. , @  g# ~6 J' p& C
  51. timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`- K6 k% y  N, x0 ^1 m. H. C
  52. + v( f) o6 z: t: M! D' W
  53. " L- P' O( M" }  h: }
  54. urlencode() {
    4 N4 B) r6 K' T8 E4 l# ~* {( U- ^
  55.     # urlencode <string>
    - k* u8 \  Q# T
  56.     out=""
    $ d: K" b/ i, p1 i" A8 T7 E
  57.     while read -n1 c5 L; A) `( S$ X$ P# E" ]
  58.     do/ B: S6 c9 i. i2 m0 t$ {
  59.         case $c in
    & Z* F/ U8 _. ]
  60.             [a-zA-Z0-9._-]) out="$out$c" ;;
    6 b5 f* ~2 p, y$ ^$ s! Q% B9 N! E
  61.             *) out="$out`printf '%%%02X' "'$c"`" ;;; M) M0 \# q. X3 d* P/ p2 t2 l" u
  62.         esac
    * B/ d+ v0 y# p0 B( e  Q! o
  63.     done
    ' ^7 W7 L" |' R: d6 C7 ^3 x
  64.     echo -n $out
    ' P/ e3 g2 ?% z) d, Z# W, |
  65. }3 \' f9 w# o. g4 o/ d  A+ O0 d

  66. ' I" \. ]  r7 O! F
  67. enc() {
    , k0 A' J8 w$ e5 l* f
  68.     echo -n "$1" | urlencode
      a8 g! G  L. }+ D" A1 g
  69. }7 \- T7 Z8 c2 B" K% z' s7 \
  70. 6 S5 V* o! N/ c6 o5 Z
  71. send_request() {4 l' x( [: P! z, D- i
  72.     local args="AccessKeyId=$aliddnsipv6_ak&Action=$1&Format=json&$2&Version=2015-01-09"
    6 k; e0 N4 H" b; Q! k
  73.     local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddnsipv6_sk&" -binary | openssl base64)2 M- I$ l' ~5 N7 N' m" J9 W
  74.     curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")"6 u+ c& Q6 D. N. T% u8 B: J" o; }/ p+ |
  75. }
    " Z( m( U$ W- E3 ]. f
  76.   p# r' Z" E% m* _5 o; j
  77. get_recordid() {
    # c( t. P" e: H; `! g5 O' o8 y  `
  78.     grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'
    3 h) Y4 V7 V: l$ N: g+ c8 i: q1 E
  79. }6 z1 b: E4 l" a' H2 W) z, b

  80. 9 X$ L7 ^1 i' t6 n( P2 ?' I+ F
  81. query_recordid() {
    , S5 v& `: G: D% c6 B  o* V
  82.     send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddnsipv6_name&Timestamp=$timestamp&Type=AAAA"2 Z3 C8 Z# {' Y+ g: T4 z% x, ~8 ]
  83. }3 @# U" B: f( C4 h1 h% P
  84. 1 D; O3 F3 R1 L  c* x  F, y
  85. update_record() {2 {* J  d8 r% V, a7 f0 f
  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)"3 f' c' j" [6 L' s: s& m
  87. }
    9 M8 s. |. k9 y6 _! D" Q" F9 q
  88. / u, f% W! J4 p" I$ ]3 u
  89. add_record() {7 S( U9 ^5 e. _: n
  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)"
    / _9 Q$ y& |: p# t
  91. }2 {9 S1 u2 _, W( P+ i* ^
  92. 4 o1 o3 H& d+ H& N
  93. #add support */%2A and @/%40 record
    " g5 X* O( {" Z8 F0 Q0 q& r; A
  94. 3 I! R; b. X1 e) \/ h! p( r% ?0 ?$ `
  95. ; m* `  ~/ y5 [
  96. if [ "$aliddnsipv6_record_id" = "" ]
    , j+ Z1 ~; }8 M/ f
  97. then0 v# q8 b6 I/ _* H5 `) [& \, `' p
  98.     aliddnsipv6_record_id=`query_recordid | get_recordid`
    % Z5 ^9 o0 I2 Z  |6 h
  99.     #echo '-----------------' $aliddnsipv6_record_id
    6 v) r3 s* j% n3 S. _3 `
  100. fi
    6 r5 J- @' C, q8 Z7 X, }
  101. if [ "$aliddnsipv6_record_id" = "" ], f0 M& @4 k. \
  102. then
    ' `# k  Z) Y& ]) q- S& p
  103.     aliddnsipv6_record_id=`add_record | get_recordid`2 n" W' u( f9 A% P' g) ]/ O
  104.     echo "added record $aliddnsipv6_record_id"
    : T2 t: J; K* r: Z1 N/ g
  105. else
      P" T9 ~; Y- b6 {2 p0 ^4 e/ Z
  106.     update_record $aliddnsipv6_record_id
    0 a0 h& `3 C$ L
  107.     echo "updated record $aliddnsipv6_record_id"; A+ G, a1 V  H/ }) Q6 b* c) C
  108. fi1 M5 C6 D" F9 }2 r1 V/ [: c+ K

  109. $ ?+ o0 W% [& m0 ?
复制代码

1 J' P) O0 U8 t% a" r! S2 {+ `7 ]+ s/ O& y: j

% G& V' ~3 Y% F5 ^2 T+ ]

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,/ h6 n# e. w7 v4 D
修改一下配置文件就可以上传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:04/ f+ p6 K; p- u0 M3 }. F0 \
可能是你路由器设置问题,或者群晖网络手动可以固定ipv6试试

# a" o1 W9 [, m的确是路由器问题,谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-25 10:22 , Processed in 0.062651 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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