Featured image of post 解決 AdGuard Home 導致 Google Maps 連結無法開啟與不支援的連結問題

解決 AdGuard Home 導致 Google Maps 連結無法開啟與不支援的連結問題

記錄並分析使用自架 AdGuard Home 後,點擊 Google Maps 分享連結出現不支援或 Firebase 錯誤的根本原因與詳細解決步驟。

AD-Home 修改.webp

前言

使用自架的 AdGuard Home DNS 時一直有出現無法使用 google map 的短連結,點開後無法顯示地點的問題 (例如 maps.app.goo.glhttps://maps.app.goo.gl/YGhkKLZZWLPADNrD7?g_st=il) ,一開始不知道的時候一直以為是 google 壞了,直到問了其他人說可以正常顯示之後才開始除錯,最後發現只要關閉 AdGuard Home 就能正常顯示!沒想到原來是 AdGuard Home 的鍋


問題描述與現象

當環境中啟用 AdGuard 防護時,點擊他人分享的地標網址,會出現以下兩種典型錯誤:

  1. iOS 系統提示: 彈出「不支援的連結」,頁面完全停滯。
  2. 瀏覽器畫面提示: 網頁跳轉至 Firebase 服務並顯示 「Dynamic Link Not Found」 錯誤,並伴隨 Request (...) cannot be redirected again 的提示。

當暫時關閉手機的 AdGuard 或中斷阻擋時,連結卻能立刻恢復正常,直接喚醒 Google Maps App。


根本原因分析

此問題並非單一因素引起,而是 手機本地端攔截機制遠端 DNS 廣告過濾清單 共同產生的連鎖反應:

1. 廣告過濾清單「誤殺」基礎跳轉網域

在自架 AdGuard Home 的查詢記錄中,可以觀察到手機在嘗試解析地圖連結時,以下兩個關鍵網域遭到過濾清單攔截:

  • firebasedynamiclinks.googleapis.com (Firebase 動態連結服務)
  • clientservices.googleapis.com (Google 用戶端服務)

Google Maps 的短網址極度依賴 Firebase 機制在背景進行深層跳轉 (Deep Linking)。當這些網域在 DNS 層級被直接封鎖回傳空值時,手機便無法解析出真正的地圖目標網址。

2. 本地端網址追蹤保護機制竄改參數

iPhone 本地端的 AdGuard App 若開啟了「網址追蹤保護」,會自動將網址後方帶有的 ?g_st=il (Google 用於標記 iOS 分享來源的參數) 等追蹤代碼強制修剪。一旦網址結構在跳轉前被變更,iOS 的「通用連結 (Universal Links)」機制就會失效,無法直接喚醒 Google Maps App,進而將流量丟給瀏覽器,最終撞上已被 DNS 阻擋的 Firebase 死胡同。


詳細解決步驟

調整自架的 AdGuard Home 後台將被誤殺的 Google 基礎服務放行。

  1. 登入 AdGuard Home 網頁管理後台

  2. 進入上方選單的 「過濾器」 (Filters) -> 「自訂過濾規則」 (Custom filtering rules)

  3. 在文字輸入框中,移至最下方並加入以下放行規則 (每行一條,請勿漏掉 @@||^ 符號):

    @@||firebasedynamiclinks.googleapis.com^
    @@||clientservices.googleapis.com^
    
  4. 點選 「套用」 (Apply) 儲存設定。

改完之後點選 map 的短連結就能正常顯示地點了


常見問答 (FAQ)

Q:將這些 Google 網域設為白名單後,手機會開始出現廣告嗎?

不會。 本次放行的 firebasedynamiclinks.googleapis.comclientservices.googleapis.com 屬於 Google 的後端功能性基礎設施與跳轉轉發服務,而非廣告聯播網的素材伺服器 (Ad Servers)。真正的廣告域名 (如 googleads.g.doubleclick.net 等) 依然會被你的 AdGuard Home 黑名單牢牢擋下。這種精準放行只會修復系統功能,不會導致廣告氾濫。