type
status
date
slug
summary
tags
category
icon
password
DDNS(Dynamic Domain Name Server,动态域名服务)
这里推荐大佬的仓库,比较小巧,搭配Cloudflare食用很方便
UE-DDNS
kkkgo • Updated Dec 6, 2023
1.下载DDNS
如果系统没有
curl
命令,使用 wget
这里其实就是将
ue-ddns.sh
这个文件下载下来![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fc27d6581-a8c8-4d90-8383-4d000d5f308c%2FUntitled.png?table=block&id=a231880b-3cec-443c-9e72-e52b8e3f1843&t=a231880b-3cec-443c-9e72-e52b8e3f1843&width=696&cache=v2)
2.执行脚本
3.配置DDNS
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F97b6824d-8022-4de0-bd5e-e7fd9b467b60%2FUntitled.png?table=block&id=2b2e9189-f0b4-49d5-9bba-17996a76af4b&t=2b2e9189-f0b4-49d5-9bba-17996a76af4b&width=665&cache=v2)
这一步是选择DNS服务商,我推荐是使用
cloudflare
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fcacb4cd2-92d3-4684-acf5-dae1138affe2%2FUntitled.png?table=block&id=d8943c54-1063-4e10-90e9-4f45886ee7a2&t=d8943c54-1063-4e10-90e9-4f45886ee7a2&width=494&cache=v2)
这里是需要选择解析
IPV4
还是 IPV6
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Faff88c9a-781a-44f9-adb7-46eaf71de2d6%2FUntitled.png?table=block&id=620940aa-5273-4cad-b204-d9ec12c1d3e1&t=620940aa-5273-4cad-b204-d9ec12c1d3e1&width=555&cache=v2)
接下来是需要输入
cloudflare
的 API Token
进入上面提示的地址:
推荐新建一个只用来修改DNS的令牌
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F9f1e4210-335f-4bff-b7ba-1934955c2b69%2FUntitled.png?table=block&id=93f85bb1-7a00-460d-a9aa-f3596178b22a&t=93f85bb1-7a00-460d-a9aa-f3596178b22a&width=1237&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F320d5889-b39e-4171-afb5-3412a5dea391%2FUntitled.png?table=block&id=e4e9c931-43e0-4132-afb5-3c45275011b6&t=e4e9c931-43e0-4132-afb5-3c45275011b6&width=868&cache=v2)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F8baa6de8-5edd-41dd-b583-32d761b5430a%2FUntitled.png?table=block&id=f21792b4-ec1f-4d52-b491-28c397e4ba60&t=f21792b4-ec1f-4d52-b491-28c397e4ba60&width=1077&cache=v2)
点击创建即可,注意保存好你的令牌,不会再次显示了的
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F8772f79a-5bed-4453-85f6-2528cc9c20fa%2FUntitled.png?table=block&id=aa5ba167-3ca2-4d8d-911f-9da9357b9a2c&t=aa5ba167-3ca2-4d8d-911f-9da9357b9a2c&width=1211&cache=v2)
将令牌输入上面的窗口:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F006931d9-e67b-4167-8dad-c9b0c8f2aba0%2FUntitled.png?table=block&id=962e6082-82c2-467c-ae8a-fa791e7c6431&t=962e6082-82c2-467c-ae8a-fa791e7c6431&width=615&cache=v2)
这边会列出你指定域名下的所有dns解析,你可以选择其中一个,或者创建一个新的
这里我创建一个新的,输入:
0
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F074db26e-b91c-4f27-93f5-7ad4dcf2ceab%2FUntitled.png?table=block&id=3d58febf-4c6f-4c0c-94d9-120332aae3b7&t=3d58febf-4c6f-4c0c-94d9-120332aae3b7&width=495&cache=v2)
这个是让你选择是否开启CDN代理
如果你不是很理解,那么请选择
Disable
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F7aaa42f0-2b89-4ced-91b7-38755acd8882%2FUntitled.png?table=block&id=31e5198d-faf3-4548-9766-1027eccf4918&t=31e5198d-faf3-4548-9766-1027eccf4918&width=523&cache=v2)
这里是选择从哪里获取IP:
- 从url(网络中)获取ip
- 从指定的网卡接口获取ip
这里我们一般用户选择1就好了
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F97f19a64-e375-40bd-9b83-3fcb66d55673%2FUntitled.png?table=block&id=98ce79b9-3804-4e66-8b9c-37e3e5f835f2&t=98ce79b9-3804-4e66-8b9c-37e3e5f835f2&width=718&cache=v2)
现在DDNS的脚本就生成好了:
ddns.lpolaris.com@cloudflare_IPV4_URL.sh
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fec45d8e0-62ca-47d2-8626-ede5ab2127d3%2FUntitled.png?table=block&id=35cbcee6-d470-4fab-8d3a-054ef1c2b1b4&t=35cbcee6-d470-4fab-8d3a-054ef1c2b1b4&width=528&cache=v2)
4.测试DDNS脚本
执行:
sh [email protected]
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F80522408-2a8a-4197-9dd4-764ad85b1d12%2FUntitled.png?table=block&id=b9681a81-a0bb-4fe7-be0c-60b3180ab1f7&t=b9681a81-a0bb-4fe7-be0c-60b3180ab1f7&width=741&cache=v2)
如上图所示,执行正常
5.设置定时执行
因为ip随时可能会发生变化,所以我们需要设置定时任务,每隔几分钟更新一下dns的ip解析
这里我们用到了
crontab
写入
crontab
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F7abe456d-375d-4ec4-bcf8-2f6d96e7d01a%2FUntitled.png?table=block&id=523471f7-08ac-411c-b25c-414f395ff5e9&t=523471f7-08ac-411c-b25c-414f395ff5e9&width=547&cache=v2)
我这里是引文系统没有创建
crontab
,所以需要创建一个我个人比较习惯用
vim
编辑器,所以选2![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fd1bbdc7d-e8d3-4d5b-ab9c-7dbf4c260070%2FUntitled.png?table=block&id=2b10f72c-d762-4ebc-8881-a01a014d7b35&t=2b10f72c-d762-4ebc-8881-a01a014d7b35&width=708&cache=v2)
输入按键
i
,写入以下命令:这里的意思是,每隔10分钟,执行一次
/root/ddns.sh
(这里是你刚刚生成的脚本位置),并屏蔽输出日志![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F92773b0e-82e7-40b0-b141-93e071aaa3e0%2FUntitled.png?table=block&id=3e4fe9bc-48e3-4812-ac0d-a27fc7363ef0&t=3e4fe9bc-48e3-4812-ac0d-a27fc7363ef0&width=953&cache=v2)
按键
esc
,输入: :wq
(保存并退出)最后再检查一下:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F4328fa2a-3cfd-4352-873e-e6e84aede729%2FUntitled.png?table=block&id=45204e42-d405-4a02-aad1-d6cbf8083013&t=45204e42-d405-4a02-aad1-d6cbf8083013&width=601&cache=v2)
配置完成
6.设置消息通知
修改之前创建的
ddns.sh
的参数即可消息通知选项:
- ddns_ntfy_url
Ntfy是一个跨平台、开源、简单的基于HTTP的发布-订阅通知服务。
参考官网:https://ntfy.sh/
示例:
ddns_ntfy_url="http://ntfy.sh/yourtopic"
- ddns_bark_url Bark
是一个iOS应用程序,它允许你将自定义的通知推送到你的iPhone上。
示例:
ddns_bark_url="https://api.day.app/yourkey"
- ddns_sct_url 方糖推送,可以推送到微信上。参
示例:
ddns_sct_url="https://sctapi.ftqq.com/yourkey.send"
- ddns_pushplus_url 推送加,可以推到微信上。
示例:
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函数修改。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F8cb2352c-30b6-4c36-9ce3-afade577b380%2FUntitled.png?table=block&id=f2125383-0379-47b6-a17e-6602449271c9&t=f2125383-0379-47b6-a17e-6602449271c9&width=914&cache=v2)
修改对应设置即可
比如,我用的是:
ddns_pushplus_url
推送到微信![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fdfe326c7-304c-4b1c-b705-21f649ae2fb1%2FUntitled.png?table=block&id=aac44603-6c90-4a95-9629-33a1998e0328&t=aac44603-6c90-4a95-9629-33a1998e0328&width=957&cache=v2)
至此完成ddns的配置
7.其他的一些自定义配置说明
- PROXY 设置连接API用的代理,比如
PROXY="http://192.168.1.100:7890"
- OUT 设置脚本网络流量要走哪个网卡,比如
OUT="eth0"
(仅curl支持)
- CHECKURL 设置用于检测IP地址的网址,脚本已经内置了一些获取IP地址的网站,失败时会依次轮流尝试获取。你设置的CHECKURL会被第一个尝试。
- ValidateCA 当ValidateCA=1时会验证证书的有效性,默认关闭。你需要自行为本地环境补全CA证书,比如大多数Linux需要安装ca-certificates包。
- 作者:PolarisAspire
- 链接:https://lpolaris.com//article/ueddns
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章