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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

Close
查看: 1322|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    2013-11-21 01:25
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2019-9-17 20:24:15 | 显示全部楼层 |阅读模式

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

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

    ×
    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 20190117191716771.jpg / w9 D8 W7 F6 w  v' N4 ?: |

    % }: i, p6 f( e8 \设置10分钟定时. d; r) Q+ q) r8 q0 }

    . u0 Z2 `& w% f! k  o 20190117191614507.jpg * 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
    1. #!/bin/sh( j0 L  B( W# ?. F/ l
    2. aliddns_name="你的域名前缀"" @7 |7 P; H! x9 z/ [
    3. aliddns_domain="你的域名"5 Y! t4 c+ f% F. _) ~0 f
    4. aliddns_ak="你的AccessKeyId"' O  j$ _4 \# Y0 s9 l2 ]
    5. aliddns_sk="你的AccessKeySecret"
      ; e9 w6 N2 C, M) m! w

    6. " d: {+ M" U. D) I! t  |
    7. aliddns_curl="curl -s whatismyip.akamai.com"
      9 t* I% D3 }2 [& r8 ]( J4 o' k
    8. aliddns_dns="8.8.8.8"4 O5 Z/ k% V% |" N4 f" Z  W2 V7 R
    9. aliddns_ttl="600"
      0 X6 f& d3 I$ z

    10. ' U3 T0 ]8 m+ D& `! j5 k: Q
    11. ip=`$aliddns_curl 2>&1`
      4 H7 }. S" N8 c# g' F  g1 h% M8 M
    12. $ O) G: p+ t( \* ^. i6 H
    13. current_ip=`nslookup $aliddns_name.$aliddns_domain $aliddns_dns 2>&1`
      4 L* z# `0 ^# _, L* o2 J

    14. " r  ?& u8 `0 w8 R$ z1 x
    15. if [ "$?" -eq "0" ]
      0 I1 p/ U4 Y! v3 |+ U. }& l
    16. then/ c( ~. f$ E0 F4 V# Y  E! y* H
    17.     current_ip=`echo "$current_ip" | grep 'Address 1' | tail -n1 | awk '{print $NF}'`
      / F7 g0 @$ l# O2 g1 l6 o0 l
    18.     if [ "$ip" = "$current_ip" ]3 a# y# \1 V0 Z2 j1 s
    19.     then, @; a# g- b! p% ?+ P7 `" C
    20.         exit 0
      $ @. i! F- z1 q7 n+ ~2 A9 u- J
    21.     fi 1 H. Y! y5 Q2 u) ?( a, B& B
    22. fi! O1 z. [3 r7 z2 B
    23. . X$ Y) L& N2 d( k2 F6 ^9 J
    24. timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`
      2 O& W$ A. y, g

    25. % T. j2 Z' V. P, a' u3 Y$ [
    26. urlencode() {& i( \4 L5 @* X2 B. {+ ]
    27.     # urlencode <string>
      . c* b2 S% _$ o2 v! y- w  P
    28.     out=""6 h/ {9 W) h+ @! e: z" S. m( [
    29.     while read -n1 c
      ! w! k4 C' Q: _$ J, K8 ]# C$ t
    30.     do
      % u8 w" R. Y- J& {' v
    31.         case $c in
      8 y5 \6 P4 \: r$ ?* M$ x% x
    32.             [a-zA-Z0-9._-]) out="$out$c" ;;6 E5 v& ^- M5 I7 @) `
    33.             *) out="$out`printf '%%%02X' "'$c"`" ;;! k3 {- l+ @, d) R, P" h8 [3 W
    34.         esac1 H" L2 J2 q. B" R
    35.     done
      4 i* d1 {) j1 J1 `
    36.     echo -n $out
      " [  m# E2 \0 o8 p9 G6 b4 A, i. @
    37. }
      # Y& @8 X0 F1 {: ?- {% u$ A
    38. enc() {
      . k& P+ e' }  x  w+ z
    39.     echo -n "$1" | urlencode* k) R7 x2 a' w( j; [, ~
    40. }4 w) y0 F  S8 \: C9 [5 q$ W& K7 F
    41. send_request() {
      ' ~" ]8 |- ^/ V3 H! z- j
    42.     local args="AccessKeyId=$aliddns_ak&Action=$1&Format=json&$2&Version=2015-01-09"
      $ z: Y) H2 ^; ]6 y; ^0 _- _2 R
    43.     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
    44.     curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")"* r" |8 {9 A: W7 T% ]6 v
    45. }$ s9 \- H5 ~6 T& F
    46. get_recordid() {( i( F% l+ Y7 [8 S) W" D
    47.     grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'
      7 P& l& s6 U+ n0 m& z. M
    48. }
      ) m  U# d3 |" ?! h+ B
    49. query_recordid() {
      2 K, q2 I/ S4 f9 I
    50.     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
    51. }
      ) a, _8 X" z# C/ Z
    52. update_record() {0 i/ G! J% f$ V0 L/ n6 e
    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": E; e" i& p/ `: q- [
    54. }
      5 K8 q' t, b, t" H9 ^! \
    55. add_record() {
      0 i6 Y/ A: R! D( A- \
    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"
      6 q5 S' m1 g: v) f; G- R& N
    57. }% H: b0 `% u. L7 u7 G
    58. if [ "$aliddns_record_id" = "" ]
      # E2 s8 C' Z: y
    59. then
      ( p, T/ {( [& Q
    60.     aliddns_record_id=`query_recordid | get_recordid`
      1 ?3 s, D( c4 q" o: u- D
    61. fi
      % _9 g$ O3 {9 z* U
    62. if [ "$aliddns_record_id" = "" ]5 T) c' N: O0 R; M% `$ R4 ]
    63. then
      , X' B, Q' O' @( M) }+ l" m4 q
    64.     aliddns_record_id=`add_record | get_recordid`% ]3 O8 D* N4 N3 i" Y/ q
    65.     echo "added record $aliddns_record_id"
      , r: r9 o. _/ a2 G& [9 z; V$ p# x
    66. else) @. ?5 f6 z2 F! M2 Y+ P
    67.     update_record $aliddns_record_id) y; ~; o  e1 C
    68.     echo "updated record $aliddns_record_id"- v6 ^& v( H! e! d
    69. fi
    复制代码

    ' a( B& t: D! v8 R7 n 20190117191932194.jpg
    / H# e, Y! z' R1 t. g6 p' z
    4 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
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2025-6-2 06:12 , Processed in 0.077990 second(s), 10 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

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