先弄清楚:DNS 在哪里被解析?

把 DNS 想成电话簿,浏览器需要知道联系人号码才能拨通。要改 DNS,先弄清“谁拿着电话簿”——是操作系统、浏览器自带的解析器,还是远端代理/ VPN。不同的“拿法”决定你要改的地方和方法。
- 系统解析(操作系统负责):大多数情况下,浏览器把域名请求交给操作系统,系统再发给配置好的 DNS 服务器。
- 浏览器内置解析(如 DoH/DoT):一些浏览器可以直接通过 HTTPS/TLS 向指定的 DoH/DoT 服务器查询,绕开系统 DNS。
- 代理/ SOCKS5 远程解析:如果使用 SOCKS5,并且“远程解析”被启用,域名解析会在代理端执行,客户端不直接查询公共 DNS。
改 DNS 的总体思路(四步法)
- 1) 确认当前解析路径(浏览器→系统→网络)并备份设置。
- 2) 在比特浏览器中找到代理/网络的高级设置,选择合适的 DNS 模式(系统/自定义/DoH)。
- 3) 填写 DNS IP 或 DoH 模板,保存并重启浏览器。
- 4) 清缓存并验证(nslookup/dig/在线检测),若有代理或 VPN,检查是否出现 DNS 泄露或远程解析冲突。
比特浏览器里常见的改法(GUI 操作)
不同版本 UI 会有点差别,但大体相似。下面按步骤走一遍,按着找就行了。
步骤(通用 GUI 流程)
- 打开比特浏览器,点击右上角设置(齿轮或三点)→ “设置”。
- 进入“网络与隐私”或“代理/连接”栏目,找到“高级”或“代理高级设置”。
- 找到 DNS 相关选项:通常会有“使用系统 DNS”“自定义 DNS”或“启用 DNS over HTTPS(DoH)”。
- 选择“自定义 DNS”时,填写首选和备用 DNS 的 IP(例如 1.1.1.1、8.8.8.8)。
- 选择“启用 DoH/DoT”时,填写 DoH 模板(例如 https://dns.google/dns-query 或 https://mozilla.cloudflare-dns.com/dns-query)或从下拉列表选择已知服务。
- 保存设置并重启浏览器。
如果看到“通过代理解析 DNS”或“远程解析”之类的选项
- 想让 DNS 在代理端解析(避免客户端暴露真实 IP 的请求),就勾选“远程解析”或“代理解析 DNS”。
- 如果代理是 HTTP(s) 代理,大多数情况下客户端仍会进行 DNS 解析;要实现远端解析需用 SOCKS5 并保证代理端支持远程解析。
命令行与启动参数(适用于基于 Chromium 的情况)
如果比特浏览器支持启动参数(像 Chromium 那样),可以通过命令行更灵活地控制 DNS,尤其适合自动化或测试。
- 启用 DoH(示例):
--enable-features=DnsOverHttps --dns-over-https-templates="https://dns.google/dns-query"
- 指定主机解析规则(仅用于测试或特殊映射):
--host-resolver-rules="MAP example.com 1.2.3.4, MAP * ~NOTFOUND"
- 通过命令行设置代理(示例):
--proxy-server="socks5://127.0.0.1:1080"
常见 DNS 服务与示例配置
| 服务 | IPv4 | DoH 模板(示例) | 备注 |
| Cloudflare | 1.1.1.1 / 1.0.0.1 | https://mozilla.cloudflare-dns.com/dns-query 或 https://cloudflare-dns.com/dns-query | 响应快,隐私友好 |
| 8.8.8.8 / 8.8.4.4 | https://dns.google/dns-query | 全球覆盖广 | |
| Quad9 | 9.9.9.9 / 149.112.112.112 | https://dns.quad9.net/dns-query | 安全防护(恶意域名屏蔽) |
| 阿里公共 | 223.5.5.5 / 223.6.6.6 | 无通用 DoH 模板示例(以官方为准) | 国内解析速度好 |
按场景详细步骤与命令(实战)
场景 A:只是想把浏览器改为自定义 DNS(图形界面)
- 设置 → 网络/代理 → 高级 DNS → 选择“自定义” → 填入首选 DNS(如 1.1.1.1)和备用(如 8.8.8.8)→ 保存 → 重启浏览器。
- 完成后,用命令或在线工具验证:在终端运行
nslookup example.com 1.1.1.1,看返回地址是否来自你指定的 DNS。
场景 B:启用 DoH,确保查询经加密通道
- 设置里选择“启用 DNS over HTTPS”→ 填入 DoH 模板(例如 https://dns.google/dns-query)→ 保存并重启。
- 验证方法:使用浏览器开发者工具或运行 dig(若支持 DoH 测试工具)来确认实际查询经 HTTPS 发出,或使用“DNS 泄露测试”类网站查看解析源。
场景 C:同时使用 SOCKS5 代理并希望由代理端解析 DNS
- 在代理设置里选择 SOCKS5 并勾选“通过代理解析 DNS”(或“远程解析”)。
- 如果没有该选项,浏览器可能会在本地解析域名,导致 DNS 泄露;可改用系统级 SOCKS5 工具(如 proxychains)或在代理端配置远程解析。
场景 D:系统层面强制更换 DNS(Windows、macOS、Linux)
- Windows:控制面板 → 网络与共享中心 → 更改适配器设置 → 右键当前网络→ 属性→ Internet 协议版本 4(TCP/IPv4) → 使用下面的 DNS 服务器地址 → 填写 → 确定。清缓存:
ipconfig /flushdns。 - macOS:系统偏好设置 → 网络 → 选择网络接口 → 高级 → DNS → 添加 DNS 服务器 → 确定。清缓存:
sudo killall -HUP mDNSResponder。 - Linux(systemd-resolved):编辑 /etc/systemd/resolved.conf 或使用 NetworkManager,之后重启服务并清缓存:
sudo systemctl restart systemd-resolved。
如何验证修改是否生效(检测方法)
- 命令行测试:
nslookup example.com 1.1.1.1—— 指定 DNS 看结果是否来自该服务器。dig +short example.com @8.8.8.8—— 使用 dig 指定解析器。
- 浏览器内部检测:打开开发者工具的网络面板,观察 DNS 解析是否通过 DoH 的请求(某些浏览器可以看到 DoH 请求)。
- 在线检测:使用“DNS 泄露测试”类网站查看解析器 IP 列表(注意只写站点名字或工具名称即可自行访问)。
常见问题与排查思路
- 修改后没生效:先重启浏览器 → 检查是否有扩展/安全软件覆盖 DNS → 确认系统 DNS 没被 VPN 或企业策略强制覆盖。
- 仍然出现 DNS 泄露:若使用代理,要确认是否启用了“代理端远程解析”;若使用 VPN,检查 VPN 是否把 DNS 指向 VPN 提供商。
- 无法访问某些站点:可能是 DNS 缓存或新的解析结果导致,尝试清空浏览器缓存与 DNS 缓存,或换回系统 DNS 试验。
- 权限或安全软件拦截:部分杀软会拦截 DoH/DoT,检查设置或临时关闭以排查。
- IPv6 与 IPv4 混用问题:如果你只配置了 IPv4 DNS,但系统优先使用 IPv6,可能导致解析路径与预期不同。可以同时设置 IPv6 DNS(如 2606:4700:4700::1111)。
一些实用小技巧(看起来很实用,我常用)
- 修改前拍个设置截图或记下原来值,方便回滚。
- 先在浏览器里开启 DoH,再在系统层面改 DNS,逐步排查易定位故障源。
- 如果你想彻底防止本地 53 端口向外发包,可以在防火墙里屏蔽向公网 53/UDP 的流量(谨慎操作,可能影响系统其它功能)。
- 测试时用多个域名(如 google.com、baidu.com)以区别缓存与解析问题。
最后,常用命令快速回顾
- Windows 清 DNS:
ipconfig /flushdns - macOS 清 DNS:
sudo killall -HUP mDNSResponder - Linux (systemd) 重启解析:
sudo systemctl restart systemd-resolved - nslookup 指定解析器:
nslookup example.com 1.1.1.1 - dig 指定解析器:
dig example.com @8.8.8.8 +short
好了,这就是我按常见场景和心得把比特浏览器代理高级设置里改 DNS 的全流程写出来的版本。你按上面的步骤一步步来,遇到具体问题(比如某一步没有对应选项或某个测试结果异常),把出问题的界面和你用的系统/浏览器版本告诉我,我们再细看哪块卡住了。