ping www.baidu.com PING www.baidu.com (192.168.0.1): 56 data bytes 64 bytes from 192.168.0.1: seq=0 ttl=64 time=1.678 ms ...
**核心異常**:www.baidu.com 解析為路由器 LAN 口 IP 192.168.0.1,而非真實公網 IP。且 ping 通、TTL=64 (本地回應特徵)。
**結論**:路由器**攔截所有 DNS 查詢**,強制解析為自身 IP,並由路由器內部 Web 服務回應 ICMP/HTTP 請求 (通常導向「離線提示頁」或「認證門户」)。
A 192.168.0.1 (或配置的虛擬 IP)。| 行為 | 正常路由器 (WAN 斷開) | 騰達/部分家用路由器 |
|---|---|---|
| DNS 查詢 | 轉發至上游 DNS (超時/失敗) → 客戶端收到 SERVFAIL/Timeout | 攔截 → 偽造 A 記錄指向路由器 IP |
| HTTP 存取 | 連線超時/重置 | 導向路由器內部引導頁 |
| 用戶體驗 | 瀏覽器顯示「無法連線伺服器」 | 瀏覽器顯示路由器品牌頁面 (廣告/設定引導) |
| 設計初衷 | 誠實反映網路狀態 | 「友善提示」/ 強制認證 / 廣告曝光 |
tcpdump -i eth0 -n port 53 觀察 DNS 請求是否到達路由器、回應內容。192.168.0.1) → 尋找「捕獲門戶」、「強制 DNS」、「離線頁面」、「廣告過濾」等選項並關閉。| 方案 | 適用場景 | 操作步驟 | 優缺點 |
|---|---|---|---|
| 關閉路由器捕獲門戶功能 | 管理員權限、路由器支援 | 管理介面 → 高級設置 → 關閉「捕獲門戶/強制 DNS/離線頁面」 | 根治、無副作用 |
| 使用 DoH/DoT 加密 DNS | 路由器無法關閉攔截、客戶端可控 | 瀏覽器/系統設定 DNS over HTTPS (DoH) / DNS over TLS (DoT),繞過 53 埠攔截 | 客戶端生效、需支援軟體 |
| 修改 hosts 檔案 | 臨時測試特定域名 | C:\Windows\System32\drivers\etc\hosts 加入 真實IP www.baidu.com | 僅限已知域名、維護成本高 |
| 刷機第三方固件 | 硬體支援 (OpenWrt/dd-wrt/Asuswrt-Merlin) | 刷入開源固件,完全掌控網路行為 | 風險高、需技術能力、可能失去保固 |
| 更換路由器 | 無法接受廠商行為 | 選購支援 OpenWrt/原生 Linux 的路由器 (如 Xiaomi/Redmi AX 系列、GL.iNet、NanoPi R4S 自組) | 徹底、成本高 |
# 1. 使用 systemd-resolved 強制 DoH (Ubuntu 20.04+)
# /etc/systemd/resolved.conf
[Resolve]
DNS=1.1.1.1
DNSOverTLS=yes
FallbackDNS=8.8.8.8
# systemctl restart systemd-resolved
# 2. 使用 dnscrypt-proxy (跨平台)
# 安裝 → 設定 listen_addresses = ['127.0.0.1:53'] → 系統 DNS 指向 127.0.0.1
# 3. 臨時測試指定 DNS 伺服器
dig @1.1.1.1 www.baidu.com # 繞過路由器 DNS
nslookup www.baidu.com 8.8.8.8
騰達路由器離線時將所有域名解析至自身 IP,是**廠商預設啟用「捕獲門戶/強制 DNS 劫持」功能**導致。此行為違反網路中立性與 DNS 標準,干擾網路診斷、洩露隱私 (強制導流廣告頁)。**根治方法:登入路由器管理介面關閉相關功能**,或使用 **DoH/DoT 加密 DNS 繞過 53 埠攔截**,或刷寫開源固件/更換尊重用戶控制權的路由器。