广告拦截新选择--AdGuardPrivate

AdGuardPrivate 是一款专注于网络隐私保护与广告拦截的 DNS 服务工具,基于开源项目 AdGuard Home 二次开发,通过智能流量分析和过滤技术,为用户提供安全、高效的上网环境。以下是其主要功能与特点:

核心功能:广告拦截与隐私保护

  • 广告拦截:通过 DNS 层面拦截网页广告(如横幅、弹窗、视频广告等)及移动应用内广告,提升浏览速度和设备性能。
  • 隐私防护:阻止跟踪器、社交网络插件和隐私窃取请求,防止用户行为数据被收集,同时拦截恶意网站、钓鱼链接和恶意软件。
  • DNS 防污染:通过加密 DNS(支持 DoT、DoH、HTTP/3)防止流量劫持,确保域名解析的准确性和安全性。

进阶特性:定制化与优化

  • 自定义规则:支持用户添加第三方黑白名单或自定义过滤规则,灵活控制特定应用、网站或游戏的访问权限。
  • 智能解析:可配置局域网设备的友好域名解析(如 NAS 或企业服务器),简化网络管理。
  • 统计分析:提供详细的请求日志、拦截统计和 72 小时查询记录,帮助用户监控网络使用情况。

家庭与企业场景支持

  • 家长控制:可屏蔽成人网站和游戏,管理家庭成员的上网时间,保护未成年人。
  • 企业级部署:支持分布式服务器负载均衡,优化大陆地区的访问体验,并通过阿里云节点提供稳定服务。

平台兼容性与服务模式

  • 跨平台支持:兼容多种操作系统,无需额外软件,仅需配置加密 DNS 即可使用。
  • 服务模式:
  • 免费公共服务:提供基础广告拦截与安全规则,但可能存在误拦截问题。
  • 付费私有服务:增强功能包括自定义解析、权威解析、设备分 ID 记录上网行为等,适合个性化需求。

技术优势与局限性

  • 优势:全设备覆盖、零额外功耗,降低无效数据加载,适合移动设备续航优化。
  • 局限性:拦截精度低于浏览器插件,无法实现 HTTPS 内容的深度过滤(如 MITM 方案)。
  • 应用场景示例
    • 个人用户:通过 AdGuardPrivate 阻止移动应用内广告,提升应用体验。
    • 家庭用户:通过路由器部署 AdGuardPrivate,拦截全家设备的广告,并限制儿童访问不当内容。
    • 企业网络:结合自定义规则屏蔽娱乐类网站,提升员工工作效率,同时保护内部数据安全。

使用 curl 获取 DNS 结果

介绍如何使用 curl 命令获取 DNS 查询结果的两种格式。

本文介绍两种利用 curl 获取 DNS 查询结果的方法:

  1. DNS JSON 格式
  2. DNS Wire Format 格式

1. DNS JSON 格式查询

返回 JSON 格式的 DNS 响应,便于解析。

Google

curl -H 'accept: application/dns-json' "https://dns.google/resolve?name=baidu.com&type=A" | jq .

Cloudflare

curl -H 'accept: application/dns-json' 'https://cloudflare-dns.com/dns-query?name=baidu.com&type=A' | jq .

Aliyun

curl -H "accept: application/dns-json" "https://223.5.5.5/resolve?name=baidu.com&type=1" | jq .

dns.pub

curl -H 'accept: application/dns-json' 'https://doh.dns.pub/dns-query?name=baidu.com&type=A' | jq .

AdGuard Private DNS

# 暂不受支持

2. DNS Wire Format 格式查询

返回二进制格式的 DNS 响应,需要进一步解析。

Google

curl -H 'accept: application/dns-message' 'https://dns.google/dns-query?dns=q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB'  | hexdump -c

Cloudflare

curl -H 'accept: application/dns-message' 'https://cloudflare-dns.com/dns-query?dns=q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB'  | hexdump -c

Aliyun

curl -H 'accept: application/dns-message' "https://dns.alidns.com/dns-query?dns=P8QBAAABAAAAAAAABWJhaWR1A2NvbQAAAQAB"  | hexdump -c

dns.pub

curl -H 'accept: application/dns-message' 'https://doh.dns.pub/dns-query?dns=q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB'  | hexdump -c

