“srr” 这个缩写比较模糊,没有广泛认可的唯一含义,在讨论 DNS 的上下文中,最有可能指的是 Shadowrocket 的规则文件 (.srr
文件),Shadowrocket 是一款在 iOS 平台上流行的网络工具,主要用于代理、规则路由和网络调试。
我们假设 “srr 怎么用 dns” 是指:如何在 Shadowrocket 中使用或配置 DNS 设置,特别是在导入或使用.srr
规则文件时。
以下是详细的解释和步骤:
核心概念
1、.srr
文件是什么?
* 它是 Shadowrocket 的规则配置文件。
它主要包含
代理规则 指定哪些域名/IP走代理,哪些走直连(DIRECT),哪些拒绝连接(REJECT)。
策略组 组织不同的代理节点,实现负载均衡、故障转移等。
节点列表 包含一个或多个代理服务器(如 Shadowsocks, Vmess, Trojan 等)的配置信息。
它通常不直接包含完整的 DNS 服务器配置。 规则本身(如DOMAIN-SUFFIX, google.com, Proxy
)会触发域名解析,但解析行为依赖于 Shadowrocket 全局或连接本身的 DNS 设置。
2、DNS 在 Shadowrocket 中的作用:
* 当遇到域名请求(比如访问www.example.com
)时,Shadowrocket 需要将这个域名转换成 IP 地址才能进行连接。
DNS 设置决定了
使用哪个 DNS 服务器进行查询? (如8.8.8.8
,1.1.1.1
,223.5.5.5
, 或加密 DNS 如https://dns.google/dns-query
)。
如何防止 DNS 污染? (通常通过使用加密 DNS 或强制通过代理发送 DNS 查询来实现)。
如何处理规则匹配? (规则基于域名匹配,因此需要先解析域名)。
如何在 Shadowrocket 中结合.srr
规则使用 DNS
情况 1:导入.srr
规则文件后,设置全局 DNS
1、导入.srr
规则:
* 将.srr
文件通过 AirDrop、文件 App、Safari 下载等方式获取到你的 iOS 设备上。
* 在 Shadowrocket 主界面,点击右上角的+ 按钮。
* 选择导入配置
或从文件导入
。
* 找到并选择你的.srr
文件进行导入,导入成功后,规则和节点通常会出现在 Shadowrocket 中。
2、配置全局 DNS 设置:
* 进入 Shadowrocket 的设置
(右下角的齿轮图标)。
* 找到并进入代理
或DNS
设置部分 (具体名称可能因版本略有不同)。
关键设置
DNS 映射 可以手动指定特定域名的 IP (通常不需要手动配置)。
DNS 服务器 这是最重要的设置,你需要在这里添加你想要使用的 DNS 服务器地址,推荐使用可靠且支持加密的公共 DNS 或你自己信任的 DNS。
常用公共 DNS 示例 (支持 DoH/DoT):
https://dns.google/dns-query
(Google DNS over HTTPS)
tls://1.1.1.1
(Cloudflare DNS over TLS)
https://doh.opendns.com/dns-query
(OpenDNS over HTTPS)
tls://dot.pub
(AliDNS over TLS)
tls://dns.alidns.com
(AliDNS over TLS)
* 你也可以使用传统的 UDP 地址 (如8.8.8.8
,1.1.1.1
,223.5.5.5
),但强烈推荐使用加密 DNS (DoH/DoT) 以提高安全性和防止污染。
DNS 覆写 开启此选项后,Shadowrocket 会强制接管系统的 DNS 请求,将其发送到你配置的 DNS 服务器。通常建议开启,以确保所有应用的 DNS 查询都按 Shadowrocket 的规则走。
本地 DNS 映射 类似/etc/hosts
文件,可以为特定域名指定本地 IP (较少用)。
高级设置 (谨慎操作)
强制使用远程 DNS 如果开启,Shadowrocket 会尝试通过你当前激活的代理连接去解析所有域名,这有助于防止 DNS 泄露(尤其是使用远程解析时),但可能会略微增加延迟,是否开启取决于你的代理配置和需求。
跳过代理的 DNS 查询 如果开启,对于匹配了DIRECT
(直连) 规则的域名,其 DNS 查询会使用系统 DNS 或你配置的 DNS 而不走代理,关闭则所有 DNS 查询都按你配置的 DNS 走。通常建议保持默认或关闭。
情况 2:规则文件.srr
中可能包含 DNS 相关的规则 (较少见)
有些复杂的规则集可能会包含形如DNS, server, type
的规则,用于更精细地控制特定域名使用特定的 DNS 服务器解析,但这需要规则编写者明确编写,并且规则文件本身需要支持这种语法(Shadowrocket 原生规则不一定支持所有高级 DNS 规则)。
更常见的是通过host
或ip-cidr
规则来绕过特定 DNS/IP。 例如
IP-CIDR, 8.8.8.8/32, DIRECT
(强制对8.8.8.8
的查询走直连,避免 DNS 查询自身被代理影响)
DOMAIN, dns.google, Proxy
(强制dns.google
的查询走代理,确保能访问 DoH 服务)
即使规则文件里有这些规则,它们也只是路由逻辑,最终执行 DNS 查询时,还是会用到你在 Shadowrocket 全局设置里配置的 DNS 服务器地址。
总结与最佳实践
1、导入.srr
文件: 获取并导入你的规则配置文件。
2、配置全局 DNS (关键步骤):
* 进入设置
->代理
/DNS
。
添加可靠的、支持加密的 DNS 服务器地址 (如https://dns.google/dns-query
或tls://1.1.1.1
)。
开启DNS 覆写
(确保接管系统 DNS)。
根据需求谨慎设置强制使用远程 DNS
和跳过代理的 DNS 查询
(理解其含义后再调整,保持默认通常是安全的起点)。
3、理解规则:.srr
文件中的规则决定了流量的路由策略(走代理、直连、拒绝),但 DNS 解析本身依赖于步骤 2 的全局配置,规则可能会包含绕过特定 DNS 服务器或强制某些域名走代理的条目。
4、连接测试: 配置完成后,连接到 Shadowrocket,使用浏览器访问ipleak.net
或dnsleaktest.com
等网站测试DNS 泄露,确保显示的 DNS 服务器是你配置的加密 DNS 地址,而不是你的本地 ISP DNS,如果出现泄露,检查你的 DNS 设置(尤其是强制使用远程 DNS
和代理节点本身的配置)和规则。
.srr
文件主要管“流量怎么走”,而“域名怎么查”需要在 Shadowrocket 的全局设置里单独配置 DNS 服务器,导入规则后,务必去设置里配好 DNS 才能安全、正常地工作。 优先使用加密 DNS (DoH/DoT) 并开启 DNS 覆写是最重要的安全措施。
“srr” 在你语境中指代其他东西(如某个特定服务或协议),请提供更多上下文信息以便更准确地解答。
文章摘自:https://idc.huochengrm.cn/dns/13085.html
评论
邓新蕾
回复通过DNS设置,可以轻松配置srr的网络服务及域名解析。