- UID
- 1
- 阅读权限
- 255
- 注册时间
- 2006-7-24
- 最后登录
- 1970-1-1
- 在线时间
- 小时
dsu_paulsign:ta_mind | 衰 2026-4-28 04:25 |
|---|
dsu_paulsign:classn_01: 5 dsu_paulsign:classn_02 dsu_paulsign:classn_12: 1 dsu_paulsign:classn_02 [LV.2]偶尔看看I
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
1.注册阿里云账号。
& z/ d6 {& o' E2.注册一个域名。
9 M; r; p( K; Y6 v: K* r1 ]* v! E1 _5 O+ m0 ]& Y7 G9 o e
如果域名不在阿里云解析托管,需要先转过去,具体方法是联系域名提供商修改域名的DNS服务器,修改方式参考这里:https://help.aliyun.com/knowledge_detail/39844.html0 Q- }1 u! T+ ]9 B5 e; L
然后去控制台找到云解析,将域名添加进去;
% \9 J& G# x6 @0 A5 t% |9 o9 q, B8 n+ S2 K* b. o
( j! U4 | x, i7 j1 R5 v) N* a
3.到阿里云控制中心找到access key和secret并保存下来(强烈建议遵循阿里云安全最佳实践的说明 ,使用RAM子用户的AccessKey); [! N1 f* e& }6 J/ H2 U/ ?
; O# n/ D! H% H- ?9 h2 M% z! `3 ^9 ~- c" [0 X$ F1 ]3 _" L
4.到群晖控制中心找到任务计划新增一个计划。
8 L7 u9 E0 G4 U/ l6 G' z ?: J3 B新增->计划的任务->用户自定义脚本
/ O0 `$ G" b7 L( }
7 m# g: {/ f! X2 i5 W5 I, t* E
5 r# S' F, e5 Q+ `1 u% l
设置10分钟定时: f7 J; H$ N4 z' H( M
' Y. p0 S" S# Z$ M* |* W
9 Y) v7 p; Y2 z
4 P8 ^) r7 e! `5 _) c) b0 E, g% X4 ~复制以下内容,根据自己的情况修改中文部分并添加到任务设置自定义脚本
4 A" E: q4 Y' A
/ x1 B" n0 `- B5 T- #!/bin/sh* `2 ~# B3 G: N4 H% @9 E
- aliddns_name="你的域名前缀"' {" d1 U& i" a* n* T
- aliddns_domain="你的域名"
. k3 w) k. k0 ~7 j - aliddns_ak="你的AccessKeyId"
' J2 s9 a) x7 _3 K+ C9 @ - aliddns_sk="你的AccessKeySecret"
5 p, L& w; u/ e% w& ]" h8 [ -
3 V: `" T' }! M4 ?# M; F3 ^) m* q - aliddns_curl="curl -s whatismyip.akamai.com"- x5 \7 K$ Z* X! \! I/ M. r
- aliddns_dns="8.8.8.8"
# t0 q1 i. r- ^7 ~* Y - aliddns_ttl="600"* f4 Y# N5 C1 y) S' |
- # A- a) _* q' r6 N: {5 L4 @
- ip=`$aliddns_curl 2>&1`
* A4 j" A* M: B5 S% L0 g5 C1 p - 9 c: N/ ~' n' l$ q! ^! K$ ~2 y
- current_ip=`nslookup $aliddns_name.$aliddns_domain $aliddns_dns 2>&1`
( H+ ?% ` Q/ M -
, Q! g! G* d' C - if [ "$?" -eq "0" ]' n! W4 L" z5 F5 i
- then
m. P V1 K9 t, p4 ` - current_ip=`echo "$current_ip" | grep 'Address 1' | tail -n1 | awk '{print $NF}'`
5 L2 S* a/ [; F$ m2 | ~+ U$ f - if [ "$ip" = "$current_ip" ]: ^0 u, T" m J% F
- then5 q6 x3 ~0 {4 b- J8 |
- exit 0: D# ]3 g- |# [! P+ `6 K0 V
- fi 7 p1 E( w6 Q7 K. b5 X3 F5 w
- fi8 F$ I# c) Q( c3 g. t! W
- 4 f7 f! C7 R: @ s
- timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`7 r& e* s: y( U+ z. f+ d0 V7 {
-
, c9 c& W: h1 y+ x - urlencode() {$ W+ [; ` H ?2 [
- # urlencode <string>
: |/ m/ w4 G6 Q% a - out=""* G/ o1 [8 Z3 Z$ \( ]
- while read -n1 c
$ ?1 c* \0 A$ q0 e - do
% @) Q/ a/ g+ n - case $c in0 N+ J+ B1 I* w' {6 P8 H: O
- [a-zA-Z0-9._-]) out="$out$c" ;;
' v% V( |1 q6 a! p - *) out="$out`printf '%%%02X' "'$c"`" ;;; W+ L* ?! Z W9 ?1 S6 ?6 d* R* D
- esac
/ y6 U$ K3 t' `2 w! f - done) _# V1 E- ]" b$ g; l O
- echo -n $out
7 V" @' m8 [' g" r( p/ j+ r - } X" B1 u) {3 C9 g% P
- enc() {
% N6 u- D* l+ I& Z* q0 X& d - echo -n "$1" | urlencode" m4 F/ x5 @8 a l
- }) B" b q7 H. y4 Z
- send_request() {+ c" v2 d- P0 R a
- local args="AccessKeyId=$aliddns_ak&Action=$1&Format=json&$2&Version=2015-01-09"5 `9 C* A" ?& u0 e
- local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddns_sk&" -binary | openssl base64)( H5 ]0 e) [2 U# e" d7 W
- curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")"; X% q! K0 |/ ]% m8 B
- }
9 i9 Q* C! I! V: o7 m. A. K' i1 J - get_recordid() {1 j3 L) B' \: S* S9 I5 t/ n
- grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'
, X7 P. R8 p7 `+ G) o2 q - }$ ]* X, q: @' P
- query_recordid() {# t% V$ q: ]( t& K" c7 |
- send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddns_name.$aliddns_domain&Timestamp=$timestamp"
6 B, L( V& D' Z, c - }
7 Y4 z2 D0 o a Y; l' F. I4 [ - update_record() {, p3 n" s7 u8 R8 d8 |3 O7 V% }$ C
- 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"6 Q" q; g* \4 x3 t
- }* a! p" i$ ?$ F+ h* U: Z0 `
- add_record() {
; O# ~& \: l2 X" p - 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": y8 B& l: b" ~% v
- }. A. T1 G3 B7 U( y
- if [ "$aliddns_record_id" = "" ]
$ A9 c$ g/ B! d& e& J - then
! c+ g8 T. [7 c' a$ L, i# d - aliddns_record_id=`query_recordid | get_recordid`9 f# i. e9 R* k6 P" C
- fi6 h L* ~* r2 p% b
- if [ "$aliddns_record_id" = "" ]
; O; l- ~2 I2 \7 O% f, B: b - then
$ e) O! I, n+ Y! Y: I - aliddns_record_id=`add_record | get_recordid`* o+ K( E' D9 N- {
- echo "added record $aliddns_record_id"
& E* _$ P1 m8 M7 ~! b% F4 k - else
# E, H% U( f5 X - update_record $aliddns_record_id( t1 \9 j; Q' K1 v/ h% J1 X
- echo "updated record $aliddns_record_id"
+ {" @0 d8 F( ?1 {! t% L - fi
复制代码
+ |. q' @5 ^9 G: o! F9 ]/ G) V' V
# h: t. S; {& S o4 L, z' w9 P
q) q* ^7 r2 F; c. g4 d5.设置好端口转发。 I0 o9 g/ }# R. A$ e: _
1 ~- g/ o& ]; W: t, T
如何设置群晖端口转发请自行百度。
6 E( p5 U/ S) M6 u0 [' i! F
- _0 b- R/ j/ C: g3 v. o0 E W
4 D. L, a: A2 ?# L! Y8 j: E |
|