-
Notifications
You must be signed in to change notification settings - Fork 435
DNS方案
zfl9 edited this page May 29, 2023
·
21 revisions
分享一些 DNS 玩法,比如给内置 DNS 方案套上 DoH/DoT,以及自定义 DNS 方案的例子。
欢迎大家在 Discussions 页面分享自己的 DNS 方案,我会不定时的将它们整理到 wiki 页面。
以 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
}
来自: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