[工具] Cloudflare DNS Record 自动更新为 Cloudflare 优选 IP

2023-07-03 22:11:39 +08:00
 JeffersonQin

https://github.com/JeffersonQin/cloudflare-dynamic-best

测当地 cloudflare 优选 IP ,测完自动更新需要绑定的 cloudflare dns 记录

因为是自用,我的需求只有 cloudflare 的 nameserver ,如果需要其他域名提供商欢迎 PR

3355 次点击
所在节点    分享创造
9 条回复
ety001
2023-07-05 08:50:08 +08:00
额。。。为了更新 cname ,用 rust 单独写个程序? 直接一条 curl bash 命令就搞定了啊。。。
ety001
2023-07-05 08:53:50 +08:00
```
if [ -L $0 ]
then
BASE_DIR=`dirname $(readlink $0)`
else
BASE_DIR=`dirname $0`
fi


$BASE_DIR/CloudflareST \
-n 1000 \
-t 10 \
-f $BASE_DIR/ip.txt \
-o $BASE_DIR/result.csv


newIP=$(sed -n "2,1p" $BASE_DIR/result.csv | awk -F, '{print $1}')


echo "update to CF"
curl --proxy http://localhost:8001 \
-X PUT "https://api.cloudflare.com/client/v4/zones/xxxx/dns_records/xxxx" \
-H "Authorization: Bearer xxxxx" \
-H "Content-Type: application/json" \
--data '{"type":"A","name":"xxxxx","content":"'$newIP'","ttl":1,"proxied":false}'
```
JeffersonQin
2023-07-05 16:58:32 +08:00
@ety001 本身就是玩 rust 练练手的,而且我平时干活也写够 bash 了,这坨答辩不想在下班时间碰
amlee
2023-07-08 02:02:02 +08:00
@ety001 #2

你好,我有点没弄明白。

我自己的理解是,脚本优选出来本地连到 cloudflare 比较块的 ip ,然后应该修改本地的 hosts 文件,域名指向这个比较块的 ip 。

但看 @ety001 #2 的脚本,为什么最后要修改域名的 A 记录? A 记录不是应该始终指向源服务器的吗?
amlee
2023-07-08 02:02:48 +08:00
amlee
2023-07-08 02:07:23 +08:00
@JeffersonQin 这个软件的意图是不是测出来源服务器到 cloudflare 比较快的 namesever 的 ip ,然后在域名注册商那里,就不填 cloudflare 提供的 nameserver 域名,而是填自己测出来的 ip ?
ety001
2023-07-08 12:20:46 +08:00
@amlee 你也可以修改本地 hosts 。因为我不止一台设备使用,因此,我没法使用修改本地 hosts 的方案。

因此我准备了两个域名,a.comb.com

a.com 在 cloudflare 打开代理,脚本更新优选 ip 的时候,就更新 a.com 的 a 记录。
b.com 在 cloudflare 不用打开代理,然后 a 记录指向真实服务器 ip 地址。

最后在 v2ray 配置 outbound 的时候,vnext 里的 address 用 a.com ,streamSettings 的配置中,wsSettings => headers => Host 和 tlsSettings => serverName 都配置为 b.com
ety001
2023-07-08 12:28:41 +08:00
@amlee 另外 v2ray 的 dns 查询也需要配置下,能让 a.com 的 dns 查询走代理(单独一个不用 a.com 的 outbound)出去。 因为国内 dns 查询会不定时污染你的 a.com 的 a 记录。
JeffersonQin
2023-07-10 13:51:25 +08:00
@amlee 一楼说的是对的 @ety001

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/953800

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX