使 localhost 伺服器免受 UWP 應用網路隔離?

使 localhost 伺服器免受 UWP 應用網路隔離?

預設情況下,UWP 應用程式無法存取同一台電腦上的網路資源。可以使用該實用程式針對每個應用程式解除此限制CheckNetIsolation.exe。網路上很多地方都描述了這一點:

https://stackoverflow.com/questions/34589522/cant-see-localhost-from-uwp-app https://docs.microsoft.com/en-us/windows/uwp/debug-test-perf/deploying-and-debugging-uwp-apps#debugging-options

可以單獨向 UWP 應用授予環回豁免。在我的用例中,我想使用在本機主機上執行的系統範圍代理伺服器(Internet 選項 -> 連線 -> 區域網路 (LAN) 設定 -> 代理伺服器)。這意味著我必須向我的每一個 UWP 應用程式授予環回豁免,否則它們將根本無法存取 Internet。

有沒有辦法透過在伺服器端執行某些操作來規避這種網路隔離,而不是向每個 UWP 應用程式授予環回豁免?

例如,(我還沒有嘗試過這個)我想像在我的電腦上運行虛擬機器並在虛擬機器中運行我的代理伺服器將允許 UWP 應用程式連接到代理伺服器,因為代理伺服器沒有偵聽環回介面。還有其他方法/駭客可以類似地工作嗎?

我嘗試過但不起作用的事情:

  • 將代理伺服器綁定到 127.0.0.0/8 中的另一個 IP 位址,而不是 127.0.0.1
  • 新增 Microsoft 環回適配器,為其指派 IP 位址,並將我的代理伺服器綁定到該位址

答案1

實際上有一種方法,無需向每個應用程式授予豁免或在單獨的(真實或虛擬)機器上運行伺服器:使用網路欺騙使本地主機伺服器看起來像是在另一個系統上運行。

我已經使用 WinDivert 框架實作了一個解決方案。簡而言之,它將發送到指定「反射位址」的網路封包「反射」回本地主機,因此可以透過反射位址到達本地主機上運行的伺服器。這樣UWP應用程式就可以自由存取伺服器。

使用能夠過濾和注入網路資料包的其他技術應該可以實現類似的解決方案。

相關內容