Shunze 學園 >電腦資訊學系 >吃軟不吃硬 > 《分享》在Menlo Proxy隔離環境下,內部網站無法開啟 哈囉,還沒有註冊或者登入。請你[註冊|登入]
« 上一篇主題 顯示成列印模式 | 增加到我的最愛
發表新主題 發表回覆
作者
主題
shunze
工友伯伯


註冊日期: 2002 04
來自: 潮汐終止之地
文章: 2399

shunze 離線
《分享》在Menlo Proxy隔離環境下,內部網站無法開啟引用回覆 編輯/刪除文章 搜尋由  發表的其他文章 回報給版主 IP 位置 回此頁最上方

最近開始接觸Menlo,PoC過程中客戶提了一個很有趣的問題。
當啟用Menlo Proxy後,會發現內部Private IP網段的網頁無法開啟,
但關閉Menlo後,該內部網頁就可以成功開啟,
而且成功開啟該網頁後,即便再次啟用Menlo,該網頁還是能夠正常開啟。

也就說,在Menlo隔離環境下,未曾開啟過的內部網站會無法開啟,
但只要成功開啟過一次,之後就可以正常開啟,
這是什麼鬼啊...

在Menlo的PAC file設定中,內網使用的Private IP網段基本上就是direct直接放行,
不會繞送到Menlo雲端,所以理論上不可能對內網網站造成干擾。
但客戶端的狀況我們在現場實際看過,確實部分內網網頁會有這樣的問題,
而且我還曾經在我LAB中成功模擬出一樣的狀況,
這...究竟是怎麼一回事?


仔細查看這個狀況,會發現在Menlo隔離環境中,
開啟這些有問題的內部網頁時,會彈跳出另一個一直轉圈圈的分頁,
而這個網頁會因瀏覽器不同,而有不同的網址。

Chrome如下。

http://connectivitycheck.gstatic.com/generate_204

Edge如下。
http://edge-http.microsoft.com/captiveportal/generate_204


從這兩個網址來看,它們有一個共通的特性.那就是它們都是http協定,而且都是導向一個generate_204頁面,
這generate_204頁面究竟有什麼特別意義?


以Chrome或Edge搭配captiveportal與generate_204去查詢,
發現這個網址是“網絡連接狀態指示器”的認證地址,它是透過http協定去進行連接線檢測,
在成功取得204的回應碼後,代表目前網路是通的,
在網路是通的情況下,原本開啟的網頁就會正常連線開啟。

但若回應碼不是204,而是其它回應碼,那就代表當下對外網路有問題,
可能會導向其它Captiva Portal去認證,會是其它回應方式。



而在導入Menlo Proxy後,在比較嚴謹的條件設定下,
連到這幾個偵測網址的連線也會被隔離,
透過Menlo隔離後,回應的就是200的回應碼,而不是原本預期的204!
然後使用者看到的就是這個從分頁彈跳出來,一直轉圈圈的generate_204頁面了...



解決的方式其實也很簡單,就把這幾個瀏覽器的檢查網址direct bypass,
或設exception做例外放行,不去隔離就行了∼

不過Direct bypass只能針對domain設定,無法細到以路徑去做設定,
設定後整個domain都會直接放行,條件太過寬鬆!
而policy exception則可細到以路徑去做設定.在政策嚴謹度上policy exception明顯較高!

另外,要注意的是依據瀏覽器的不同,放行的網址也會有所不同,
目前順子從AI上,收集到要放行的清單如下,請逐一加入。
www.gstatic.com
connectivitycheck.gstatic.com
clients3.google.com
edge-http.microsoft.com


我試圖跟客戶說明這個狀況,但客戶質疑我,以上這些是不是只是我的猜測?
而不願接受我的說法。

沒辦法,新手工程師就是沒有話語權...



♥順子老婆的網拍,請多關照∼

If you don't like something, change it.
If you can't change it, change your attitude.
Don't complain!


2026-05-20, 13:53 shunze 的個人資料 把 shunze 加入好友列表 發送Email給 shunze 瀏覽 shunze 的網站 MSN : shunze@gmail.com
shunze
工友伯伯


註冊日期: 2002 04
來自: 潮汐終止之地
文章: 2399

shunze 離線
《分享》generate_204的作用引用回覆 編輯/刪除文章 搜尋由  發表的其他文章 回報給版主 IP 位置 回此頁最上方

瀏覽器的 generate_204 探測功能,
本質上是一種網路狀態診斷機制,主要用於判斷使用者目前是否能「真正連接到網際網路」,
以及是否被困在需要登入的「強制網路門戶」(Captive Portal,例如飯店或咖啡廳的 Wi-Fi 登入頁面)。

為什麼叫 "generate_204"?
在 HTTP 協定中,狀態碼 204 No Content 代表:「伺服器成功處理了請求,但不需要回傳任何內容」。
Google、微軟、Apple 等大廠都設有專屬的探測伺服器(例如 Google 的 ://gstatic.com)。
當瀏覽器發送請求給這個網址時,
正常的 Google 伺服器只會回傳一個極小的 204 狀態碼標頭,不包含任何網頁 HTML 或圖片。
這種設計的優點是速度極快、耗費頻寬極低,非常適合用來高頻率地測試網路。

探測功能的 3 大核心作用

  1. 偵測是否需要「Wi-Fi 認證」(Captive Portal Detection)
    當您連上公共 Wi-Fi 時,即使無線訊號滿格,
    您也必須先打開網頁輸入密碼或點擊同意條款才能上網。
    探測過程:系統在背景偷偷向 Google 的 generate_204 發送請求。
    結果 A(正常上網):收到 204 狀態碼。系統知道網路通了,什麼都不做。
    結果 B(被攔截導向):公共 Wi-Fi 的路由器攔截了這個請求,並強行回傳了「登入頁面」(狀態碼通常變成 200 或 302)。
    系統反應:系統發現「回傳的不是 204」,立刻警覺到流量被劫持了,
    於是自動彈出視窗,把您導向該 Wi-Fi 的登入頁面。

  2. 即時判斷「網路是否可用」與連線切換
    作業系統和瀏覽器會定時利用這個機制確認網路存活狀態。
    當您同時開啟 Wi-Fi 和行動網路(4G/5G)時,如果 Wi-Fi 的 generate_204 測試失敗(例如寬頻斷線),
    系統會立刻在工作列顯示「驚嘆號」或「地球圖示」(顯示無網際網路存取),
    並自動幫您切換到行動網路,避免上網中斷。

  3. 觸發瀏覽器的安全防護機制
    在現代瀏覽器中(如 Chrome、Edge),當您嘗試連線某個網站,而背景的 generate_204 探測卻失敗或被竄改時,瀏覽器會懷疑您正遭受 DNS 劫持或 中間人攻擊(MITM),進而跳出警告頁面封鎖連線,保護您的個人隱私。



♥順子老婆的網拍,請多關照∼

If you don't like something, change it.
If you can't change it, change your attitude.
Don't complain!


2026-06-09, 15:22 shunze 的個人資料 把 shunze 加入好友列表 發送Email給 shunze 瀏覽 shunze 的網站 MSN : shunze@gmail.com
  « 上一篇主題
發表新主題 發表回覆
跳到:

Powered by: Burning Board 1.1.1 2001 WoltLab GbR