业余人员问,,请分享你们的方案,谢谢。。

高情商 分享方案
低情商 快来自首

了解一下原理就知道怎么解决了,有这么难吗?

请看: github.com/develon2015/dnsd

除非你的用户都能使用干净的 dns 服务器,否则无解。

2333……业余地回答:润

能看懂的自己就能搞懂,看不懂的解释了也是不懂。

我目前是用 mosdns 做分流

doh,好了,谷歌吧。
我们公司就是这套方案。

mosdns + 分流 + doh

log:
level: info
file: ./log.log

include: []

data_providers:

  • tag: geoip.dat
    file: ./geoip.dat

# - tag: oisd_dbl_basic
# file: ./oisd_dbl_basic.txt

servers:

  • exec: main_sequence # 本服务器运行插件的 tag 。
    timeout: 5 # 请求处理超时时间。单位: 秒。默认: 5 。
    listeners: # 监听设置
  • protocol: udp
    addr: :53
  • protocol: tcp
    addr: :53
  • protocol: dot
    addr: :853
    cert: '/ssl-cert/XXXXXX.com/cert.pem' # dot, doh 必需。PEM 格式的证书文件。
    key: '/ssl-cert/XXXXXX.com/key.pem' # dot, doh 必需。PEM 格式的密钥文件。
  • protocol: doh
    addr: :443
    cert: '/ssl-cert/XXXXXX.com/cert.pem' # dot, doh 必需。PEM 格式的证书文件。
    key: '/ssl-cert/XXXXXX.com/key.pem' # dot, doh 必需。PEM 格式的密钥文件。
    url_path: '/dns-query' # url 路径。适用于 doh, http。如果为空,则任意路径的请求都能被处理。
    get_user_ip_from_header: 'X-Forwarded-For' # 适用于 doh, http。尝试从反向代理的 HTTP 头获取用户 IP 。

plugins:

  • tag: mem_cache
    type: cache
    args:
    size: 10240 # 内存缓存大小。单位: 条。默认: 1024 。
    lazy_cache_ttl: 86400 # lazy cache 生存时间。单位: 秒。默认: 0 (禁用 lazy cache)。
    # RFC 8767 的建议值 86400 (1 天) ~ 259200 (3 天)
    lazy_cache_reply_ttl: 30 # 返回过期应答的 TTL 。默认 30 (RFC 8767 的建议值)。
  • tag: query_is_ad_domain
    type: query_matcher
    args:
    domain:
  • 'provider:oisd_dbl_basic'
  • tag: forward_china
    type: fast_forward
    args:
    upstream:
  • addr: 1.12.12.12/dns-query
    trusted: true
  • addr: 223.5.5.5/dns-query
    trusted: true
  • tag: forward_overseas
    type: fast_forward
    args:
    upstream:
  • addr: doh.opendns.com/dns-query
    trusted: true
  • addr: dns.quad9.net/dns-query
    trusted: true
  • addr: dns.google/dns-query
    trusted: true
    enable_pipeline: true
    enable_http3: true
  • addr: cloudflare-dns.com/dns-query
    trusted: true
    enable_pipeline: true
    enable_http3: true
  • tag: response_has_china_ip
    type: response_matcher
    args:
    ip:
  • 'provider:geoip.dat:cn'
  • tag: main_sequence
    type: sequence
    args:
    exec:
    # - _no_ecs # 删除请求和应答中的 ECS
  • mem_cache # 运行缓存插件

# - if: query_is_ad_domain
# exec:
# - _new_nxdomain_response # 生成 NXDOMAIN 应答
# - _return

  • _prefer_ipv4 # 优先使用 ipv4

# 域名用 IP 分流。原理类似 ChinaDNS ,但更稳定。

  • primary:
  • forward_china # 获取 china 服务器应答。
  • if: "! response_has_china_ip" # 返回 非国内 ip 则丢弃
    exec:
  • _drop_response
    secondary:
  • forward_overseas # 获取 overseas 服务器应答。

fast_fallback: 1000 # 快速 fallback 触发阈值。单位: 毫秒。默认: 0 ,禁用快速 fallback 。可省略。
always_standby: true # 快速 fallback secondary 始终待命。可省略。

在递归服务器上开启 dnssec ,导入跟域名公钥并校验就行了。当然这样如果遇到了被污染的情况返回的是报错而不是没污染的结果。

我用的是 dnscrypt

adguardhome 配合 DoT/DoQ/DoH 这些基于 tls 的

这个是要付费吗?

DNS over http

#13 不需要,开源软件

看你的用途,如果只是科学的话,我用的是 Clash/V2Ray 都能通过规则或 fake-ip 解决

httpdns 不行吗?腾讯是这么干的

你们是认真的吗? dns 分流的重点在于规则,不管是 gfwlist 还是 geoip ,白名单黑名单,都是各有优点缺点,技术方案只要没 bug ,都是没问题的。另外主流的科学方案,都自带了 dns 分流和防污染,我试过 ssrp 和 passwall ,默认的就好用,没什么需要调整的,你们折腾啥?特别是用 mosdns 和科学软件配合的,除非你们能把科学软件自带的 dns 方案废掉,要不然肯定是以科学软件的 dns 分流为准的,mosdns 只是分了个寂寞,没什么用。

doh

我弄好了,谢谢