windows內(nèi)置應(yīng)用(UWP應(yīng)用)在開啟代理情況下無法聯(lián)網(wǎng)
參考知乎

1.原因
平時(shí)經(jīng)常需要使用網(wǎng)絡(luò)代理,但是它開著的時(shí)候,總會(huì)導(dǎo)致我電腦里 UWP 應(yīng)用出現(xiàn)無法聯(lián)網(wǎng)的狀態(tài),EXE應(yīng)用不受影響。每次使用UWP應(yīng)用時(shí)把代理關(guān)了就可以正常聯(lián)網(wǎng)了。了解到是 UWP 的一些特殊原因,具體原因如下:
Win10 所有 UWP 應(yīng)用均運(yùn)行在被稱為 App Container 的虛擬沙箱環(huán)境中,App Container 可以保證應(yīng)用安全性,但同時(shí)也阻止了網(wǎng)絡(luò)流量發(fā)送到本機(jī)(即 loopback), 使大部分網(wǎng)絡(luò)抓包調(diào)試工具無法對(duì) UWP 應(yīng)用進(jìn)行流量分析。同樣的,該機(jī)制也阻止了 UWP 應(yīng)用訪問 localhost,即使你在系統(tǒng)設(shè)置中啟用了代理,也無法令 UWP 應(yīng)用訪問本地代理服務(wù)器。
2.方法
2.1
?使用 Fiddler 4 解除 UWP 應(yīng)用的網(wǎng)絡(luò)隔離。(此方法最為簡單)
下載安裝 Fiddler 應(yīng)用,下載鏈接:Fiddler 官網(wǎng)下載地址?(下載前的資料隨便填)
安裝后打開應(yīng)用,按照下方截圖順序:
2.1.1?點(diǎn)擊winConfig
2.1.2 找到并勾選你所有需要解除網(wǎng)絡(luò)隔離的應(yīng)用 3. 點(diǎn)擊Save Changes 保存操作結(jié)束。開著代理使用一下剛剛修改的應(yīng)用,看看是不是已經(jīng)可以正常聯(lián)網(wǎng)了。

2.2
?通過命令行工具解除 UWP 應(yīng)用網(wǎng)絡(luò)隔離(這個(gè)辦法稍微麻煩點(diǎn))
Win10 自帶了一款名為 CheckNetIsolation.exe 的命令行工具,可以將 UWP 應(yīng)用添加到排除列表,具體步驟如下:
2.2.1 通過注冊(cè)表獲取應(yīng)用的 SID
Win + R 快捷鍵打開「運(yùn)行」窗口,輸入Regedit打開注冊(cè)表編輯器。然后復(fù)制下面這段地址定位黏貼到地址欄中:HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings
Mappings 文件夾內(nèi)的內(nèi)容,就是所有 UWP 應(yīng)用的對(duì)應(yīng)的 SID。隨便點(diǎn)擊一個(gè) SID 右邊會(huì)顯示應(yīng)用名稱。找到你要解除網(wǎng)絡(luò)隔離的應(yīng)用,復(fù)制它的 SID。

2.2.2打開 CMD 面板,使用 CheckNetIsolation.exe 解除應(yīng)用隔離
方法A:Win + R 快捷鍵打開「運(yùn)行」窗口,輸入CMD打開命令行。
直接在終端中輸入:CheckNetIsolation.exe loopbackexempt -a -p= 等號(hào)后面加上你剛剛復(fù)制的應(yīng)用 SID, 接著回車后命令行顯示完成說一般就成功了。一次只能解除一個(gè)應(yīng)用,想要解除多個(gè)應(yīng)用,找到對(duì)應(yīng)的 SID,依次解除即可。

方法B:打開powershell
輸入foreach ($n in (get-appxpackage).packagefamilyname) {checknetisolation loopbackexempt -a -n="$n"}
直接解除所有應(yīng)用
如果只想對(duì)某個(gè)特定 UWP 應(yīng)用設(shè)置代理,用 $n=(get-appxpackage *應(yīng)用名的獨(dú)特部分,比如郵件應(yīng)用是commu*).packagefamilyname | checknetisolation loopbackexempt -a -n="$n"
如果需要恢復(fù)checknetisolation LoopbackExempt -c?