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

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

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

9

主题

70

回帖

324

积分

中级渣柚V1

积分
324
发表于 2020-4-26 02:47:48 | 显示全部楼层 |阅读模式
从4月1日来到矿渣后,就仿佛打开了新世界,经常折腾到深夜,然后第二天伴随着黑眼圈和唠叨出门...
, J9 T7 ~" S2 h, `明天,对了就是明天 又少不了一顿臭骂...
) o. `3 X3 M: N( S
% @& E, Z7 ?6 T百度搜到一大佬在张大妈上发布的aliddns教程,按照他的照抄结果脚本把内网ipv6地址传上去了,
: y! \. D: y* ]% k" R! N) C/ e
/ W& a9 T* n6 o1 [
! m) w8 @5 x' S8 S5 F& U6 t, a仔细一看他的教程中 ipv6地址栏 第一行地址就是外网地址,而我的是内网地址,1 |  V  L8 n+ R, o" h
瞎子过河改了第20行 print $2 不行,33行tail -n4也不行,' ?9 r  N0 a" P. j) T5 I" O
菜鸟看不懂代码,也不知道去哪问,希望能有路过的大神能指点下
- _7 b& a1 d" R+ R' h

+ f$ g0 [  R0 l8 A+ y- }( `; O6 x  N. E9 c

