• Stars
    star
    124
  • Rank 288,207 (Top 6 %)
  • Language
    Shell
  • License
    MIT License
  • Created over 7 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The CloudXNS DDNS with BashShell

CloudXNS-DDNS-with-BashShell

利用CloudXNS的API和shell脚本搭建自己的动态域名服务。如果你使用这个脚本,建议点watch以获取更新通知。

用于CloudXns的Powershell脚本另见:
https://github.com/lixuy/CloudXNS-DDNS-with-PowerShell
用于DNSPOD的Shell脚本另见:
https://github.com/lixuy/Dnspod-DDNS-with-BashShell

使用方法

本脚本分为两个版本,一个是获取自己外网ip的版本cloudxns_ddns.sh,一个是直接获取自己网卡设备上的ip的版本cloudxns_ddns_line.sh(对于多拨或者路由器网关用户适用)。

获取API的API_KEY和SECRET_KEY

APi的API_KEY和SECRET_KEY可以在用户中心开启获取:
获取API

cloudxns_ddns.sh

参数说明

参数 填写说明
API_KEY 在个人中心后台的安全设置里面获取API_KEY
SECRET_KEY 在个人中心后台的安全设置里面获取SECRET_KEY
DOMAIN 用作动态DNS的域名,例如ddns.mydomain.comhome.example.com,注意所填写的域名必须在你的账号下并且有存在解析记录。
CHECKURL 用于检查自己的外网IP是什么的网址,注释掉该参数会跳过所有检查(仅验证域名记录是否存在)直接执行更新记录(会导致高频率调用更新);建议的备选CHECKURL:http://ip.03k.org http://ip.3322.org http://myip.ipip.net http://checkip.dns.he.net https://api-ipv4.ip.sb/ip
OUT 指定使用某个网卡设备进行联网通信(默认被注释掉)。注意,一些系统的负载均衡功能可能会导致该参数无效。推荐使用ip a命令或者ifconfig命令查看网卡设备名称。

推荐的部署方法

把如上所述的参数填好即可。
本脚本没有自带循环,因为linux平台几乎都有Crontab(计划任务),利用计划任务可以实现开机启动、循环执行脚本、并设定循环频率而无需常驻后台。  

命令参考
假设脚本已经填写好参数并加了可执行权限(chmod +x ./cloudxns_ddns.sh),并位于/root/cloudxns_ddns.sh:
新建计划任务输入crontab -e   按a进入编辑模式,输入
*/1 * * * * /root/cloudxns_ddns.sh &> /dev/null
意思是每隔一分钟执行/root/cloudxns_ddns.sh并屏蔽输出日志。当然,如果你需要记录日志可以直接重定向至保存路径。 然后按Esc,输入:wq回车保存退出即可。
更多关于Crontab的使用方法此处不再详述。
另外对于一些带有Web管理界面嵌入式系统(比如openwrt),有图形化的计划任务菜单管理,可以直接把脚本粘贴进去。

工作过程

1、用CHECKURL检查自己的外网ip和本地解析记录是否相同,相同则退出;
2、执行DNS更新,并返回执行结果。

注意事项

本脚本不会自动创建子域名,请务必先到后台添加一个随意的子域名A记录,否则会提示Host record does not exist

cloudxns_ddns_line.sh

仅说明与上面脚本参数不同的地方。
因该脚本是用于获取网卡设备ip,所以没有CHECKURL参数。

参数说明

参数 填写说明
DEV 从网卡设备(例如eht0)上获取ip,并与DNS记录比对更新。推荐使用ip a命令ifconfig命令查看网卡设备名称。

日志参考

现象 说明
[DNS IP]为Get Domain Failed 本地DNS解析出现问题(断网、DNS服务器不工作、域名记录错误)
[URL IP]为空 访问CHECKURL失败,检查网络访问CHECKURL是否正常
Host record does not exist 不存在该域名或者该主机记录(本脚本不会自动创建子域名,请务必先到后台添加一个随意的子域名A记录)
[URL IP]或者[DEV IP]上次已经更新成功但是DNSIP还是不一样 DNS有缓存,DNS记录是已经更新,属正常现象

关于

https://03k.org/cloudxns-ddns-with-bashshell.html

More Repositories

1

LTSC-Add-MicrosoftStore

Add Windows Store for LTSC
Batchfile
3,200
star
2

KMS_VL_ALL

🔑KMS_VL_ALL - Smart Activation Script
Batchfile
2,941
star
3

vlmcsd

🔑Portable open-source KMS Emulator in C
C
1,038
star
4

PaoPaoDNS

泡泡DNS是一个能一键部署递归DNS的docker镜像
Shell
706
star
5

LTSB-Add-MicrosoftStore

Add Windows Store for LTSB
Batchfile
561
star
6

office-C2R-to-VOL

c2r office2016-2019-365_toVOL
Batchfile
482
star
7

PaoPaoGateWay

PaoPao GateWay是一个体积小巧、稳定强大的FakeIP网关
JavaScript
342
star
8

dnspod-ddns-with-bashshell

The Dnspod DDNS with BashShell
Shell
272
star
9

DSM_Login_BingWallpaper

群晖登录壁纸自动换
Shell
264
star
10

UE-DDNS

Universal Embedded DDNS Shell Script
Shell
174
star
11

EnterpriseGconvert

适用于1703+的Windows 10 Enterprise G转换处理/批量激活部署程序
Batchfile
140
star
12

CloudXNS-DDNS-with-PowerShell

The CloudXNS DDNS with PowerShell
PowerShell
46
star
13

zerotier-planet-builder

A ZeroTierOne planet with zero-ui web interface docker image builder.
C++
41
star
14

PaoPao-Pref

Go
34
star
15

WSL_Switch_Mod

为wsl2固定IP和网关
C++
26
star
16

hugo-friendlinks

🎨hugo友情链接模板/ a hugo friend links templates.
HTML
18
star
17

wsl-archlinux-install

自用的wsl安装脚本
Batchfile
16
star
18

dnscrypt-winclient

dnscrypt-winclient
12
star
19

Clear_UEFIBoot

This program is used to clear UEFI boot order entry in NVRAM.
PowerShell
11
star
20

Flytrap

一个简单的蜜罐防火墙脚本
Shell
8
star
21

Windows-10-Inbox-Apps-xml

Windows 10 Inbox Apps xml
7
star
22

caddy-docker

Dockerfile
4
star
23

all-tracker-list

自动收集tracker list
Shell
3
star
24

openwrt-builder

Shell
2
star
25

box

Go
2
star
26

mosdns

Go
2
star
27

Country-only-cn-private.mmdb

Country-only-cn-private.mmdb
Shell
1
star