电影中心 精品软件 联系我们

 找回密码
 立即注册

QQ登录

只需一步,快速开始

Close
查看: 541|回复: 0

简单五步设置群晖NAS绑定自有域名实现外网访问

[复制链接]
发表于 2019-9-17 20:24:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1.注册阿里云账号。) r' j0 p9 D% A* d
2.注册一个域名。
( h) j* z  n+ @; [! k/ {. b/ ~2 v, v9 ?$ m1 [
如果域名不在阿里云解析托管,需要先转过去,具体方法是联系域名提供商修改域名的DNS服务器,修改方式参考这里:https://help.aliyun.com/knowledge_detail/39844.html
) r( r# Y- g1 V1 F4 n  [然后去控制台找到云解析,将域名添加进去;
3 e: }% S0 N+ E0 n- W0 F0 |+ F* y$ p1 A3 K% @( c) i
! M; ~9 f5 N( `
3.到阿里云控制中心找到access key和secret并保存下来(强烈建议遵循阿里云安全最佳实践的说明 ,使用RAM子用户的AccessKey);
  \1 X3 U1 B7 E- o+ }, U
/ X0 p0 T: a/ t4 E& D- Q4 H
" O% N6 n0 @: w8 N4.到群晖控制中心找到任务计划新增一个计划。
% f) D3 @% z( f, ?  T新增->计划的任务->用户自定义脚本
! ~1 k/ |, w! `4 G, ^# Q 20190117191716771.jpg 5 y$ Z) O+ d, e. \7 a

8 O* @6 y. k: }# Z* h/ H+ v$ O4 ?设置10分钟定时8 B8 j  B. y# ~- ]; Z& d! R/ F
! U+ t# Q" n) o5 a6 x
20190117191614507.jpg
% b8 e6 b8 W2 a# a5 v& {1 K" M2 P6 s' O5 B7 Q! }( k
复制以下内容,根据自己的情况修改中文部分并添加到任务设置自定义脚本
( x7 I0 j. S" c* d. `' r+ W- p( N9 ?- F# v* f- m$ u7 f
  1. #!/bin/sh/ W1 z; s6 V& r
  2. aliddns_name="你的域名前缀"# l! h+ A( V" j4 M1 m
  3. aliddns_domain="你的域名"
    9 n  P$ Q8 I, h
  4. aliddns_ak="你的AccessKeyId"
    . R/ u0 H  F) L1 V
  5. aliddns_sk="你的AccessKeySecret"2 D" Y. w; ~8 d- ?
  6. 8 h+ Q: g( k+ b5 u" F, V' V
  7. aliddns_curl="curl -s whatismyip.akamai.com"8 s: e& L  f4 y% e; g  e/ M# E& C0 Q
  8. aliddns_dns="8.8.8.8"( A  c; L5 Q! j0 b
  9. aliddns_ttl="600"
    : W* x- M2 t0 z3 b1 t# ^

  10. 4 G7 y/ R1 P/ c7 Q, ]
  11. ip=`$aliddns_curl 2>&1`
    0 ~- I7 J! ^/ U8 M: f
  12. ' ]+ M1 W2 c: b; N( y, t
  13. current_ip=`nslookup $aliddns_name.$aliddns_domain $aliddns_dns 2>&1`9 |1 M3 x- P% d* T0 r
  14. 3 P2 U& y/ F; L7 \) e1 `
  15. if [ "$?" -eq "0" ]- P+ ?5 S% q1 n) ?
  16. then
    ' G' m2 Q( c% p: I9 f2 ?
  17.     current_ip=`echo "$current_ip" | grep 'Address 1' | tail -n1 | awk '{print $NF}'`
    , j9 l8 K' }; C
  18.     if [ "$ip" = "$current_ip" ]
    8 q2 G0 A: }' o( ]0 j" [. f6 c; g
  19.     then% L& V- F( x. H; t  o9 W+ B
  20.         exit 06 T# R0 J" l9 A( _$ W/ f) N1 Z
  21.     fi
    - L( |& r: `2 |7 K* Q4 b
  22. fi9 A' Y/ ~8 G7 \; {7 X# Z
  23. . ]  Q  A5 Z3 Y- z0 b
  24. timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`
    9 M! R9 `" {8 ^7 ^5 ?# G6 A+ L$ s( P

  25. + V# e: ^' g1 p
  26. urlencode() {& P) d0 R! y% Q$ i/ a7 ?7 F6 d6 l
  27.     # urlencode <string>
    2 b. S) D/ j+ v' Z  P' W& W
  28.     out=""
    # A. q& @' |8 T8 U
  29.     while read -n1 c
    ( D8 d" S( E' q# Z% Z1 p
  30.     do2 h+ g4 `, _: [7 t4 L) C
  31.         case $c in
    2 S) L' o5 k: X9 ^: M3 I5 f
  32.             [a-zA-Z0-9._-]) out="$out$c" ;;
    $ e2 k' X- q0 c
  33.             *) out="$out`printf '%%%02X' "'$c"`" ;;% A0 p/ b1 M) s' D. `7 R' D
  34.         esac
    + g& d+ w' {: f4 E( U
  35.     done
    / j/ u% |9 J6 m# F9 p, a% I
  36.     echo -n $out$ m; O6 P" u5 c& W  x5 l0 }, S3 W
  37. }
    5 t. S) M5 L/ B  A
  38. enc() {& G( s% N. W& _( e4 t
  39.     echo -n "$1" | urlencode) ^: G# f# E4 d5 G  C( R
  40. }
    / M; c4 G" Q( e& \7 ~3 u" J
  41. send_request() {$ |: @/ E' f9 ]! a7 u5 ^1 z
  42.     local args="AccessKeyId=$aliddns_ak&Action=$1&Format=json&$2&Version=2015-01-09"9 k5 g/ {/ Q, b. ^% H) F  Y: C8 C
  43.     local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddns_sk&" -binary | openssl base64)
    ( N4 A  a- l9 D/ T3 o3 _7 U) N, C
  44.     curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")"7 {3 s' x0 q7 A  g* {( n
  45. }* e2 I5 o' V* C5 q) g; ]2 C& `
  46. get_recordid() {0 @5 `$ c- ^* D& Z
  47.     grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'
    2 _  L9 [" i" `) N
  48. }1 R2 K4 h, F  h2 B1 C5 D0 G
  49. query_recordid() {9 J; `) ]/ g# V2 i1 [; f$ Z
  50.     send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddns_name.$aliddns_domain&Timestamp=$timestamp") N& ~+ `) i1 K" S2 X6 Z  T5 D
  51. }( n* H3 S$ t& o- L% q/ s$ c
  52. update_record() {& [! h5 p/ m8 z/ Y8 B- b
  53.     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"
    9 D8 k2 K. d, T- |6 V3 J8 }) W
  54. }
    7 ?9 M* u) h9 S5 s1 r2 C, j1 L
  55. add_record() {
    ! q; E" _: A4 g' E
  56.     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"
    " B& E; A( i3 s
  57. }/ ?, @+ F7 W3 |' Z
  58. if [ "$aliddns_record_id" = "" ]& N; {) W- T. N  e
  59. then# c' Y# b! a& U
  60.     aliddns_record_id=`query_recordid | get_recordid`
    & n4 O, V6 _! I  ]1 S- u
  61. fi+ H5 q- e6 [' a7 B* K
  62. if [ "$aliddns_record_id" = "" ]/ k$ _/ j: T: s8 @. P& v7 D
  63. then) |# M. L  o$ _  j
  64.     aliddns_record_id=`add_record | get_recordid`! q4 P% _+ v4 t  m" W% J
  65.     echo "added record $aliddns_record_id"
    + V3 }1 ~0 B- C& A3 d
  66. else# J: A! f( O$ k' }
  67.     update_record $aliddns_record_id
    7 K" d3 d, F4 v/ \: v. [% H& _
  68.     echo "updated record $aliddns_record_id"; x6 A$ ?" g: W$ E
  69. fi
复制代码

6 C: K* Y5 F3 ?" ^) }& n6 ^3 l 20190117191932194.jpg
$ g5 u! S5 g8 S0 Y- A/ q! F
! d  Y' w. b2 R' j6 I- V/ x
5.设置好端口转发。
9 Y$ f" G6 F2 y) R2 |5 [
% z1 c" m/ [2 j6 o/ R
如何设置群晖端口转发请自行百度。
- w# ]  `: _# i0 C; w$ O! u
- `0 C7 T; L7 k# w% b4 G. {6 h  _# Y1 y
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|帮助|古城IT技术联盟 ( 鲁ICP备06030014号 )

GMT+8, 2024-4-27 12:54 , Processed in 0.086919 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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