返回列表 发布新帖
查看: 390|回复: 6

嫖阿里云私人安全加密接入 (HTTP(s)、DoH、DoT、DoQ) 同步进AdGuard Home ...

发表于 2025-3-19 22:57:20 | 查看全部 |阅读模式

立刻注册账号,享受更清爽的界面!

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 奇迹 于 2025-3-19 23:10 编辑

问:为什么要这么干?
答:阿里云解析中时间戳有效期为1天 所以生成的链接不能一直使用
image
相关链接:https://help.aliyun.com/zh/dns/adguard-home-how-to-set-up-alibaba-public-dns-server

step1
进入控制台
https://dnsnext.console.aliyun.com/pubDNS
友情提示:记得设置预警金额阈值 不然 一套房没了
拿到对应的key 记得打开状态
image

把key填入 py脚本里 保存一下例如dns.py 如果你号多 你就自己魔改一下

#!/usr/bin/python
# -*- coding:utf-8 -*-
import hashlib
import time

# 定义常量
# 移动138
AccessKeyID_m = "填入对应key"
AccessKeySecret_m = "填入对应key"

# 移动182
AccessKeyID_y = "填入对应key填入对应key"
AccessKeySecret_y = "填入对应key"

# 电信189
AccessKeyID_t = "填入对应key"
AccessKeySecret_t = "填入对应key"

# 联通166
AccessKeyID_l = "填入对应key"
AccessKeySecret_l = "填入对应key"

# 联通166-2
AccessKeyID_l2 = "填入对应key"
AccessKeySecret_l2 = "填入对应key"

# 获取当前时间戳(秒)
ts = int(time.time())
# 计算 ts' = ts / 3600,确保定长为7个字符(前面补0)
ts_ = str(ts // 3600).zfill(7)

# 定义生成 URL 的函数
def generate_urls(AccessKeyID, AccessKeySecret):
    # 计算 key = sha1(AccessKeySecret + ts' * 3600 + AccessKeyID)
    key_input = AccessKeySecret + str(int(ts_) * 3600) + AccessKeyID
    key = hashlib.sha1(key_input.encode()).hexdigest()[:40]
    # 获取 AccessKeyID' = AccessKeyID 的前16个字符
    AccessKeyID_ = AccessKeyID[:16]
    # 拼接 label
    label = key + ts_ + AccessKeyID_
    # 拼接不同的协议格式
    url_https = "https://{}.alidns.com/dns-query".format(label)
    url_tls = "tls://{}.alidns.com".format(label)
    url_quic = "quic://{}.alidns.com".format(label)
    url_h3 = "h3://{}.alidns.com/dns-query".format(label)
    return [url_https, url_tls, url_quic, url_h3]

# 生成所有提供商的 URL
urls_m = generate_urls(AccessKeyID_m, AccessKeySecret_m)
urls_y = generate_urls(AccessKeyID_y, AccessKeySecret_y)
urls_t = generate_urls(AccessKeyID_t, AccessKeySecret_t)
urls_l = generate_urls(AccessKeyID_l, AccessKeySecret_l)
urls_l2 = generate_urls(AccessKeyID_l2, AccessKeySecret_l2)

# 将生成的 URL 保存到文件
with open('dns.txt', 'w') as f:
    all_urls = urls_m + urls_y + urls_t + urls_l + urls_l2
    for i, url in enumerate(all_urls):
        if i == len(all_urls) - 1:  # 如果是最后一行
            f.write("    - " + url)  # 不加换行
        else:
            f.write("    - " + url + '\n')  # 其他行加换行

print("保存成功dns.txt.")

step2
获取到了以后 找到 AdGuard Home的yaml 配置文件绝对路径
例如我的
/usr/local/bin/AdGuardHome/AdGuardHome.yaml
然后保存下列的代码为dns.sh
然后设置10个小时自动执行一次

#!/bin/bash

# 执行 /root/dns.py 脚本
python3 /root/dns.py

# 等待 5 秒钟
sleep 5

# 配置文件路径
config_file="/usr/local/bin/AdGuardHome/AdGuardHome.yaml"

# 读取 /root/dns.txt 文件的内容
dns_content=$(cat /root/dns.txt)

# 使用 awk 替换第26到第28行的内容
awk -v dns_content="$dns_content" '
BEGIN {split(dns_content, arr, "\n")}
NR==26 {$0=arr[1]}
NR==27 {$0=arr[2]}
NR==28 {$0=arr[3]}
NR==29 {$0=arr[4]}
NR==30 {$0=arr[5]}
NR==31 {$0=arr[6]}
NR==32 {$0=arr[7]}
NR==33 {$0=arr[8]}
NR==34 {$0=arr[9]}
NR==35 {$0=arr[10]}
NR==36 {$0=arr[11]}
NR==37 {$0=arr[12]}
NR==38 {$0=arr[13]}
NR==39 {$0=arr[14]}
NR==40 {$0=arr[15]}
NR==41 {$0=arr[16]}
NR==42 {$0=arr[17]}
NR==43 {$0=arr[18]}
NR==44 {$0=arr[19]}
NR==45 {$0=arr[20]}

{print}
' $config_file > temp_file && mv temp_file $config_file

echo "配置文件已更新。"

# 等待 3 秒钟
sleep 3

# 重启 AdGuardHome
sudo systemctl restart AdGuardHome

echo "AdGuardHome 已重启。"
sleep 1
echo "更新完毕"

step3
ADG HOME里设置负载均衡
image

问:为什么不设置并行请求
答:因为并行的话所有的请求都会经过key对应的账户,因为一个月1000W的免费配额,完全支撑不了,再者国内的阿里云的服务器响应速度都是个位数ms的,所以才选择负载均衡


效果

image
image

爱生活,爱奶昔~
发表于 2025-3-19 22:59:37 | 查看全部
能用api获取新的label吗
爱生活,爱奶昔~
回复 支持 反对

使用道具 举报

发表于 2025-3-19 23:00:50 | 查看全部
其实阿里云DNS是有DoQ的,你去看看这个吧 https://help.aliyun.com/zh/dns/a ... a-public-dns-server
Doq比DoH更安全且更快,能用DoQ就用DoQ吧
  1. //DNS-over-HTTPS设置如下:
  2. https://label.alidns.com/dns-query
  3. //DNS-over-TLS设置如下:
  4. tls://label.alidns.com
  5. //DNS-over-QUIC设置如下:
  6. quic://label.alidns.com
复制代码
爱生活,爱奶昔~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-19 23:01:28 | 查看全部
nyarime 发表于 2025-3-19 22:59
能用api获取新的label吗

可以啊
脚本都放着了
另外球球支持markdown 哈哈
爱生活,爱奶昔~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-19 23:02:14 | 查看全部
本帖最后由 奇迹 于 2025-3-19 23:06 编辑


帖子里有支持DOQ 自己修改一下脚本就行了
爱生活,爱奶昔~
回复 支持 反对

使用道具 举报

发表于 2025-3-20 09:09:53 | 查看全部
感谢分享
爱生活,爱奶昔~
回复 支持 反对

使用道具 举报

发表于 2025-3-26 10:32:01 | 查看全部
感谢分享
爱生活,爱奶昔~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 关注公众号
  • 添加微信客服
© 2025 Naixi Networks 沪ICP备13020230号-1|沪公网安备 31010702007642号
关灯 在本版发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表