> For the complete documentation index, see [llms.txt](https://docs.ipcheck.ing/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ipcheck.ing/knowledge-base/zh/diagnose/is-my-dns-hijacked.md).

# 我的 DNS 被劫持或污染了吗？

每次你打开一个网站时，某个系统都会把域名解析成地址。如果这个答案在传输途中被改掉了，你最终会到达一个你没想去的地方——而浏览器不会显示任何明显迹象。

{% hint style="success" %}
**简短答案。** 使用以下方式通过多个独立解析器查询同一个域名： **高级工具 → DNS 解析**。众所周知且稳定的域名应当从所有解析器得到相同答案。当你的 ISP 解析器返回的结果与所有公共解析器都不同，这就是危险信号。
{% endhint %}

## “劫持”和“污染”是什么意思

这两个术语从不同来源描述的是同一种结果——域名查询得到错误答案。

* **劫持** 通常指你的解析器、路由器或设备上的恶意软件故意返回它自己选择的地址。常见用途是广告、搜索重定向或强制门户。
* **污染** （或投毒）通常指网络路径上的某些东西在真实答案到达之前注入伪造回复。这通常是国家级过滤的工作方式。

无需区分它们也能检测出来。测试方法相同： **比较独立来源。**

背景： [DNS 如何工作](/knowledge-base/zh/concepts/how-dns-works.md)

## 值得调查的症状

| 你注意到的现象                     | 可疑程度                     |
| --------------------------- | ------------------------ |
| 拼错的域名会跳转到由你的 ISP 运营的搜索页或广告页 | 轻微——这是常见的 ISP 行为，但仍然属于篡改 |
| 你明明认识的网站却加载了一个完全不相关、满是广告的页面 | 高                        |
| 平时正常的网站出现证书警告               | 高——你访问到的地址并不是真实服务器       |
| 某个域名解析到了一个奇怪的地址，而其他一切都正常    | 高                        |
| 网站通过 VPN 能访问，但不使用 VPN 就不行   | 中等——可能是 DNS，也可能是阻断       |
| 广告被注入到原本没有广告的页面中            | 高                        |

{% hint style="warning" %}
**切勿无视证书警告并继续访问你在意的网站。** 这种警告是唯一能在 DNS 篡改下仍然保留下来的信号。它意味着响应你的服务器无法证明自己是真实服务器。
{% endhint %}

## 对比测试

{% stepper %}
{% step %}

#### 选择一个稳定的域名

选择一个大而普通、地址不会每隔几分钟变化的域名。大型、知名的网站最合适。先不要用高度依赖 CDN 分发的服务来测试——它们确实会根据不同解析器返回不同地址，这会让结果变得混乱。
{% endstep %}

{% step %}

#### 通过 DNS 解析运行它

打开 **高级工具 → DNS 解析**，输入域名，选择记录类型 **一个**，然后执行。

MyIP 会向全球一组知名服务提供商发起查询——有些通过普通 DNS，有些通过加密的 DoH，并在结果表中用锁图标标记——然后并排显示每个答案。
{% endstep %}

{% step %}

#### 看模式，不看单独行

| 模式                                                      | 结论                |
| ------------------------------------------------------- | ----------------- |
| 所有人都返回相同地址                                              | 正常                |
| 答案略有不同，但都在同一提供商的范围内                                     | 这是正常的 CDN 行为，不是篡改 |
| 大多数解析器一致； **某个地区的解析器返回了别的结果**                           | 该地区网络路径上的干扰       |
| 某个解析器返回了一个私有地址（`10.x`, `192.168.x`, `127.0.0.1`）给一个公共网站 | 几乎可以肯定是劫持         |
| 某个解析器返回了一个属于完全无关国家或网络的地址                                | 强烈的篡改迹象           |

{% hint style="info" %}
该工具刻意包含了一些位于中国的解析器，它们对某些域名的回答通常会受到过滤影响。对于被屏蔽的域名，看到它们与世界其他地区不一致是预料之中的，不是故障——这正是对比在发挥作用。
{% endhint %}
{% endstep %}

{% step %}

#### 与你自己的解析器进行比较

该工具查询的是公共服务提供商，而不是你设备实际使用的解析器。若要把你的解析器也纳入比较，请检查你的机器对同一域名返回什么：

{% tabs %}
{% tab title="macOS / Linux" %}

```bash
dig example.com +short
```

{% endtab %}

{% tab title="Windows" %}

```
nslookup example.com
```

{% endtab %}
{% endtabs %}

如果你自己的答案与公共共识一致，说明你的解析器表现正常。如果它是唯一不同的，那就是问题来源。
{% endstep %}
{% endstepper %}

## 用加密 DNS 进行确认

普通 DNS 传输既不加密也不认证，这正是篡改容易发生的原因。加密 DNS——DNS over HTTPS（DoH）或 DNS over TLS（DoT）——会把查询封装起来，因此路径上的任何东西都无法读取或重写它。

这会给你一个干净的第二意见：

1. 在浏览器中开启加密 DNS。大多数现代浏览器都有“安全 DNS”或“DNS over HTTPS”设置。
2. 重新加载之前表现异常的网站。
3. 如果现在能正常工作，说明答案在你和解析器之间的某个环节被改了。

在 MyIP 的 DNS Resolution 结果中，标记为 **DoH** 的行已经通过加密通道得到响应。当 DoH 行彼此一致而普通 DNS 行不一致时，你就有了证据。

在官方网站上， **高级工具 → 深度 DNS 泄漏测试** 它更进一步：会捕获实际为你提供服务的解析器，并显示是否请求并验证了 DNSSEC 签名。若解析器要求跳过验证，就值得再仔细检查。该工具仅在 ipcheck.ing 上可用。

## 切换解析器能解决什么、不能解决什么

切换到公共解析器通常是第一步。要清楚它能带来什么。

| 它能解决                            | 它不能解决                                       |
| ------------------------------- | ------------------------------------------- |
| 行为异常或注入广告的 ISP 解析器              | 网络路径上注入的伪造答案——无论你询问的是哪个解析器，这些答案都会到达，除非查询已加密 |
| 路由器悄悄覆盖你的 DNS 设置——如果你改为在设备上直接设置 | 发生在 DNS 之后、在 IP 或 TLS 层面的阻断                 |
| 被你的 ISP 缓存的错误答案                 | 你自己机器上的恶意软件，它可以在本地覆盖 DNS                    |
| 拼错域名后被重定向到广告页面                  | 确实宕机的网站                                     |

{% hint style="info" %}
如果向公共解析器发送普通 DNS 仍然返回错误答案，请使用 **加密** DNS。加密才能抵御路径中的注入攻击；仅仅更换你查询的解析器本身还不够。
{% endhint %}

<details>

<summary>我如何检查是不是路由器的问题？</summary>

在一台设备上直接设置公共解析器，绕过路由器分配的设置，然后重复查询。如果这台设备现在正确，而其他设备仍然错误，那么问题源头就是路由器。有些路由器会不管客户端设置如何都拦截所有 DNS 流量；这种情况下只有加密 DNS 能绕过去。

</details>

<details>

<summary>大型服务返回不同答案——这真的没问题吗？</summary>

通常是的。内容分发网络会根据提问者所在位置返回最近的边缘服务器，因此法兰克福的解析器和新加坡的解析器合法地返回不同地址。关键在于这些地址是否仍属于同一运营方。可以用搜索按钮查询它们，或者用 [Whois 搜索](/knowledge-base/zh/lookup-privacy/whois-search.md)，并检查 ASN。

</details>

<details>

<summary>会不会是我电脑上的恶意软件在这么做？</summary>

会。本地恶意软件可以更改你的 DNS 设置、编辑 hosts 文件，或者安装一个根证书，从而隐藏原本会出现的证书警告。如果篡改会随着你的笔记本切换到不同网络而持续存在，就应怀疑是这台机器而不是网络，并运行一次可靠的恶意软件扫描。 [安全检查清单](/knowledge-base/zh/lookup-privacy/security-checklist.md) 覆盖更广泛的基础安全卫生。

</details>

## 还是卡住了？

* [DNS 解析器](/knowledge-base/zh/lookup-privacy/dns-resolver.md) —— 工具全貌
* [无法打开网站？](/knowledge-base/zh/diagnose/cant-open-a-website.md) —— 更大的判断树
* [DNS 泄漏测试](/knowledge-base/zh/connection-tools/dns-leak-test.md) —— 你实际在使用哪些解析器


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ipcheck.ing/knowledge-base/zh/diagnose/is-my-dns-hijacked.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
