DDNS脚本化|免docker|免插件|适合群晖nas等linux

2024-03-15 23:21:09 19点赞 240收藏 20评论

首先写这篇文章的主要想法是看到很多值友写的DDNS服务都是群晖里下载插件,或者拉取docker来跑的服务,这样就有一些局限。一般只适用于群晖等nas设备,其他的设备由于没有插件或者docker功能无法使用。下面的方法适用于基本所有的linux设备,甚至是windows设备。

首先是思路还是一样的,都是先注册一个免费域名,然后把动态的公网IPv4/IPv6绑定到域名上,一般设置5min执行一次即可。


一、注册域名

首先在dynv6官网(自行查找)注册一个账号,点击My Zones后,点击Create new Zone,跳转设置。如图:

点击创建点击创建

之后选择一个你喜欢的域名,填写一个你喜欢的name,ipv4和ipv6留空不用写,点击Creat Zone。如图:

DDNS脚本化|免docker|免插件|适合群晖nas等linux

之后的页面在Instructions标签页上有2个重要的参数。如图。

DDNS脚本化|免docker|免插件|适合群晖nas等linux

1、完整域名:你自己填写的完整域名。如图中1处。

2、password:密码,保存好,勿泄漏。

二、bash脚本

脚本命令如下:

#!/bin/bash ​ # dynv6地址 https://dynv6.com/ # dynv6用户信息 ​ # 个人域名地址 domains='XXXXX.dns.army' #token信息 token='XE181JxgiK9rgXXXXXXXXXX' ​ # 默认的IP地址 #ipv4_old='153.3.1.1' #ipv6_old='2408:823c:1111:111::111' ​ # 获取IP地址的接口 ipv4_api='https://ip.3322.net' #ipv4_api='https://myip4.ipip.net' #ipv4_api='https://ddns.oray.com/checkip' ​ ipv6_api='https://speed.neu6.edu.cn/getIP.php' #ipv6_api='https://v6.ident.me' #ipv6_api='https://myip6.ipip.net' ​ # 获取设备当前的公网IP ipv4_new=`curl "${ipv4_api}" 2> /dev/null ` ipv6_new=`curl "${ipv6_api}" 2> /dev/null ` ​ echo "当前IPV4:${ipv4_new}" echo "当前IPV6:${ipv6_new}" ​ # 更新公网IP地址 curl "http://dynv6.com/api/update?hostname=${domains}&token=${token}&ipv4=${ipv4_new}&ipv6prefix=${ipv6_new}" &> /dev/null ​ ​

PS:上面脚本需要把domainstoken替换成上面自己的参数,其他不变。

三、部署脚本

1、群晖可以部署在计划任务中。设置每5min执行一次。只展示时间配置,如图:

DDNS脚本化|免docker|免插件|适合群晖nas等linux

2、其他linux一般都有crontab的计划任务,把脚本保存到sh脚本文件中,之后使用crontab -e的命令设置好计划任务即可。例如:

*/5 * * * * bash /home/smzdm/DDNS_UP.sh

PS:不同版本的linux中crontab服务各有不同,自己查询使用方法。甚至现在Windows也可以支持。

3、特殊的小型linux无crontab服务,可以写成for的死循环,sleep 5min。然后设置成开机自启动。

四、优点

该种方法优点还是很多的:

1、不需要额外的docker服务或者群晖插件服务,crontab服务普遍存在于linux发行版中。广泛适用于家中的任何设备。

2、域名注册方便、免费、不限量,域名更新时间查看方便调试。

3、可以配合WxPusher进行微信消息推送,有时间再更新

4、同时支持IPv4和IPv6,前提是自己开通IPv6,并且拥有IPv4的公网IP。

五、延申

现在京东云路由器APP都支持显示公网IPv4、公网IPv6。可以抓取京东的cookie,然后结合我上面的脚本,把每个京东的路由器都设置一个域名,部署在家里的其他设备的,方便我们远程访问。其实很简单的,等有时间可以分享一下。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
20评论

  • 精彩
  • 最新
  • 思路挺好,花生壳很多时候不好用,哪怕没有注册域名也可以自己告诉自己家里地址
    其实还可以做个判断,如果改变了在用消息推送发个消息推送

    校验提示文案

    提交
    在最后优点3里说了,感兴趣可以自行添加

    校验提示文案

    提交
    有教程吗,验证服务器的回调没成功

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 最早用脚本,后来发现ddns-go用起来更方便。

    校验提示文案

    提交
  • 为啥不用ddnsgo

    校验提示文案

    提交
    ddnsgo怎么设置dynv6的啊?
    选择的Callback
    URL和RequestBody填写什么?没看懂

    校验提示文案

    提交
    收起所有回复
  • 很麻烦了,lucky解决一切

    校验提示文案

    提交
  • 用的kucky,可是一直都没办法通,搞不懂为什么

    校验提示文案

    提交
    看看主路由是不是没放开外网访问

    校验提示文案

    提交
    注册域名那里不要填ipv4和IPV6地址否则会不能使用 [喜极而泣]

    校验提示文案

    提交
    还有6条回复
    收起所有回复
  • 不是写脚本难,而是docker配置起来简单

    校验提示文案

    提交
  • 阿里64买了十年 ***

    校验提示文案

    提交
  • 路由开动态域名,还用这么麻烦吗

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
240
扫一下,分享更方便,购买更轻松