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

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

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

9

主题

70

回帖

324

积分

中级渣柚V1

积分
324
发表于 2020-4-26 02:47:48 | 显示全部楼层 |阅读模式
从4月1日来到矿渣后,就仿佛打开了新世界,经常折腾到深夜,然后第二天伴随着黑眼圈和唠叨出门...
8 q5 [, r2 U, ?, X4 ^0 L明天,对了就是明天 又少不了一顿臭骂...
0 {3 |; X+ Z3 X/ {; Z
. k/ T! E, |( f7 l5 f百度搜到一大佬在张大妈上发布的aliddns教程,按照他的照抄结果脚本把内网ipv6地址传上去了,- B5 ?9 W/ j9 Q1 {) P

+ n! w6 i) {* I0 P1 Y! x1 @  h) F+ `2 a# Q8 s
仔细一看他的教程中 ipv6地址栏 第一行地址就是外网地址,而我的是内网地址,1 @# \; F1 a4 A: ]9 ~
瞎子过河改了第20行 print $2 不行,33行tail -n4也不行,+ H* i+ G; Y. o& [
菜鸟看不懂代码,也不知道去哪问,希望能有路过的大神能指点下
/ E) E5 E% W# j% v

  ^, i3 k; F# v8 k! I" o  Q# a* ?/ j; I* @( @
4 b& {7 }0 B& i5 I, z
ds120j.png
& ^( G' g1 E! f' r' _; u2 ^' _. o4 v# {* ~
  1. aliddnsipv6_ak="aliddns_id"
    9 f3 n( u+ q+ Z2 r% h; A% i9 k
  2. aliddnsipv6_sk="password_info"+ \% N8 y* G* {$ c- l
  3. aliddnsipv6_name1='nas'
    + n/ ~0 ]; M# d8 l4 p
  4. aliddnsipv6_domain='mydomain.cn'8 v% B  B' X; U& U% s4 w' E
  5. aliddnsipv6_ttl="600"4 z# F/ i3 G) z, w- y  J
  6. $ f$ j- ]7 {9 y8 k: r
  7. if [ "$aliddnsipv6_name1" = "@" ]" x4 a( j6 a5 P0 f2 ~. H/ A# {
  8. then1 }* K% f8 a  ~. E
  9.   aliddnsipv6_name=$aliddnsipv6_domain5 ~1 S. X. [: I1 ^) n3 a. V
  10. else
    # y4 X# B9 Y# n% p! }2 ~; D/ b
  11.   aliddnsipv6_name=$aliddnsipv6_name1.$aliddnsipv6_domain
    " l: V) v9 y+ B3 h0 Y; u
  12. fi
    7 m' J0 @. m* k0 ]" Z
  13. 8 L7 v: T, l$ j  {
  14. now=`date`
    ) o2 H" N+ G- G9 ?
  15. 1 y6 m( c. `6 ^* U, p* `
  16. die () {
      t. l4 b( M; ?# Z$ q' |
  17.     echo $1
    . c1 V. e- ]  {7 ?* ^
  18. }
    0 V2 ^5 y3 ?; _8 g2 h, M

  19. 3 b" ]  k3 m/ S) l& `9 q4 u3 h
  20. ipv6s=`ip addr show eth0 | grep "inet6.*global" | awk '{print $1}' | awk -F"/" '{print $1}'` || die "$ipv6"7 v3 n+ W2 ]9 [0 z0 K2 ~
  21. . w7 u, Y) a$ N
  22. for ipv6 in $ipv6s  L7 g1 D8 n" a" S2 A/ @
  23. do
    ; P2 w/ B6 W& X" U8 Y% S
  24.   #ipv6 = $ipv6# C) _' ~6 ]1 A3 A7 `: l, ?
  25.   break3 M* U7 b2 X! ~9 J! W% T  p- r) u: l
  26. done
    6 q  k. \! Y0 G$ o" g0 e  e
  27. * s9 ^8 T8 M! u1 n/ I
  28. echo $ipv6: N' B/ L1 |8 Y( k, |

  29. / t8 z4 Y  L  l$ o/ E
  30. current_ipv6=`nslookup -query=AAAA $aliddnsipv6_name 2>&1`% D+ m6 A3 Y7 ]( |6 N0 k
  31. #echo $current_ipv68 E+ n) z! f* ]4 a2 Z% I  u
  32. / ^6 g1 H3 a& d# X6 L' ?
  33. current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`( w' r+ W; e: [( Q8 Y
  34. echo $current_ipv6
    ) o+ y. F; x* W2 W& q8 [8 Q) l4 r
  35. ; q4 \, W0 w$ i5 W' N
  36. if [ "$?" -eq "0" ], h* Y% _; s% C/ K! [$ s
  37. then! p5 B7 i* W# j7 ~5 d2 o" c
  38.     current_ipv6=`echo "$current_ipv6" | grep 'Address: ' | tail -n1 | awk '{print $NF}'`8 c3 f1 d6 ^2 Q# `3 f1 Z  w
  39.     echo $current_ipv6
    : R& t6 i7 W- @4 t9 Z

  40. 6 z9 B+ }! s) |7 I' B# G4 w% F2 _
  41.     if [ "$ipv6" = "$current_ipv6" ]
    ) y1 U% l1 m% H/ x/ ^
  42.     then- Q7 o- _- Q3 g% Z
  43.         echo "skipping"
    - k+ {6 T" f' @  Y: Z
  44.     fi
    ; ^" y+ m2 B! c$ O6 f5 ?
  45. # fix when A record removed by manual dns is always update error
    " K  n4 O# c1 I' H' E9 I/ W% z
  46. else6 z' U; E3 m# }) g
  47.     unset aliddnsipv6_record_id
    / I1 |' k- d' D" Q, t# h
  48. fi
    ; |+ l" P( @, s! J2 Z1 X

  49. 8 Z) p) _! J' [5 L+ a/ z

  50. % F: O% G, K; d6 P, {9 @0 P
  51. timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`5 G2 w( u( k9 g. B# q

  52. 1 P, |( E! T. S) Y0 a/ k7 _$ M: y

  53. 1 G% s8 U  j5 x( g$ M
  54. urlencode() {
    & l. l5 v( u- n" ?! B
  55.     # urlencode <string>
    3 F* Y2 \2 X8 M7 R- `1 b& n. v- P6 Q
  56.     out=""( R' b' |5 Q  P
  57.     while read -n1 c8 H4 _0 r- `4 S7 F
  58.     do
    + G. J& T( H& f: A8 j( D9 ?4 ]
  59.         case $c in4 L6 A) c9 l, v3 C# O2 J& q) l2 ]8 g
  60.             [a-zA-Z0-9._-]) out="$out$c" ;;, S2 J- A/ F: ^1 k4 f# E
  61.             *) out="$out`printf '%%%02X' "'$c"`" ;;
    : i9 G. h* W- @) H9 x
  62.         esac$ P$ {8 O- c2 X. V5 F
  63.     done) e2 N7 q& }$ T
  64.     echo -n $out
    / ]7 l% T  t. Z
  65. }
    ) n) T: S+ o3 K5 j3 ^7 A- H) G4 s+ }7 v
  66. : P" V8 E3 I% A# i9 M; C
  67. enc() {: ?+ f7 G0 s- h
  68.     echo -n "$1" | urlencode2 f( ?8 ]; ^* S/ F1 c' F
  69. }
    6 h  U: z9 F: n9 {% X9 Z/ b% J

  70. 0 L5 q* {! f' r; o" ?
  71. send_request() {9 [9 H# k# M8 A
  72.     local args="AccessKeyId=$aliddnsipv6_ak&Action=$1&Format=json&$2&Version=2015-01-09"1 o; y9 X4 C: n7 F1 N4 [
  73.     local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddnsipv6_sk&" -binary | openssl base64)
    6 i/ [+ P. l+ h0 \
  74.     curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")"
    " l5 O* b# Q( z4 P
  75. }2 O+ ?3 z* }0 e, b* }$ d( m8 C% ^) u

  76. 3 M1 o# W( W7 u
  77. get_recordid() {
    * Q* I9 x. j! u9 M7 ~
  78.     grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'
    8 L/ }& i; z6 Z' v: X
  79. }
    ) D4 h3 r2 O+ |
  80. $ L9 G+ w6 g$ `8 h& F4 R* ^9 g" g- t
  81. query_recordid() {
    7 h8 V: N6 e/ @+ j& I
  82.     send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddnsipv6_name&Timestamp=$timestamp&Type=AAAA"
    , d, u) K, N- s+ Y
  83. }
    6 z4 P% i9 {3 F0 p% W. S. V

  84. % `7 S/ S) W/ h
  85. update_record() {& _* h; o9 o# C( [! G
  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)"
    * S4 r2 G" |7 H& v% e
  87. }
    % }' r+ B1 J7 K, ]

  88. " s8 m8 Z# E% s( r. E5 a/ H; [+ T
  89. add_record() {
    : j7 n, E0 }9 w2 F8 C% J; 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)"5 u! W5 E6 l7 Q. ]/ B. [& N
  91. }
    ! O# f+ G" t2 a8 n6 j% _
  92. 2 \8 Z* D2 P" g' x
  93. #add support */%2A and @/%40 record2 L1 ~" _- Z& g, E
  94. ) |( k& x8 {* |; ]0 u1 r

  95. ; `1 U% L) r- ?" |  _
  96. if [ "$aliddnsipv6_record_id" = "" ]* j, Y# E8 r3 W
  97. then  Y$ i  U& J( @0 u7 i6 j
  98.     aliddnsipv6_record_id=`query_recordid | get_recordid`9 P5 A  b% D9 @4 c
  99.     #echo '-----------------' $aliddnsipv6_record_id
    % n0 o" Z- Y. Y4 [, R3 k
  100. fi# i( J& u8 d! [  v) r
  101. if [ "$aliddnsipv6_record_id" = "" ]
    * |+ m8 y$ x5 ^, S5 @0 S7 M
  102. then% a1 I1 A" s6 j5 a
  103.     aliddnsipv6_record_id=`add_record | get_recordid`
    ) J$ ~' _1 X3 l) k
  104.     echo "added record $aliddnsipv6_record_id"" q* ^$ h/ b! B% D" Q7 X4 F
  105. else2 ]" t) Q+ t5 F/ {$ {/ }
  106.     update_record $aliddnsipv6_record_id9 K+ K4 s  c  M0 B9 _% u7 d+ L
  107.     echo "updated record $aliddnsipv6_record_id"0 P5 h6 V9 D2 v7 d4 F2 y
  108. fi
    + ~* U: v7 X. R4 A" n, Y
  109. - \5 @8 Q' O! m, i0 T- v' [, S
复制代码

2 l' V+ d& M0 P( ^! L3 f; x/ h( p, \1 X, q) W' w& Y' w# @
1 q' \4 F1 A2 x

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,5 z4 j9 H, F/ i1 m
修改一下配置文件就可以上传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
' `' M* P1 C4 S$ x; N2 g  u可能是你路由器设置问题,或者群晖网络手动可以固定ipv6试试
  |8 d0 o  x0 ]7 U
的确是路由器问题,谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-25 09:58 , Processed in 0.999481 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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