笨猫博客

  • 🍟首页
  • 🍘目录
    • 🥝VPS教程
    • 🍾猫玩技术
    • 🍹干货分享
    • 🍏软件分享
    • 🍩一只猫
  • 🍋工具
    • 🌽IP路由追踪
    • 🍐域名Whois查询
    • 🥘域名被墙查询
    • 🍧IP正常检测
    • 🔥IP端口检测
    • 🍆短网址
    • 🐟VIP音乐播放
    • 🍯KMS激活
  • 🍓链接
  • 🍪联系
  • 🍱登录
    • 🥦登录
    • 🍒注册
关注互联网,生活,音乐,乐此不疲的一只笨猫
  1. 首页
  2. 猫玩技术
  3. 正文

UE-DDNS 一个通用嵌入式DDNS脚本

2023-07-17 1391点热度 1人点赞 0条评论

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服务商:

  • Cloudflare
  • Dnspod.cn
  • Dnspod.com国际版
  • Godaddy

如何使用

你可以从以下两个地址下载脚本:
https://ddns.03k.org
https://raw.githubusercontent.com/kkkgo/UE-DDNS/main/ue-ddns.sh
你可以在目标设备直接在线执行:

1
2
curl -skLo ue-ddns.sh ddns.03k.org  
sh ue-ddns.sh

如果没有curl命令,可以执行:

1
2
wget --no-check-certificate https://ddns.03k.org -O ue-ddns.sh
sh ue-ddns.sh

脚本运行后将会有向导提示选择你的DNS服务商 IPV4/IPV6:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
=========================================
# Universal embedded DDNS Shell Script #
# https://github.com/kkkgo/UE-DDNS
# https://blog.03k.org/post/ue-ddns.html
=========================================
[1] cloudflare
[2] dnspod
[3] godaddy
Select your DNS provider[1]:1
cloudflare DDNS:
[1] IPV4 DDNS
[2] IPV6 DDNS
IPV4/IPV6 DDNS?[1]:1

接下来根据你选择的DNS服务商,需要你提供相应的API Tokens,向导会给出申请API Tokens的网页提示。输入API Tokens后你将会看到主域名选择列表(如果你有多个域名的话)和子域名选择列表(显示效果取决于DNS服务商的API)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
[help] https://dash.cloudflare.com/profile/api-tokens
Your cloudflare API TOKEN:***************************
[1] 03k.org
[2] example.com
Select your domain name[1]:1
Domain: 03k.org
IPV4 sub domain list:
[0] Add a new subdomain name
[1] 03k.org A 1.2.3.4
[2] office.03k.org A 5.6.7.8
[3] myhome.03k.org A 6.7.8.9
[4] www.03k.org A 1.2.3.4
Select your IPV4 subdomain name[0]:

你可以直接选择列表上你的子域名来生成DDNS脚本,你可以选择使用URL来获取动态IP:

1
2
3
4
5
6
7
How to get your new IP ?
[1]From IP-Check URL
[2]From Interface
Your choice [1]:1
DDNS script generation completed!
/root/myhome.03k.org@cloudflare_IPV4_URL.sh:
-rwxrwxrwx 1 root root 12K Mar  8 18:36 myhome.03k.org@cloudflare_IPV4_URL.sh

或者可以直接选择指定某个网卡接口的IP:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
How to get your new IP ?
[1]From IP-Check URL
[2]From Interface
Your choice [1]:2
[1] eth0 111.20.3.1
[2] eth1 112.30.1.4
[3] Enter the network interface manually
Please select your interface [1]
DDNS script generation completed!
/root/myhome.03k.org@cloudflare_IPV4_eth0.sh:
-rwxrwxrwx 1 root root 12K Mar  8 18:40 myhome.03k.org@cloudflare_IPV4_eth0.sh

对于Cloudflare还会询问你是否开启此域名的CDN代理功能:

1
2
3
Turn on Cloudflare CDN proxied for myhome.03k.org?
[1]Disable
[2]Enable

在子域名列表菜单,你也可以选择[0]来新建一个你的子域名:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
Select your IPV4 subdomain name[0]:0
Create New: Enter sub domain [ Like ddns ]:myhomeddns
Turn on Cloudflare CDN proxied for myhomeddns.03k.org?
[1]Disable
[2]Enable
Your choice [1]:1
How to get your new IP ?
[1]From IP-Check URL
[2]From Interface
Your choice [1]:1
DDNS script generation completed!
/root/myhomeddns.03k.org@cloudflare_IPV4_URL.sh:
-rwxrwxrwx 1 root root 12K Mar  8 18:57 myhomeddns.03k.org@cloudflare_IPV4_URL.sh

