一名在 Linux 上使用 Chrome 的使用者,撞上了一道和瀏覽器新舊完全無關的牆。"I'm getting the message that my browser is unsupported for Twitch, even though I'm using the latest version of chrome"。他在 r/Twitch 發文 這樣寫道。他的 User Agent 裡的平台標記,就足以讓網站把他拒於門外。
網站讀到的那串字,User Agent(有時也叫瀏覽器代理),就是瀏覽器遞給每個你造訪網站的身分證。煩人的不是查不到,查它只要十秒鐘。煩人的是這串字看起來像亂碼,網站卻默默根據它做決定。
這篇文章會講清楚:這串字到底在說什麼、在任何瀏覽器裡最快的查法,以及為什麼你幾乎永遠不需要改它。過程中我們會用 Tabbit 瀏覽器實際查一次,再讓 AI 逐段解釋給你聽。
核心重點
你的 User Agent 是一串純文字,會向每個你造訪的網站標識你的瀏覽器、版本、作業系統和裝置類型。
最快的查法:打開 whatmyuseragent.com 或 DNSChecker 的 User Agent 頁面這類偵測網站。內建方法:在開發者工具主控台輸入
navigator.userAgent。Chrome 的字串裡有「Safari」和「KHTML, like Gecko」是為了歷史相容性,不是因為它是 Safari。
現代瀏覽器凍結了字串的部分內容(User-Agent reduction)來限制指紋追蹤;需要更多資訊的網站會改用 Client Hints。
網站確實會根據 User Agent 封鎖或降級請求,所以用擴充功能改字串往往是在搞壞頁面,而不是幫上忙。
如何快速查詢你的 User Agent
| 方法 | 步驟 | 適合誰 | 限制 |
|---|---|---|---|
| 偵測網站 | 打開 whatmyuseragent.com 或 DNSChecker 的 User Agent 工具 這類頁面,它會讀取你的請求標頭並顯示字串 | 想一鍵看到答案的人 | 需要網路連線;網站會看到你的造訪 |
| 開發者主控台 | 在 Windows/Linux 按 F12,在 macOS 按 Cmd+Option+I,打開主控台,輸入 navigator.userAgent,按下 Enter | 離線使用;需要複製精確字串 | 要用到某些人從沒用過的快速鍵 |
| Network 面板 | 打開開發者工具,切到 Network 分頁,重新整理頁面,點任一請求,檢視它的請求標頭 | 開發者想確認瀏覽器實際送出的內容 | 單純查個字串的話太小題大作 |
如果你比較喜歡影片教學,YouTube 上有一支不錯的短片叫「How to find User Agent Information in your Browser」。
你的 User Agent 告訴網站什麼
在桌機版 Chrome 上用主控台方法,你會看到類似這樣的字串,MDN 的文件把它記為目前 Chrome 桌機版的格式:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36從左到右讀,它就不再是亂碼:
Mozilla/5.0:相容性標記。基於歷史原因,幾乎今天所有瀏覽器的字串都以它開頭,Firefox 也不例外。(Macintosh; Intel Mac OS X 10_15_7):平台,蘋果的桌面作業系統。AppleWebKit/537.36:瀏覽器所建構的 WebKit 引擎版本。(KHTML, like Gecko):更多相容性標記,原因下面會說明。Chrome/143.0.0.0:瀏覽器和它的版本。這是網站實際上最常鎖定的部分。Safari/537.36:是的,Chrome 的字串結尾有個 Safari 標記。這是歷史遺留,不是 bug。
Firefox 的格式對自己誠實得多:Mozilla/5.0 (platform; rv:gecko-version) Gecko/gecko-trail Firefox/firefox-version,依 MDN 的 Firefox 章節記載。Safari 會在引擎版本前多一個 Version/xx.x 標記;而在 iPhone 上,每個第三方瀏覽器(Chrome、Firefox、Edge)送出的仍然是 WebKit 風格的字串,因為 iOS 規定瀏覽器必須使用 WebKit。
為什麼這串字長得這麼怪
那些奇怪的標記是瀏覽器大戰留下的疤。早期網站會檢查 User Agent,對不認得的瀏覽器提供精簡版頁面,或者乾脆拒絕載入。後來的引擎只好借用舊名稱。Chrome 加上 KHTML, like Gecko 和 Safari 標記,讓為 WebKit 寫的網站把它當自家人。Firefox、Opera、Edge 也都因為同樣的原因,背著各自的歷史包袱。
Reddit 上一位 Firefox 支援貢獻者一語道破現況:User Agent 是 "a relic of the past, at least in theory... some questionably made sites still do" 依賴的東西。設計良好的網站應該改用功能偵測(feature detection)。這串字之所以仍然重要,正是因為不是每個網站都設計良好。如果你對「瀏覽器在你和網站之間居中協調」這個概念還很模糊,可以先看我們的白話瀏覽器入門指南補上背景知識。
User-Agent reduction:為什麼你的字串現在變短了
上面那串字同時也是個隱私問題。它是追蹤器可用來拼出指紋的又一筆資料:瀏覽器版本、精確的 OS 版本。所以以 Chromium 為核心的瀏覽器現在凍結了字串的部分內容。MDN 的 reduction 說明描述了 Android 上的改動:平台版本固定為 Android 10,裝置型號顯示為凍結的 K,Chrome 的次版本永遠是 0.0.0,產生的字串像 Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36。
在桌機上也能觀察到這件事。現在的 Chrome 在現在的 Mac 上,回報的仍然是 Intel Mac OS X 10_15_7,OS 版本在字串裡就這樣停止了更新。真正需要更豐富細節的網站,可以透過 User-Agent Client Hints 提出申請:伺服器送出 Accept-CH 標頭,瀏覽器再以 Sec-CH-UA-* 標頭回應,夾帶結構化、按請求提供的資訊。
兩個實際的重點。第一,如果有網站因為版本號被凍結就說你的瀏覽器太舊,那是網站把字串讀錯了。第二,字串變短,意味著改它所能換到的隱私,比以前更少。
當 User Agent 反過來找你麻煩
因為伺服器信任這串字,社群討論串裡反覆出現三類問題。
誤判的情況就像上面 Twitch 的例子:最新的 Chrome,錯誤的平台標記,被封鎖的訊息。類似的偵測邏輯,也是某些銀行和政府入口網站堅持特定瀏覽器的原因;我們在就醫入口網站那篇文章裡拆解過這個模式。
刻意封鎖的情況是:問網站能不能因為這串字封鎖你,答案是能。伺服器可以出於任何理由拒絕任何請求,同一個 r/firefox 討論串也證實了這點。
偽裝帶來的是反噬。會輪換或偽造 User Agent 的擴充功能,是用一個問題換來好幾個問題。一位 Windscribe 使用者在 Reddit 上回報,輪換 User Agent 讓 YouTube 完全載入不出東西,Google 文件也被當成「不支援」的瀏覽器封鎖。就算把字串設成空白,那也是實驗,不是解法。開發者 Šime Vidas 在 X 上真的做了這個實驗,想看看會壞掉什麼。
這些都不代表 User Agent 是什麼危險的知識。它不是密碼,而且你造訪的每個網站早就拿到它了。這串字值得搞懂,理由跟「值得知道表格為什麼跟你要某些資料」一樣:這樣你才看得出網站什麼時候做了錯誤的判斷。
用 Tabbit 查詢並解讀你的 User Agent
在任何瀏覽器裡,查詢只要十秒鐘。接下來的問題是:「好吧,這串字對我來說到底是什麼意思?」這才是 AI 原生瀏覽器派上用場的地方。
在 Tabbit 瀏覽器裡(也就是我們在 Tabbit Browser 是什麼 裡更仔細介紹的那款 AI 瀏覽器),新分頁上的 Omnibox 同時就是 AI 輸入框,所以整個流程不用離開原處:
在 Omnibox 輸入
whatmyuseragent.com這類偵測網站並打開。你的完整字串會出現在頁面最上方。在側邊欄用
@引用這個頁面,請 Tabbit 逐段解釋字串:哪個標記是瀏覽器版本、哪個是被凍結的平台、為什麼會有 Safari 標記。AI 讀的是你當下打開的頁面,你什麼都不用複製。如果在某個網站撞上「瀏覽器不受支援」的牆,切換到 Agent Mode(名稱背後的代理式操作模式,就是我們的代理式瀏覽器解析所介紹的主題),讓 Tabbit 打開頁面、讀取錯誤訊息,回報網站宣稱拒絕的是什麼。


誠實說明取捨:AI 解釋是閱讀輔助,而字串的權威依據仍然是規格和 MDN 參考文件,不是聊天回答。Tabbit 不會修改你的 User Agent,也沒有這個打算。這串字是平台層級的決定,凍結加 Client Hints 是整個產業一致的方向。Tabbit 幫上忙的是周圍那圈流程:查字串、懂字串、診斷讀錯字串的網頁。如果你真正的問題是網站在更新後壞掉,而不是字串本身,那從瀏覽器疑難排解指南開始。想了解指紋追蹤的隱私面向,看為什麼隱私保護有時會搞壞網站。如果真正困擾你的是瀏覽器又慢又塞滿東西,那是另一種解法:看瀏覽器臃腫解析。
你該走哪條路?
| 情境 | 該怎麼做 | 原因 |
|---|---|---|
| 客服表格要求你提供瀏覽器資訊 | 從偵測網站把你的 User Agent 複製進表格 | 支援團隊用它來重現你的實際環境 |
| 網站說你的瀏覽器不受支援 | 先查字串,然後更新瀏覽器;如果問題還在,錯的大多是網站的偵測邏輯 | 最新的瀏覽器也可能被誤讀,上面 Linux Chrome 的案例就是證明 |
| 你在排查版面或功能 bug | 用主控台或 Network 面板方法,並用支援 Client Hints 的工具測試 | 開發者需要原始字串,外加伺服器實際協議到的內容 |
| 你想要更多隱私 | 別動 User Agent;改用追蹤阻擋 | 偽裝會搞壞網站,而 reduction 已經縮小了洩露的資料量 |
| 你反正正在挑新瀏覽器 | 依速度、隱私和工作流契合度來選,別看 UA 字串 | 每個現代瀏覽器送出的字串都差不多;真正重要的差別在別的地方:見如何挑選適合的瀏覽器,以及我們對為生產力打造的瀏覽器的評測筆記 |
結論:你的 User Agent 是一串短小、公開的字串,網站用它來識別你的瀏覽器。需要的時候查一下,懂到能識破錯誤偵測就夠了,其他時候別去動它。如果你還想讓「查詢加解釋」這一步就發生在你每天都在用的瀏覽器裡,Tabbit 瀏覽器可以讓兩件事在同一個地方完成:macOS 和 Windows 免費使用,還能一鍵從 Chrome、Edge 或 Safari 匯入書籤、瀏覽紀錄和擴充功能,正是我們的換瀏覽器前先備份清單所示範的操作。
常見問題
白話說,什麼是瀏覽器代理?
它是一串簡短的純文字,瀏覽器會在你造訪每個網站時傳送給對方,告訴網站你使用的瀏覽器、版本、作業系統和裝置類型。伺服器會根據它決定要回傳哪個版本的頁面。你可以在任何一個偵測網站立刻看到自己的字串,也可以在瀏覽器的開發者工具主控台輸入 navigator.userAgent 查看。
如何在 Chrome、Edge、Firefox 或 Safari 中查詢我的 User Agent?
最快的方式是打開偵測網站,它會讀取你請求中的 User-Agent 標頭並顯示出來。如果想用內建方式,按 F12 或 Cmd+Option+I 打開開發者工具,切換到主控台,輸入 navigator.userAgent,然後按下 Enter。所有主流桌上型和手機瀏覽器都支援這兩種方法。
為什麼我的 Chrome User Agent 裡會出現 Safari 和 KHTML, like Gecko?
這些標記是瀏覽器大戰留下的歷史遺跡。早期網站會檢查特定排版引擎,不相容就直接封鎖,所以後來的瀏覽器才把舊引擎的名稱加進自己的字串裡,確保能被放行。Chrome 使用的是 Blink 引擎,但字串裡仍保留 KHTML, like Gecko 和 Safari 標記以維持相容性。幾乎每個瀏覽器的字串也都以 Mozilla/5.0 開頭,原因相同。
網站會因為我的 User Agent 封鎖我嗎?
會。伺服器可以根據 User-Agent 標頭拒絕或降級任何請求,有些網站至今仍對特定瀏覽器或平台鎖住功能、顯示「瀏覽器不受支援」的訊息,即使你的瀏覽器已經是最新版。社群中就有回報案例:在 Linux 上使用最新版 Chrome,卻因為網站的偵測邏輯鎖定了平台標記而被拒於門外。
我應該修改或隱藏我的 User Agent 嗎?
對絕大多數人來說,不需要。現代瀏覽器已經凍結了字串的大部分內容來減少指紋追蹤,而會輪換或清空 User Agent 的擴充功能,搞壞的東西通常比解決的還多,Google 文件和 YouTube 都可能因此異常。只有需要測試相容性的開發者才應該偽裝 User Agent,而且只在做測試時暫時使用。
什麼是 User-Agent reduction 和 Client Hints?
User-Agent reduction 是 Chromium 核心瀏覽器的隱私改動,凍結了 User Agent 字串的部分內容,例如把 Android 版本固定在 10、裝置型號顯示為 K、次版本號歸零。有正當需求需要更多細節的網站,可以透過 User-Agent Client Hints 提出申請:伺服器用 Accept-CH 標頭提出請求,瀏覽器再以 Sec-CH-UA 系列標頭回應。