Skip to content

Latest commit

 

History

History
89 lines (57 loc) · 3.04 KB

README_zh_cn.md

File metadata and controls

89 lines (57 loc) · 3.04 KB

dnsupdater

Build GitHub release (latest by date) Total download

English

本工具可以获取你当前的工网IP地址,并将其更新到指定的DNS记录。

建议在你的家庭服务器,或者在你的路由器中运行这个工具。

绝不应该在代理服务器或VPN后面运行这个应用。这种场景是未被考虑且未经测试的。

如何使用

  • 前往 下载页面 为你的目标平台下载最新的版本。

  • 将下载到的压缩包解压。

  • config.yaml.template重命名为config.yaml

  • 完成config.yaml中的配置。

  • dnsupdaterconfig.yaml上传到你想要运行这个应用的地方。注意,这两个文件必须位于相同目录下。

  • 设置一个定时任务(cron),比如

0 0,12 * * * /home/yourname/dnsupdater/dnsupdater > /var/log/update-dns.log 2>&1 &

配置要点

  • CloudFlare配置中的APIKey必须是一个单独的API令牌。 你可以在 这里 通过套用编辑区域 DNS这个模版来生成。

  • 切勿修改阿里云配置中的RegionID。目前阿里云仅接受cn-hangzhou这一个值。

  • 关于 JSON path

如下为JSON Path使用的操作符:

操作符 描述
$ 根元素,所有表达式都应以此为开始
@ 当前元素
* 通配符,用来匹配下级元素
.. 递归匹配所有子元素
.<元素名> 通过元素名匹配单个子元素
['<元素名>' (, '<元素名>')] 通过元素名匹配单个或多个子元素
[<下标> (, <下标>)] 匹配数组指定下标的元素
[起始:末尾] 取数组的切片
[?(<表达式>)] 过滤表达式

假设你得到了这样的一个JSON:

{
  "ip": "103.156.184.21",
  "tz": "Asia/Taipei"
}

那么就可以用表达式 $.ip 来取到 ip 这个元素的值。

为其他平台构建可执行文件

你可以通过运行 scripts 文件夹中的脚本文件来查看预设的目标平台。

对于Windows用户:

build.bat /?

对于*NIX用户:

make help

如果你的目标平台不在预设的列表,那么你可以通过go build命令, 并手动指定环境变量GOARCHGOOS(如果有必要的话,还可以指定GOMIPS)来为你的目标平台构建可执行文件。

许可协议

本程序依据MIT协议开源。