Skip to content

DNS方案

zfl9 edited this page May 29, 2023 · 21 revisions

分享一些 DNS 玩法,比如给内置 DNS 方案套上 DoH/DoT,以及自定义 DNS 方案的例子。

欢迎大家在 Discussions 页面分享自己的 DNS 方案,我会不定时的将它们整理到 wiki 页面。

给内置 DNS 套上 DoH/DoT

https://github.com/AdguardTeam/dnsproxy 为例,给 direct 和 remote DNS 套上 DoH:

dns_direct='127.0.0.1#65001' # 指向 dnsproxy
dns_direct_white='223.5.5.5 223.6.6.6' # 加入白名单

dns_remote='127.0.0.1#65002' # 指向 dnsproxy
dns_remote_black='8.8.8.8 8.8.4.4' # 加入黑名单

# 如果给 remote DNS 套了 DoH/DoT,则不必启用 dns2tcp
dns2tcp_enable='false'

pre_start() {
    # 设置所属 group、setgid 权限位 (只需执行一次)
    set_dns_group dnsproxy

    # 启动 dnsproxy 进程,用于 direct DNS
    (dnsproxy -l 127.0.0.1 -p 65001 \
        -b 223.5.5.5:53 \
        -u https://dns.alidns.com/dns-query \
        </dev/null &>>/var/log/dnsproxy.log &)

    # 启动 dnsproxy 进程,用于 remote DNS
    (dnsproxy -l 127.0.0.1 -p 65002 \
        -b 223.5.5.5:53 \
        -u https://dns.google/dns-query \
        </dev/null &>>/var/log/dnsproxy.log &)
}

post_stop() {
    # 关闭 dnsproxy
    kill -9 $(pidof dnsproxy) &>/dev/null
}

extra_status() {
    _status "doh/direct" udp_port_is_exists 65001
    _status "doh/remote" udp_port_is_exists 65002
}

在内置 DNS 前面套上 AdGuardHome

来自:https://github.com/zfl9/ss-tproxy/discussions/218

使用 AdGuardHome 可以方便的查看 dns 日志、block 不想要的域名、以及广告过滤。

AdGuardHome 的配置和用法就不介绍了,这里只说下如何接入 ss-tproxy,挂在 dnsmasq 前面:

# 让 AdGuardHome 监听 53 端口
dns_mainport='53'

# dnsmasq 作为 AdGuardHome 的上游,监听非 53 端口
dnsmasq_bind_port='54'

pre_start() {
    # 设置所属 group、setgid 权限位 (只需执行一次)
    set_dns_group /path/to/AdGuardHome

    # 启动 AdGuardHome,以 systemd 为例
    systemctl start AdGuardHome
}

post_stop() {
    # 停止 AdGuardHome,以 systemd 为例
    systemctl stop AdGuardHome
}

// TODO

Clone this wiki locally