- UID
- 1
- 阅读权限
- 255
- 注册时间
- 2006-7-24
- 最后登录
- 1970-1-1
- 在线时间
- 小时
TA的每日心情 | 开心 2013-11-21 01:25 |
---|
签到天数: 2 天 连续签到: 1 天 [LV.1]初来乍到
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
1.注册阿里云账号。
' x! m; R! s$ t. i/ @9 f* ^: K2.注册一个域名。. t: {, ], D7 \0 k- W1 r7 T/ w% s) s
! Q" K2 h! r/ W( _如果域名不在阿里云解析托管,需要先转过去,具体方法是联系域名提供商修改域名的DNS服务器,修改方式参考这里:https://help.aliyun.com/knowledge_detail/39844.html) v, e( c4 E! |5 g3 [4 @
然后去控制台找到云解析,将域名添加进去;' U( L$ c2 Z: l" S3 \ d4 }( F2 m8 d
3 Z* N5 Y; ^2 I) j. ?7 g5 b
' @( X4 S$ o5 P3 o8 ^ y
3.到阿里云控制中心找到access key和secret并保存下来(强烈建议遵循阿里云安全最佳实践的说明 ,使用RAM子用户的AccessKey);
& V2 ^! a! p. M* f1 O. d. t- ~) {0 ]( h1 l
( p( g Q) \. A4.到群晖控制中心找到任务计划新增一个计划。; x7 M% d4 E, F
新增->计划的任务->用户自定义脚本
2 u3 V# ]: z+ a
/ w9 D8 W7 F6 w v' N4 ?: |
% }: i, p6 f( e8 \设置10分钟定时. d; r) Q+ q) r8 q0 }
. u0 Z2 `& w% f! k o
* l4 E) h! Y4 _" `( R2 H
# i A8 z( M" D5 F/ W! y4 t复制以下内容,根据自己的情况修改中文部分并添加到任务设置自定义脚本
; d# }( {; y, `% M6 S8 i5 h) z, ^2 u; q7 S9 p l
- #!/bin/sh( j0 L B( W# ?. F/ l
- aliddns_name="你的域名前缀"" @7 |7 P; H! x9 z/ [
- aliddns_domain="你的域名"5 Y! t4 c+ f% F. _) ~0 f
- aliddns_ak="你的AccessKeyId"' O j$ _4 \# Y0 s9 l2 ]
- aliddns_sk="你的AccessKeySecret"
; e9 w6 N2 C, M) m! w -
" d: {+ M" U. D) I! t | - aliddns_curl="curl -s whatismyip.akamai.com"
9 t* I% D3 }2 [& r8 ]( J4 o' k - aliddns_dns="8.8.8.8"4 O5 Z/ k% V% |" N4 f" Z W2 V7 R
- aliddns_ttl="600"
0 X6 f& d3 I$ z -
' U3 T0 ]8 m+ D& `! j5 k: Q - ip=`$aliddns_curl 2>&1`
4 H7 }. S" N8 c# g' F g1 h% M8 M - $ O) G: p+ t( \* ^. i6 H
- current_ip=`nslookup $aliddns_name.$aliddns_domain $aliddns_dns 2>&1`
4 L* z# `0 ^# _, L* o2 J -
" r ?& u8 `0 w8 R$ z1 x - if [ "$?" -eq "0" ]
0 I1 p/ U4 Y! v3 |+ U. }& l - then/ c( ~. f$ E0 F4 V# Y E! y* H
- current_ip=`echo "$current_ip" | grep 'Address 1' | tail -n1 | awk '{print $NF}'`
/ F7 g0 @$ l# O2 g1 l6 o0 l - if [ "$ip" = "$current_ip" ]3 a# y# \1 V0 Z2 j1 s
- then, @; a# g- b! p% ?+ P7 `" C
- exit 0
$ @. i! F- z1 q7 n+ ~2 A9 u- J - fi 1 H. Y! y5 Q2 u) ?( a, B& B
- fi! O1 z. [3 r7 z2 B
- . X$ Y) L& N2 d( k2 F6 ^9 J
- timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`
2 O& W$ A. y, g -
% T. j2 Z' V. P, a' u3 Y$ [ - urlencode() {& i( \4 L5 @* X2 B. {+ ]
- # urlencode <string>
. c* b2 S% _$ o2 v! y- w P - out=""6 h/ {9 W) h+ @! e: z" S. m( [
- while read -n1 c
! w! k4 C' Q: _$ J, K8 ]# C$ t - do
% u8 w" R. Y- J& {' v - case $c in
8 y5 \6 P4 \: r$ ?* M$ x% x - [a-zA-Z0-9._-]) out="$out$c" ;;6 E5 v& ^- M5 I7 @) `
- *) out="$out`printf '%%%02X' "'$c"`" ;;! k3 {- l+ @, d) R, P" h8 [3 W
- esac1 H" L2 J2 q. B" R
- done
4 i* d1 {) j1 J1 ` - echo -n $out
" [ m# E2 \0 o8 p9 G6 b4 A, i. @ - }
# Y& @8 X0 F1 {: ?- {% u$ A - enc() {
. k& P+ e' } x w+ z - echo -n "$1" | urlencode* k) R7 x2 a' w( j; [, ~
- }4 w) y0 F S8 \: C9 [5 q$ W& K7 F
- send_request() {
' ~" ]8 |- ^/ V3 H! z- j - local args="AccessKeyId=$aliddns_ak&Action=$1&Format=json&$2&Version=2015-01-09"
$ z: Y) H2 ^; ]6 y; ^0 _- _2 R - local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddns_sk&" -binary | openssl base64)5 K. R4 [$ Y0 K5 \. E3 J& w
- curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")"* r" |8 {9 A: W7 T% ]6 v
- }$ s9 \- H5 ~6 T& F
- get_recordid() {( i( F% l+ Y7 [8 S) W" D
- grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'
7 P& l& s6 U+ n0 m& z. M - }
) m U# d3 |" ?! h+ B - query_recordid() {
2 K, q2 I/ S4 f9 I - send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddns_name.$aliddns_domain&Timestamp=$timestamp"% i( C; D- R; C- U7 i' h
- }
) a, _8 X" z# C/ Z - update_record() {0 i/ G! J% f$ V0 L/ n6 e
- 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": E; e" i& p/ `: q- [
- }
5 K8 q' t, b, t" H9 ^! \ - add_record() {
0 i6 Y/ A: R! D( A- \ - 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"
6 q5 S' m1 g: v) f; G- R& N - }% H: b0 `% u. L7 u7 G
- if [ "$aliddns_record_id" = "" ]
# E2 s8 C' Z: y - then
( p, T/ {( [& Q - aliddns_record_id=`query_recordid | get_recordid`
1 ?3 s, D( c4 q" o: u- D - fi
% _9 g$ O3 {9 z* U - if [ "$aliddns_record_id" = "" ]5 T) c' N: O0 R; M% `$ R4 ]
- then
, X' B, Q' O' @( M) }+ l" m4 q - aliddns_record_id=`add_record | get_recordid`% ]3 O8 D* N4 N3 i" Y/ q
- echo "added record $aliddns_record_id"
, r: r9 o. _/ a2 G& [9 z; V$ p# x - else) @. ?5 f6 z2 F! M2 Y+ P
- update_record $aliddns_record_id) y; ~; o e1 C
- echo "updated record $aliddns_record_id"- v6 ^& v( H! e! d
- fi
复制代码
' a( B& t: D! v8 R7 n
/ H# e, Y! z' R1 t. g6 p' z4 l5 z2 y/ B* F* ~) q
5.设置好端口转发。: @# x' K- L2 |8 V. L0 J% _
u; E. D) K4 R( V: x
如何设置群晖端口转发请自行百度。
! w9 C1 q2 Q, b3 X3 e7 x/ I
9 d5 v1 F+ \1 i1 u) D: {2 [* S7 i* v' a. ~5 ^/ d" }) R# A
|
|