: v1 Q. K7 a1 n1 q& q" v ds120j.png % e; U* h" q6 O$ Q
/ D& s! J" T6 z: Q  W( E
  1. aliddnsipv6_ak="aliddns_id"+ `& M0 p% C6 o! j. |
  2. aliddnsipv6_sk="password_info"( N  Q, m$ A- W8 D
  3. aliddnsipv6_name1='nas'
    8 q+ e4 c7 [* ?. O! ]4 k2 V
  4. aliddnsipv6_domain='mydomain.cn'. U' x" z+ X( s$ }9 i& `
  5. aliddnsipv6_ttl="600"
    ( ~6 c6 g3 Y/ d

  6. 3 K" j' S  r4 b: |9 P
  7. if [ "$aliddnsipv6_name1" = "@" ]
    % Z  \4 |2 }1 s- t- e
  8. then
    1 W3 ~; m, n) Y: C
  9.   aliddnsipv6_name=$aliddnsipv6_domain) c0 W4 U+ a  D& Q3 q/ a; O
  10. else
    ' a( C/ r7 I& y! y. q
  11.   aliddnsipv6_name=$aliddnsipv6_name1.$aliddnsipv6_domain) ?+ ^$ z/ M5 W$ x
  12. fi
    ( W( O9 ^, p5 X0 g

  13. + |! E+ s; H  b; p- i) i" _0 H/ g
  14. now=`date`
    % S6 a3 e1 h% _

  15. 5 ?0 e! _3 J6 t' M* A6 }8 `7 Y% E
  16. die () {
    4 i$ A4 S  X7 \6 P
  17.     echo $1
    : I6 t. R* N8 K7 n6 I6 C. O( r
  18. }
    7 ^* c$ F" q7 i' }8 P% p
  19. 3 z. D' f2 S& P& T5 n
  20. ipv6s=`ip addr show eth0 | grep "inet6.*global" | awk '{print $1}' | awk -F"/" '{print $1}'` || die "$ipv6"3 s9 J+ O- y1 I# g! ~& `

  21. + y/ Y$ c) n+ {+ u) U" ~* ^
  22. for ipv6 in $ipv6s
    # V$ d4 O; F7 k/ U% n
  23. do
    4 [: s# Q8 Q( q& D9 [3 y
  24.   #ipv6 = $ipv6! I; i5 i& Y& _& _( M9 h
  25.   break
    : ^" \7 n- t" [4 n+ u5 j4 G( C/ o
  26. done
    " }8 m) a  x! Q7 K7 v( @

  27. / A! t' M+ J' \1 d
  28. echo $ipv6
    % g" ~) n; g6 F/ u- P2 \+ V+ P8 P
  29. 0 X3 j8 Q- u  E# k
  30. current_ipv6=`nslookup -query=AAAA $aliddnsipv6_name 2>&1`
    ' k# ^7 u# }6 P0 M- S: R
  31. #echo $current_ipv6
    ; d" z" b# g& L& t( p

  32. 2 N7 R4 o4 R. {, j' I/ @
  33. current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`
    ; w- ^+ |5 [. X& T7 G$ {5 q
  34. echo $current_ipv68 z$ P3 y' W1 E; `

  35. 5 T* y7 e( _8 z
  36. if [ "$?" -eq "0" ]$ _' T# t, a5 z  e0 ]( W$ K
  37. then
    ( b+ A, g! S7 ~6 l& m# w6 B! n3 z# L
  38.     current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`6 ?5 z# @2 C9 l$ D* l
  39.     echo $current_ipv6
    $ }7 ^5 K4 G0 [% X
  40. 1 I. _; q  x7 f$ `' ^, \
  41.     if [ "$ipv6" = "$current_ipv6" ]
    9 P, j% C5 s( F$ s. B( U0 ?0 A
  42.     then: [4 z2 y6 y6 }1 N2 N1 h) G! p# x! T
  43.         echo "skipping"
    0 l/ s7 b. }6 Z
  44.     fi # Q) a3 H, _  a1 M4 f3 }
  45. # fix when A record removed by manual dns is always update error( j& O. E" c. {. J/ m/ _$ Z# P
  46. else! q* }. C5 Q. h7 v- v- v
  47.     unset aliddnsipv6_record_id
    $ w' o' y) r8 B( j
  48. fi- r  S7 V" a* Y: C

  49. & R( [6 g  ^: w: l. W
  50. / F5 F  o3 I! {1 G
  51. timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`
    # a1 V, M1 g9 R% b" t; ~  r  k
  52. + _0 q3 S7 w: P3 J1 f6 A; \5 V3 F

  53. ) Y! d+ u8 h  l  i
  54. urlencode() {
    * M1 n* G% e* P* Y
  55.     # urlencode <string>
    # m* d1 A$ f! i7 E( b0 P. h+ P
  56.     out=""$ y4 h& e5 b4 }8 y, s0 H
  57.     while read -n1 c% s8 J5 J% W# l
  58.     do
    " K+ b: K9 |, b! r& A2 l9 \$ k
  59.         case $c in) N$ Z! @( Y1 }! v9 q
  60.             [a-zA-Z0-9._-]) out="$out$c" ;;
    & d: j* E% c8 |' M6 B
  61.             *) out="$out`printf '%%%02X' "'$c"`" ;;& g: a0 T: Q) |) k. c& j
  62.         esac
    ' X: o6 L& n' C, \
  63.     done1 \( S  B/ ~; s0 ]
  64.     echo -n $out) w. p! s6 n2 z& i* {8 x, g
  65. }
    ; G5 s& c, a& ^& a+ r4 g8 L

  66. ! ?" r$ Q: M8 H4 m% x9 B( B! e
  67. enc() {
    ! f! H: W( Q" A
  68.     echo -n "$1" | urlencode' B- Z4 f2 G( p! O9 I
  69. }+ x4 h  V3 j" n! X9 A' e
  70. $ u. p! j- x: L1 y
  71. send_request() {
    4 W( P- e1 z4 i' C9 r) N
  72.     local args="AccessKeyId=$aliddnsipv6_ak&Action=$1&Format=json&$2&Version=2015-01-09"' }$ z( q5 p* d
  73.     local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddnsipv6_sk&" -binary | openssl base64)! x+ S+ w: t  w# f+ M& |) c" L% ^* {
  74.     curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")". m8 n' z4 X6 l& g) J' h
  75. }
    & |& B0 V) A6 D9 r4 K5 z! x3 p! }

  76. ; h- y" e: l9 e- l
  77. get_recordid() {8 E; d3 L- ~/ I9 W9 J+ v
  78.     grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'% J* k! F' s5 |& g! @& m1 f) ]( B
  79. }. \$ j2 H0 I! {: A/ k, _

  80. * t! j0 p% b# @  L1 h" V: d
  81. query_recordid() {
    1 x& K$ P. P6 k( `
  82.     send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddnsipv6_name&Timestamp=$timestamp&Type=AAAA"
    - t& `! i: Y! T
  83. }0 `! j2 x5 f) ^- F5 X
  84. 8 \" s! X! r2 Z' ?" A
  85. update_record() {+ P3 c+ t6 U* D) ^  D
  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)"
    1 j! P6 }9 N3 c! z6 X
  87. }
    3 L. R2 B# G5 u: h0 ~
  88. - b9 G  e& z# L2 c" X- a* {/ S
  89. add_record() {$ s0 M* ^# Q* A# Y# z" _
  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)"
    % o$ o! O9 g4 j
  91. }3 ]1 X- O2 h3 d" ^/ _) e

  92. 3 S+ D8 V, X, ]; ~
  93. #add support */%2A and @/%40 record; I9 i$ W! |! h( F) \7 M3 w1 T# {
  94. . G& @7 n! M; _- I: S
  95. - k" T% k9 B1 E$ F
  96. if [ "$aliddnsipv6_record_id" = "" ]: a/ C) k5 x9 n4 V6 p8 Q3 ~
  97. then
    * k1 I, U1 m( m8 i0 Q
  98.     aliddnsipv6_record_id=`query_recordid | get_recordid`
    % ]  G0 i, l6 e+ j' t
  99.     #echo '-----------------' $aliddnsipv6_record_id
      ?1 X+ n$ @) |7 F+ `' ^% O. Y8 i
  100. fi1 L6 I! |" H" x
  101. if [ "$aliddnsipv6_record_id" = "" ]2 d3 _6 w& c. x' W
  102. then, S4 b: Q, A7 _, ?% _# O+ b
  103.     aliddnsipv6_record_id=`add_record | get_recordid`
    : g, Y' Q% R, z- Y( t
  104.     echo "added record $aliddnsipv6_record_id"2 [* ]8 e+ [7 Z* ?
  105. else; @% |4 n! H1 e4 q, N3 F
  106.     update_record $aliddnsipv6_record_id
    2 \: q5 L% T1 b, s
  107.     echo "updated record $aliddnsipv6_record_id"4 ]  L7 t2 p: Q7 B
  108. fi
    ( K/ a0 P, D! A$ A$ E1 ]% X

  109.   e) r/ y7 o0 Z5 x* U
复制代码
' q+ a1 z9 p: r- \( I

8 w- f5 |* ~. l4 d' m; }) W! i# o& Y6 ]+ R8 F6 y# D4 U

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,
1 ^+ j9 Z( D/ L  c( N9 R, }& 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
8 A* N; s" n8 D1 m, t# r; w8 B可能是你路由器设置问题,或者群晖网络手动可以固定ipv6试试

% L4 L( z6 Y8 n* w的确是路由器问题,谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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