- UID
- 1
- 阅读权限
- 255
- 注册时间
- 2006-7-24
- 最后登录
- 1970-1-1
- 在线时间
- 小时
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
1.注册阿里云账号。
, R3 n) j3 ]0 a" Q9 p2.注册一个域名。
+ s8 e+ E+ G) r/ k/ x& K! T1 B/ f/ [% l% B+ s, V. [
如果域名不在阿里云解析托管,需要先转过去,具体方法是联系域名提供商修改域名的DNS服务器,修改方式参考这里:https://help.aliyun.com/knowledge_detail/39844.html
$ }/ n6 W! F9 V! |然后去控制台找到云解析,将域名添加进去;
" d. p+ Z3 ~* N4 ?5 N; c3 S) g/ r' n
2 ^" O" u6 X, n/ Y* x( f- E
6 y5 b" L1 `1 |6 }( w5 s% `3.到阿里云控制中心找到access key和secret并保存下来(强烈建议遵循阿里云安全最佳实践的说明 ,使用RAM子用户的AccessKey);. R% n& f) a$ q/ q7 `4 [
# \3 `. S$ I: B
7 g+ J9 ^5 V# D% r( V4.到群晖控制中心找到任务计划新增一个计划。: M% K) f8 n6 T5 b7 B0 B
新增->计划的任务->用户自定义脚本& i# R2 u5 J; }% _; R
1 t2 Z2 g" }/ W
+ n# Z" _2 Q5 g& s设置10分钟定时) M! Z3 u! D* h9 s6 A
, x; G1 D i3 w' N0 V9 r
- Z% u/ a' |+ V" E4 L
0 N; ~: s' l" |. ]
复制以下内容,根据自己的情况修改中文部分并添加到任务设置自定义脚本
) ~1 _8 {# G4 P* }7 J( [; F
; B2 {. g0 d9 d) s- #!/bin/sh
" p9 U5 z2 \" `0 j1 M# a9 \+ c - aliddns_name="你的域名前缀"+ B& Z. A3 n2 [) L3 k2 u/ G& m
- aliddns_domain="你的域名"
1 f2 z1 }: {7 W8 Q# C. V! }# e) _ - aliddns_ak="你的AccessKeyId"
& F( ]9 T+ W/ A1 F0 B) S - aliddns_sk="你的AccessKeySecret", ]5 i) t4 Y2 ], F
- - s9 |% P6 ]0 u0 f- J
- aliddns_curl="curl -s whatismyip.akamai.com"2 B$ ]7 N& L, ~* c9 X; W
- aliddns_dns="8.8.8.8"/ ?- l7 P& U3 K5 V( [' ^
- aliddns_ttl="600"
. d5 n2 q+ D6 G - # \/ ^ n( Q9 k) P6 M7 M
- ip=`$aliddns_curl 2>&1`( D' h. l$ h7 r! V/ ]# k' x6 t$ r
-
- ]" J* S9 r; |$ ?# k( j/ P3 u - current_ip=`nslookup $aliddns_name.$aliddns_domain $aliddns_dns 2>&1`
+ r% o8 Z9 H* D5 B3 C - 2 W- y! N& ?/ w" |; m; t
- if [ "$?" -eq "0" ]; V: w% y; b! E+ V( Q3 y
- then$ U! f' a" Q$ B7 e! g
- current_ip=`echo "$current_ip" | grep 'Address 1' | tail -n1 | awk '{print $NF}'`! p+ t7 | H# \" J/ B9 B/ x
- if [ "$ip" = "$current_ip" ]/ S) C) i; X, \8 t& C
- then
+ I" b# l3 ^8 M - exit 0 e5 n. K' {5 ?) F6 L5 v
- fi 0 a7 C. Y" X/ K' D O3 ^" ~
- fi
# j2 \! H& h0 M7 s0 I7 ]- ]$ s - # \0 }1 z3 n& C8 c2 o
- timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`3 I3 l8 @4 f! L3 P/ V3 o( E3 D$ l
- ) N, V/ C: I/ _, `2 `! ]
- urlencode() {
, h) d+ w3 f9 h" A; e S - # urlencode <string>
4 F3 O' d" S5 \6 y+ b - out=""
; C; w! o: X# h - while read -n1 c4 t: ?( n) r% _4 O% C; z$ |
- do
/ v; R& l; N: d2 ? - case $c in
0 c2 R, Y; i, s. j# V - [a-zA-Z0-9._-]) out="$out$c" ;;
( }4 [5 ] g4 u! {% L& ?, Q - *) out="$out`printf '%%%02X' "'$c"`" ;;
# r( T; U, k% |0 g - esac( _: R; V& }! O0 }$ O' C
- done
1 A% n5 f" m ` e, W4 _0 L - echo -n $out4 E0 k9 u- C7 y' K0 N
- }
; e" R* ~; m+ z$ I+ {3 V. ? - enc() {
. R: J# N/ c. I - echo -n "$1" | urlencode
. E& _1 y3 U d2 V - }) t5 M! t( r! s
- send_request() {
& e. X( X2 \1 O+ Y X5 t0 X8 n) s - local args="AccessKeyId=$aliddns_ak&Action=$1&Format=json&$2&Version=2015-01-09"" j4 C2 h; \/ k+ _
- local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddns_sk&" -binary | openssl base64)& _7 H$ s& A# d3 w: D$ @& x; m
- curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")"
% o0 y& C" o. u- K* ` - }
) ~6 w2 R7 l h* J" N: N; | - get_recordid() {
, e3 J' {3 A/ a$ p H - grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'
# a# D& t6 M/ C3 @- | - }9 h- ~0 X! s" m% `1 n; b
- query_recordid() {& @9 i% [. Y# |6 S8 {. ?5 n$ }4 Z
- send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddns_name.$aliddns_domain&Timestamp=$timestamp"
0 H: R$ ]* V6 L Y6 W4 {/ F. Z c - }
# h( d( W" s9 s! a& e - update_record() {
6 g* L; u, D$ P, v/ X - send_request "UpdateDomainRecord" "RR=$aliddns_name&RecordId=$1&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&TTL=$aliddns_ttl&Timestamp=$timestamp&Type=A&Value=$ip"$ F- |3 b# l' ~
- }( q( R. f# s+ Y F
- add_record() {# q! e/ Q# }$ a) w$ \
- send_request "AddDomainRecord&DomainName=$aliddns_domain" "RR=$aliddns_name&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&TTL=$aliddns_ttl&Timestamp=$timestamp&Type=A&Value=$ip"& G/ ^8 i+ T5 N# W9 n3 }
- }1 B, |* b/ T7 w# Y5 v- L
- if [ "$aliddns_record_id" = "" ]
: N7 t4 p' i- }9 {( ]6 z/ U3 c" B - then+ c T( b0 V1 A$ B. k
- aliddns_record_id=`query_recordid | get_recordid`
8 C) `7 {0 B; M [& E5 F* R8 q, Q - fi
+ f' L6 q8 }3 r0 U% D, g& u - if [ "$aliddns_record_id" = "" ]6 h7 Z/ ~' F# ], ~
- then/ h2 P0 a* U0 a# }# [5 B* r1 e
- aliddns_record_id=`add_record | get_recordid`/ F' I" x6 l, T4 L) Z' z; b+ D* X
- echo "added record $aliddns_record_id"$ {( l7 a. H( }' W6 J/ @4 E4 q
- else
, i; z7 b* u. c) q( n* h - update_record $aliddns_record_id& L3 A3 Z+ Q; T" w, c- p s( y' i
- echo "updated record $aliddns_record_id") g0 [+ A3 q( m" N
- fi
复制代码 3 D# D2 H" r* X; l3 V T
9 [$ b: D1 I3 G9 B( P' p
: P9 A. _* E3 g2 a5.设置好端口转发。1 P: @* u, u x6 N- ^
9 b0 C' u1 F5 P如何设置群晖端口转发请自行百度。
: J* a% G, Y# v- l" e* F0 C( o% Y
4 N. _. P$ I: D- p O" S* n3 H" x7 f. j
|
|