Universal Embedded DDNS Shell Script
Github: https://github.com/kkkgo/UE-DDNS
好用的话,点个Star
吧
UE-DDNS是一个致力于使用最小的依赖、模块化向导设计的嵌入式posix shell ddns脚本。
- 支持IPV4/IPV6,支持从URL或者网卡接口获取动态IP
- 兼容绝大多数Unix平台,包括一些只有busybox的嵌入式设备,尽量依赖更少的命令
- 用户只需要提供API Tokens,剩下的都是选择题,有手就行直接生成定制脚本
- 可以直接在向导里面添加新域名,一步到位
- 可以设置代理和走指定的网络接口,自动检测openwrt安装支持
- 进行严格的IP比对,符合API调用规范,不重复提交IP更新请求
- 支持多种消息推送,方便使用手机接收动态IP更新通知
目前支持的DNS服务商:
如何使用
你可以从以下两个地址下载脚本:
https://ddns.03k.org
https://raw.githubusercontent.com/kkkgo/UE-DDNS/main/ue-ddns.sh
你可以在目标设备直接在线执行:
如果没有curl命令,可以执行:
脚本运行后将会有向导提示选择你的DNS服务商 IPV4/IPV6:
|
|
接下来根据你选择的DNS服务商,需要你提供相应的API Tokens,向导会给出申请API Tokens的网页提示。输入API Tokens后你将会看到主域名选择列表(如果你有多个域名的话)和子域名选择列表(显示效果取决于DNS服务商的API)。
|
|
你可以直接选择列表上你的子域名来生成DDNS脚本,你可以选择使用URL来获取动态IP:
或者可以直接选择指定某个网卡接口的IP:
|
|
对于Cloudflare还会询问你是否开启此域名的CDN代理功能:
在子域名列表菜单,你也可以选择[0]来新建一个你的子域名:
|
|
最终,你都会在当前目录得到一个定制的DDNS脚本,你可以尝试执行他(sh [email protected]
)测试效果。脚本生成后你可以rm ue-ddns.sh
删除。
执行效果看起来会是这样(取决于你选择的DNS服务商和定制的选项):
如何部署脚本
- Linux系统上基本都有crontab(计划任务),假设脚本已经加了可执行权限(
chmod +x ./ddns.sh
),并位于/root/ddns.sh
:
Edit cron:crontab -e
*/10 * * * * /root/ddns.sh &>/dev/null
意思是每隔10分钟执行/root/ddns.sh并屏蔽输出日志。当然,如果你需要记录日志可以直接重定向至保存路径。 然后按Esc,输入:wq回车保存退出即可。
更多关于Crontab的使用方法此处不再详述。一些NAS系统,比如群晖,有现成的计划任务设置也可以点点点。 - hotplug接口可以实现网卡IP变动时,自动执行脚本,因此他比计划任务更”环保”。如果你的系统是支持hotplug接口的话,比如openwrt,当你选择从网卡接口获取IP时,脚本会提示你是否直接生成脚本在hotplug目录:
|
|
自定义选项和消息通知
脚本生成后,你还可以在生成的脚本内调整一些自定选项(从Customizable option area到Customizable option end的区域)。
自定义选项:
- PROXY 设置连接API用的代理,比如
PROXY="http://192.168.1.100:7890"
- OUT 设置脚本网络流量要走哪个网卡,比如
OUT="eth0"
(仅curl支持) - CHECKURL 设置用于检测IP地址的网址,脚本已经内置了一些获取IP地址的网站,失败时会依次轮流尝试获取。你设置的CHECKURL会被第一个尝试。
- ValidateCA 当ValidateCA=1时会验证证书的有效性,默认关闭。你需要自行为本地环境补全CA证书,比如大多数Linux需要安装ca-certificates包。
消息通知选项:
- ddns_ntfy_url Ntfy是一个跨平台、开源、简单的基于HTTP的发布-订阅通知服务。
参考官网:https://ntfy.sh/
示例:ddns_ntfy_url="http://ntfy.sh/yourtopic"
- ddns_bark_url Bark是一个iOS应用程序,它允许你将自定义的通知推送到你的iPhone上。
参考官网:https://github.com/Finb/bark-server
示例:ddns_bark_url="https://api.day.app/yourkey"
- ddns_sct_url 方糖推送,可以推送到微信上。
参考官网: https://sct.ftqq.com/
示例:ddns_sct_url="https://sctapi.ftqq.com/yourkey.send"
- ddns_pushplus_url 推送加,可以推到微信上。
参考官网:https://www.pushplus.plus/
示例:ddns_pushplus_url="http://www.pushplus.plus/send?token=yourkey"
- ddns_dingtalk_url 钉钉群机器人推送,请添加关键字:IP
参考官网:https://open.dingtalk.com/document/robots/custom-robot-access/
示例:ddns_dingtalk_url="https://oapi.dingtalk.com/robot/send?access_token=yourkey"
脚本仅内置了几个“开箱即用”的通知选项,如果你想要使用自己的Webhook,只需要在生成的脚本里面搜索push_result函数修改。
关于
License:GPLv3
Github: https://github.com/kkkgo/UE-DDNS
(っ◞‸◟c)都看到这里了,点个Star
吧
文章作者Sliamb
上次更新2023-03-08
许可协议CC BY-SA 4.0 / 转载文章请保留链接。
文章链接https://blog.03k.org/post/ue-ddns.html
要发表评论,您必须先登录。