NAS存储

OpenMediaVault/黑群晖等NAS系统使用免费DDNS动态域名解析服务来固定IPV6公网IP

  此篇IPV6免费DDNS动态域名解析服务教程适用于当下所有的NAS系统,例如:黑群晖、OpenMediaVault、FreeNAS、Unraid等。甚至是基于Debian、Ubuntu、CentOS等Linux的发行版服务器。

  众所周知,NAS是依附于网络的私人云存储设备。如想外网访问,NAS设备自然是离不开公网IP。如果你是电信的宽带用户应该是可以向电信运营商索要到IPV4公网IP的。

  而联通、移动宽带用户可能需要高额的专线费用才能拿到IPV4的公网IP地址。显然,作为我们普通家庭用户来说是完全没有必要来接入专线宽带。

  现如今国家正在加速普及IPV6的覆盖率,全国大部分地区联通和移动均已默认开通了IPV6公网IP功能。

  为了你的网络环境安全问题,无论是IPV4还是IPV6,一般情况下运营商都会设定为动态域名IP地址,即:不定期会变更公网IP的字符串地址。

  不过现在很多路由器或者软路由都附带有DDNS动态域名解析功能,但是功能受限并不是很好用,此文将提供两种可用的IPV4和IPV6公网IP的固定动态域名的方法。

  • 免费域名固定NAS系统的IPV6公网地址

  1.在https://dynv6.com/注册账号并且登录,然后 “Create new Zone” – (创建新的区域 / 域名)

  2.将以下代码保存为一个dynv6.sh为后缀的脚本文件,并且修改以下内容:

  一:hostname=$1 ($1是你在dynv6注册的免费二级域名)

  二:token=$2 ($2是你dynv6账户的Key,一串钥密。在https://dynv6.com/keys的HTTP Tokens一项中点击Details即可查看)

  三:device=$3 ($3是你NAS设备的网卡名称,登录NAS的SSH命令工具后输入 “ifconfig”查看,一般为第一行的第一个,例如 “eth0”)

  四:将修改好的脚本保存后,上传至NAS的文件系统文件夹中,这里以home文件夹为例。

  五:赋予dynv6.sh脚本权限,在SSH命令工具中获取root权限后,输入:cd /home(中间有一个空格),然后接着输入:chmod +x xxx.sh

  六:将dynv6.sh文件内的 “/”符号转为 “\”,同样在home文件夹路径中输出:“ sed -i ‘s/\r$//’ dynv6.sh ”指令,然后回车。(这一步非常重要,因为dynv6.sh在Windows系统打开编辑后,“/”符号无法在Linux系统中识别,可能会造成启动时出现 “/bin/sh: 0: Illegal option -”的报错问题。

  七:此时在SSH命令工具输入 ( cd /home ) + (./dynv6.sh)后会出现addresses updatedroot@xxx:/home# ^C的提示,意思为IP地址已更新。(访问https://dynv6.com/证实IPV6已经实时更新解析)

  现在你已经可以通过你在https://dynv6.com/注册的免费域名来访问你的NAS管理界面了,当然在任何也拥有IPV6的电脑上也可以通过Smb局域网访问你的NAS共享文件。

  • 使用定时任务自动获取IPV6地址并且实时解析

  OpenMediaVault/群晖等NAS系统,实际上都是基于Linux的发行版,都是带有定时任务功能的。在NAS系统的控制面板中将 “/home/dynv6.sh &”指令,按每天6个小时的频率来定时获取IPV6地址是否变更,如若变更脚本也会自动实时解析。


  1. #!/bin/sh -e
  2. hostname=$1
  3. token=$2
  4. device=$3
  5. file=$HOME/.dynv6.addr6
  6. [ -e $file ] && old=`cat $file`
  7. if [ -z “$hostname” -o -z “$token” ]; then
  8.   echo “Usage: your-name.dynv6.net <your-authentication-token> [device]”
  9.   exit 1
  10. fi
  11. if [ -z “$netmask” ]; then
  12.   netmask=128
  13. fi
  14. if [ -n “$device” ]; then
  15.   device=”dev $device”
  16. fi
  17. address=$(ip -6 addr list scope global $device | grep -v ” fd” | sed -n ‘s/.*inet6 \([0-9a-f:]\+\).*/\1/p’ | head -n 1)
  18. if [ -e /usr/bin/curl ]; then
  19.   bin=”curl -fsS”
  20. elif [ -e /usr/bin/wget ]; then
  21.   bin=”wget -O-“
  22. else
  23.   echo “neither curl nor wget found”
  24.   exit 1
  25. fi
  26. if [ -z “$address” ]; then
  27.   echo “no IPv6 address found”
  28.   exit 1
  29. fi
  30. # address with netmask
  31. current=$address/$netmask
  32. if [ “$old” = “$current” ]; then
  33.   echo “IPv6 address unchanged”
  34.   exit
  35. fi
  36. # send addresses to dynv6
  37. $bin “http://dynv6.com/api/update?hostname=$hostname&ipv6=$current&token=$token
  38. # save current address
  39. echo $current > $file

第二部分


  • 自有域名固定NAS系统的IPV6公网地址

  第二种方法,需要你的域名是在以下服务商注册的域名。(DNSPOD\阿里云DNS\DNS.COM(@loftor-git)\DNSPOD国际版\CloudFlare(@tongyifan)\HE.net(@NN708) (不支持自动创建记录)\华为云(@cybmp3))

  1.这里以阿里云域名为例,打开DDNS开源项目的官网:https://ddns.newfuture.cc/

  2.在官网的使用教程步骤中,选择 “源码运行(无任何依赖, 需 python 环境)”,然后下载github中的仓库软件包。

  3.到你注册的域名服务商官网申请token,阿里云和腾讯云都很好申请。一般名为id和token,就是一段或者两串Key码。

  4.将下载的master.zip仓库软件包里的文件解压到NAS系统中的文件夹目录中,我是直接在NAS系统的根目录创建了一个 “ddns”文件夹。

  5.在SSH命令工具中使用“python /ddns/run.py -c /ddns/config.json”命令,然后系统会自动创建一个 “config.json”模板,这里我们需要编辑这个文件模板,以下内容可做参考。


  1. {
  2.   “$schema”: “https://ddns.newfuture.cc/schema/v2.8.json”,
  3. 这一行是默认的
  4.   “id“: “LTAI4FwZiVQn1dmxNFj24ahr”,
  5.   “token“: “Q42FtvwD5F7FsvofcRwsaLBFqNvJq7”,
  6. 这两行是阿里云的token,腾讯云的同理
  7.   “dns”: “alidns”,
  8. 阿里云的就写alidns,腾讯云的写dnspod
  9.   “ipv6”: [“nas.ht193.com”],
  10.  我再阿里云解析的二级域名
  11.   “index4”: 0,
  12.   “index6”: “public”,
  13.   “ttl”: 600,
  14.   “proxy”: “127.0.0.1:80;DIRECT”,
  15.   “debug”: false
  16. }
  17. 上面几行参考就行

  6.将 “python /ddns/run.py -c /ddns/config.json”命令保存为一个名为 “ddns.py”的文件,然后上传至NAS系统空间的根目录中并且赋予 “chmod +x “ddns.py”权限。

  7.在NAS系统的控制面板中将 “./ddns.py”指令,按每天6个小时的频率来定时获取IPV6地址是否变更,如若变更脚本也会自动实时解析。

  8.以上两种IPV6动态域名固定解析方法,建议全都配置上。这样当有一个脚本没有按时解析时,可以访问另一个域名到NAS控制面板的定时任务中手动运行命令。这样可以保证在任何情况下都能使用IPV6来访问我们的NAS。

Administration
声明: 本站所有内容均为原创。如为转载,在保证内容安全的前提下本站保留了原文章的转载链接。 故,非本站原创文章,如有转载文章链接地址跳转后出现违规或违法页面对你造成了不良影响,本站无权对他站进行干涉,也不承担任何相应的责任。
https://www.ht193.com

发表评论

电子邮件地址不会被公开。 必填项已用*标注