最终,你都会在当前目录得到一个定制的DDNS脚本,你可以尝试执行他(sh xxxx@xx.sh)测试效果。脚本生成后你可以rm ue-ddns.sh删除。
执行效果看起来会是这样(取决于你选择的DNS服务商和定制的选项):

1
2
3
4
5
6
2023-03-08 23:20:58 CST
URL IP : 218.56.43.21
DNS IP : 116.78.34.11
API IP : 116.78.34.11
Trying to update: myhomeddns.mytestdomain2023.com -> 218.56.43.21
Update OK: "type":"A","content":"218.56.43.21","proxiable":true,"proxied":false

如何部署脚本

  • 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目录:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
How to get your new IP ?
[1]From IP-Check URL
[2]From Interface
Your choice [1]:2
[1] wan 116.22.1.118
[2] br-lan 10.10.10.1
[3] Enter the network interface manually
Please select your interface [1]
Detected hotplug support, generate script in /etc/hotplug.d/iface ?
[1] No.
[2] Move to /etc/hotplug.d/iface
Your choice [1]:2
DDNS script generation completed!
/etc/hotplug.d/iface/myhome.03k.org@cloudflare_IPV4_wan.sh:
-rwxr-xr-x    1 root     root       11.1K Mar  8 23:15 /etc/hotplug.d/iface/myhome.03k.org@cloudflare_IPV4_wan-lan.sh

自定义选项和消息通知

脚本生成后,你还可以在生成的脚本内调整一些自定选项(从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函数修改。
标签: 暂无
最后更新:2023-07-17

笨猫

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

最新 热点 随机
最新 热点 随机
WinRAR 商业版下载安装和白嫖指南 Certbot申请谷歌免费SSL证书 宝塔面板卸载全解析:命令与脚本两种方式详解 SSL证书密钥类型选择RSA还是ECC算法?对网站的影响及建议 万能 一键dd windows 脚本, 含 win10/win11/server2025官方最精简版,一键激活+VC运行库 煎饼大佬的一键DD/重装脚本
煎饼大佬的一键DD/重装脚本DD一个轻量的Alpine+Linux+发行版+更轻+更快+更安全LibreTV - 免费在线视频搜索与观看平台万能 一键dd windows 脚本, 含 win10/win11/server2025官方最精简版,一键激活+VC运行库SSL证书密钥类型选择RSA还是ECC算法?对网站的影响及建议宝塔面板卸载全解析:命令与脚本两种方式详解
Wordpress全局字体修改指南 2012伦敦奥运金牌榜调用 咪客(Micat)——开放的手机应用客户端软件 中国科幻巨制《流浪地球2》 域名低价 SSL 证书推荐 NZXT CAM(恩杰PC监控软件) v4.30.1.2 中文安装版
最近评论
龙笑天 发布于 3 周前(05月25日) 一直用的萌咖的路过 :smile:
C 发布于 1 个月前(05月04日) 有个更省心的路子,上传到 catbox.moe,然后用 i0.wp.com 做加速(也支持heif格...
薯条 发布于 3 个月前(03月21日) 这个博客18年了吗,好久了哎
Q 发布于 3 个月前(03月19日) 您好: 我的一个WORDPRESS站点,安装了 wp telegram插件,我在配置了Bot ...
喂 发布于 3 个月前(03月08日) 热帖ggww
标签
elliptictrue100.10.02
BLOG ChatGPT Chrome CloudFlare DirectAdmin github Godaddy google kloxo Linux OneDrive OneIndex PHP QQ shadowsocks SNS ssh Typecho VPS web2.0 whmcs Windows wordpress 一键脚本 下载 免费 博客 图文教程 图标 图片 域名 头像 奥运 宝塔面板 插件 教程 日记 有趣 浏览器 游戏 猫 生活 电影 百度 网站 视频 设计 软件 阿里云盘 音乐
好友
  • glzjin's blog glzjin's blog
  • ZAERA博客
  • 冰沫记
  • 奇它博客
  • 猫腻‘s Blog
  • 猫饭
  • 肥宅之家
  • 萌博
  • 野路子程序员

COPYRIGHT © 2022 笨猫博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang