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

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

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

9

主题

70

回帖

324

积分

中级渣柚V1

积分
324
发表于 2020-4-26 02:47:48 | 显示全部楼层 |阅读模式
从4月1日来到矿渣后,就仿佛打开了新世界,经常折腾到深夜,然后第二天伴随着黑眼圈和唠叨出门...
5 j- D- ~& h8 O! s明天,对了就是明天 又少不了一顿臭骂...
2 `4 Z3 ~5 A3 T  k( ^2 i  \
1 [$ _+ L; n! Y8 R百度搜到一大佬在张大妈上发布的aliddns教程,按照他的照抄结果脚本把内网ipv6地址传上去了,
% w# Z8 \  ^8 O7 c
9 C; H0 G% e0 }/ ?' z% Y8 s1 ]  j- w# j
仔细一看他的教程中 ipv6地址栏 第一行地址就是外网地址,而我的是内网地址,: W  p: G7 f2 ^1 |3 ?! ]' A' [% p9 ]
瞎子过河改了第20行 print $2 不行,33行tail -n4也不行,
) T. ~+ X0 o# w菜鸟看不懂代码,也不知道去哪问,希望能有路过的大神能指点下) u. u. T+ S( R& S9 z

9 o$ P( w) a) h' \: J( z/ V+ m% ?! `5 w/ L0 t5 j3 q
0 I; X" P6 P# ?4 y
ds120j.png , F" V, {; ^5 c; q
" Q2 ?- y- K. w# `  r3 f$ x5 r! d! {
  1. aliddnsipv6_ak="aliddns_id"
    9 u  e# H% e; w' c! ^
  2. aliddnsipv6_sk="password_info"# q. \$ S6 e$ I. @1 {$ z9 [0 D
  3. aliddnsipv6_name1='nas'
    ( W  P& _( R" z7 O/ B
  4. aliddnsipv6_domain='mydomain.cn'2 W. d1 v2 T8 m+ H, B
  5. aliddnsipv6_ttl="600": f+ i" B5 W9 p

  6. ' G( N$ {& l; ~
  7. if [ "$aliddnsipv6_name1" = "@" ]
    7 c8 W0 I" L2 B8 e  u8 `1 V3 O7 L
  8. then  s& K9 f; E; H: C  {9 D6 w% E
  9.   aliddnsipv6_name=$aliddnsipv6_domain" l7 l/ j+ Y  s2 S, i
  10. else
    5 p2 G! M% j2 O/ \8 Q( o
  11.   aliddnsipv6_name=$aliddnsipv6_name1.$aliddnsipv6_domain! J( s7 ?3 z7 |1 X; H. R
  12. fi, z) z4 c1 P3 ~/ k* f! M

  13. $ u' V0 s5 k$ A
  14. now=`date`+ l9 b  t1 C! t- U

  15.   Y) d$ O9 O6 n2 A
  16. die () {
    ( e( a: c+ y. h
  17.     echo $1
    * J4 L! |3 C# d# f: u# o& V' r
  18. }
    2 _! i& ~) j5 b% y; n
  19. 4 s! D; U% v2 N, k
  20. ipv6s=`ip addr show eth0 | grep "inet6.*global" | awk '{print $1}' | awk -F"/" '{print $1}'` || die "$ipv6"
    ' m$ k4 t! E5 o( Y
  21. ; r" }. C' u. D7 n
  22. for ipv6 in $ipv6s
    ( T/ Q: H4 I7 L2 P
  23. do
    / f. m( W& j8 A
  24.   #ipv6 = $ipv6$ o: X  T, o$ u( Y1 k, f  O
  25.   break
    # G  a2 R8 w" R: g$ G
  26. done0 P4 \7 Z8 t+ F- S  ?1 H
  27. 7 Q' O  ?8 x3 _% `4 ~# ?
  28. echo $ipv6- C. s* a/ m8 Q

  29. ! c! t/ H, j0 F4 f6 Z7 q, n
  30. current_ipv6=`nslookup -query=AAAA $aliddnsipv6_name 2>&1`' H' n7 A5 ~" x9 k7 ^- C
  31. #echo $current_ipv69 K5 m. F; I6 G5 J
  32. 8 A7 ?' m3 U3 J1 B
  33. current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`8 r8 F1 U0 X* d% d, ~- B
  34. echo $current_ipv6
    . D- W  g) v; b3 x, H' e: C3 p
  35. 8 T$ }1 ~4 M, H4 R9 A
  36. if [ "$?" -eq "0" ]7 h7 m( q) i$ ^( E- s/ r2 M3 Z
  37. then
    9 D, F8 ?/ S; s& M/ V7 K4 b
  38.     current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`. _; d) i8 z, G, z
  39.     echo $current_ipv6
    # x- J- l. \, I  T! n- O3 O

  40. , e5 \+ H4 L! O, e8 ]+ b" k
  41.     if [ "$ipv6" = "$current_ipv6" ]8 c$ Y$ p0 Q6 P1 E  d
  42.     then
    , U: i" h: k; Q- o9 R6 }
  43.         echo "skipping"" v+ ]  l' s1 r4 q; G( u) _( o* e
  44.     fi
    9 Y# M$ c8 ~) \/ ?; f9 q
  45. # fix when A record removed by manual dns is always update error0 M4 k) {4 B3 `4 q7 P+ K' |2 c+ \/ {
  46. else1 i  |* H: z) _
  47.     unset aliddnsipv6_record_id2 A6 y# M$ x+ z& O! p
  48. fi" o* i  D- }- [& `) W! F9 }# a

  49. 6 E3 ^( p. ^8 C# j) k

  50. 2 T& ?, K' r) O7 Q8 d) k" k8 j
  51. timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`
    - `1 ~5 J1 z) C4 H5 o. N

  52. ( R# {- ^' }% K* C1 P( ?

  53. 1 l: F8 w% u4 q3 r
  54. urlencode() {  l  q5 {3 |* _* Q# p' _
  55.     # urlencode <string>
    0 V- J; Z% m9 S0 l: G3 R
  56.     out=""% V5 u5 ~# D4 E& C/ h
  57.     while read -n1 c. W1 A! M# [/ v$ T( Y6 e' b
  58.     do
    9 N9 m' f0 S; h) T! e2 j# j
  59.         case $c in
    3 j! r: f! t  z& R) J
  60.             [a-zA-Z0-9._-]) out="$out$c" ;;7 g" y7 L" P, b2 q2 m' }* E5 N9 k
  61.             *) out="$out`printf '%%%02X' "'$c"`" ;;
    , E$ F( w! r5 T1 I  y3 j+ }
  62.         esac
    % n% U, o, G& a& }2 v
  63.     done
    ! o+ n7 r- A& w4 L* G
  64.     echo -n $out
    3 o* F0 I3 l  h  ?6 b. I
  65. }
    - _! Z* k% ^. Z" c* _5 v. n& v) T

  66. 2 k9 }( j+ t" j- {( f# I
  67. enc() {
    4 i; J/ {$ n/ ^5 `2 e9 n# L
  68.     echo -n "$1" | urlencode
    . H( T: p$ i& }
  69. }, l4 v' F, J) M
  70. ( p& J6 Q% s8 p+ G$ t/ E5 j
  71. send_request() {! B5 O8 K2 o. |2 q
  72.     local args="AccessKeyId=$aliddnsipv6_ak&Action=$1&Format=json&$2&Version=2015-01-09"
    $ J0 I3 U1 p' D" q$ v3 |3 E
  73.     local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddnsipv6_sk&" -binary | openssl base64)' f% C6 [  M; m+ c7 G: `$ c
  74.     curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")"
    ) p8 f' N+ Y1 M0 _; h
  75. }( f' x- N) H7 {; i; J8 [

  76.   g, q" s* M4 C/ @: a! M
  77. get_recordid() {
    - ~- U- L7 u) V7 D0 M( D& K
  78.     grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'
    0 P  [7 f0 Q- [5 L
  79. }& R+ F$ `3 k2 w" E  Z' p! p
  80. 1 Y! d! S0 j7 q+ o* g/ ~- V
  81. query_recordid() {
      k; ]' r# t3 g. }' S7 S
  82.     send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddnsipv6_name&Timestamp=$timestamp&Type=AAAA"" g+ ]3 J; l3 p+ Z* q# l4 b; J
  83. }  j& _. \2 C; S5 B+ b7 Y

  84. ' S0 e0 y5 g8 j2 |8 X5 e$ t- X
  85. update_record() {
    : n# ^5 l5 n4 m* w8 H
  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)"
    8 X4 M. c' \: U( i$ p2 M
  87. }
    ( |+ r5 r' x7 l% h4 b9 ?  T( ]5 q
  88. 7 e7 v2 k+ x+ v8 t# t6 `, _
  89. add_record() {' W1 {7 L4 }" c' [  u. t
  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)"
    : G" O  k: U0 g& _, h
  91. }
    " u/ }' P$ {0 W4 p3 j+ r1 |

  92. / b# l! I4 E7 {' P8 Q$ C
  93. #add support */%2A and @/%40 record% Z0 ^+ P, v$ t/ l/ O
  94. # a% b  [, U2 F  J! ]7 z8 b: x4 y* i

  95. + @0 q  R- Y9 X  d
  96. if [ "$aliddnsipv6_record_id" = "" ]
    3 j5 s, z+ k; `) Y
  97. then
    3 x: l1 A+ f7 d; T1 z) Z) M
  98.     aliddnsipv6_record_id=`query_recordid | get_recordid`& t& b9 c! e" k* W5 i- b
  99.     #echo '-----------------' $aliddnsipv6_record_id  u0 L3 i2 q6 d
  100. fi
    ' q4 @4 D* O# f# m& m
  101. if [ "$aliddnsipv6_record_id" = "" ]7 T. O" q3 ?, P9 \/ S/ m3 g! q) j
  102. then1 u; C2 Y' u7 a! k2 d& s
  103.     aliddnsipv6_record_id=`add_record | get_recordid`
    ' a/ D. z4 l* K# O0 U7 v$ Q
  104.     echo "added record $aliddnsipv6_record_id"# T) ?/ W, T: m. z  a4 P
  105. else( E' }$ W+ J( R+ q- [  H; S( X
  106.     update_record $aliddnsipv6_record_id
    + L% G1 T& l( P% e, Z0 h
  107.     echo "updated record $aliddnsipv6_record_id"
    $ B* k! v- }: p* o- t
  108. fi
    0 R9 l4 f; j1 h' w
  109. . f* Q  }7 k* c8 |& M
复制代码
' d. [1 ]( u' I9 T2 T

5 G! L3 X9 n/ O/ M# [8 c
; N, Z. ~; \2 w3 D% `( c, m

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,6 n) t, ^8 _2 N
修改一下配置文件就可以上传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
( Z( |% T( l* w  L, E  v% E! Z可能是你路由器设置问题,或者群晖网络手动可以固定ipv6试试

8 |8 G# l4 ~8 ?6 e! R( N8 z的确是路由器问题,谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-9 04:35 , Processed in 0.066914 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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