AdGuard Private DNS

curl -H 'accept: application/dns-message' 'https://public0.adguardprivate.com/dns-query?dns=q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB'  | hexdump -c

使用 Python 解析 DNS 响应

# pip install dnspython
# pip install requests
# 解析 JSON 格式响应
import json
import requests

def query_dns_json(domain="example.com", type="A"):
  """使用 JSON 格式查询 DNS"""
  url = "https://dns.google/resolve"
  params = {"name": domain, "type": type}
  headers = {"accept": "application/dns-json"}

  response = requests.get(url, params=params, headers=headers)
  return json.dumps(response.json(), indent=2)

# 解析 Wire Format 响应
def query_dns_wire(domain="example.com"):
  """使用 Wire Format 格式查询 DNS"""
  import dns.message
  import requests
  import base64

  # 创建DNS查询消息
  query = dns.message.make_query(domain, 'A')
  wire_format = query.to_wire()
  dns_query = base64.b64encode(wire_format).decode('utf-8')

  # 发送请求
  url = "https://dns.google/dns-query"
  params = {"dns": dns_query}
  headers = {"accept": "application/dns-message"}

  response = requests.get(url, params=params, headers=headers)
  dns_response = dns.message.from_wire(response.content)
  return str(dns_response)

if __name__ == "__main__":
  print("JSON格式查询结果:")
  print(query_dns_json())
  print("\nWire Format查询结果:")
  print(query_dns_wire())

生成 DNS Wire Format Base64 编码的数据

# pip install dnspython
import base64
import dns.message
import dns.rdatatype

# 创建一个DNS查询消息
query = dns.message.make_query('example.com', dns.rdatatype.A)

# 将消息转换为Wire Format
wire_format = query.to_wire()

# 转为base64
wire_format_base64 = base64.b64encode(wire_format).decode('utf-8')

# 打印
print(wire_format_base64)

如何使用必应国际版

有些搜索引擎不思进取,能搜到的有价值的内容越来越少,广告却越来越多。相信不少人都已逐渐放弃这类搜索引擎,转而使用必应(bing.com)。

但必应有多个版本:

  • cn.bing.com 是中国版,搜索结果经过审查。
    • 国内版:主要搜索中文内容。
    • 国际版:同时支持搜索中文和英文内容。
  • www.bing.com 这是真正的国际版,搜索结果没有中国大陆的审查,可以搜索到更多“你懂的”内容。

这三个版本的搜索结果会有所区别。对于具备英文阅读能力的用户,强烈推荐使用国际版,能获取到更有价值的资料。

我就不详细展开真国际版搜索内容的差异了,有兴趣的朋友可以自行尝试。

真国际版还提供 Microsoft Copilot 的入口,类似于 ChatGPT 的功能,可以帮你总结搜索结果。虽然有使用频次限制,但正常使用是足够的。

国内版和国际版的切换没有难度,这里主要介绍如何使用必应真正的国际版。

相信不少人在设置里折腾了很久,但还是无法使用国际版,这可能是方向错了。

真正的限制在于 DNS。DNS 可以根据请求者的所在地域,给出不同的解析结果。例如,山东和河南请求 qq.com 的 IP 地址可能不一样。通常,DNS 会返回在地理位置上更靠近的服务器 IP。

因此,如果你想使用国际版,可以尝试将 DNS 更换为 Google 的 tls://dns.google 或者 Cloudflare 的 tls://one.one.one.one

这里只提供了两个 DNS 服务商的加密 DNS 地址,没有提供纯 IP 的 DNS,因为纯 IP 的海外 DNS 很容易被劫持,分享 8.8.8.81.1.1.1 毫无意义。

DNS 的设置方法可以参考 如何配置 DNS 加密

注意,最简单的使用国际版必应的方法是使用加密 DNS,也有其他方法,本文不展开。

如果一个 DNS 不可用,可以依次尝试以下几个设置:

  • tls://dns.google
  • tls://one.one.one.one
  • tls://8.8.8.8
  • tls://8.8.4.4
  • tls://1.1.1.1
  • tls://1.0.0.1

通常会有两个能连接成功。如果全部无法连接,那只能寻找其他方法了。