
筆者在 哪些連接埠會使 Google Chrome / Microsoft Edge / Mozilla FireFox 訪問失敗,並顯示 "ERR_UNSAFE_PORT" 錯誤? 一文中,提到了如果使用 HTTP/HTTPS 協議訪問被瀏覽器視為非安全連接埠(unsafe port)的連接埠時,瀏覽器會為了防止潛在的安全風險而阻擋發送的請求。
當然,最直截了當的解決方案就是 在伺服器端將監聽的連接埠號(port)替換掉。但是有時候我們並非伺服器的管理人員,並不能操作伺服器以及上面所部署的服務實例,那麼除了調整伺服器上的設定之外,要 如何處理瀏覽器因為 ERR_UNSAFE_PORT
導致無法訪問站點的問題 呢?
以下整理不同瀏覽器的解決方案。
Google Chrome
如果要使 Google Chrome 禁用或者忽略 ERR_UNSAFE_PORT
的話,需要關閉 Google Chrome 瀏覽器,並且在開啟瀏覽器時加上 --explicity-allowed-ports=port1[,port2, port3]
參數。比如以下的命令行:
$ chrome --explicitly-allowed-ports=6666
當然,如果是在 Microsoft Windows 作業系統上,也可以創建一個 Google Chrome 執行檔的「捷徑」,點擊右鍵依次選擇 顯示更多選項(show more options)
→ 屬性(properties)
,在 目標(target)
欄位中添加上述參數。比如:

--explicitly-allowed-ports=...
參數Microsoft Edge
根據這篇文章的說法,基於 Chromium 開發的 Microsoft Edge 瀏覽器,其命令行參數大多數與 Google Chrome 一致,因此理論上也可以採用上述的解決方案。
然而筆者嘗試過後發現,與 Microsoft Discussions 上的這則問題一樣,使用 --explicity-allowed-ports=port1[,port2, port3]
參數執行 Microsoft Edge 瀏覽器依然會因為 ERR_UNSAFE_PORT
導致無法訪問站點。
6666
這個連接埠。
幾經搜尋之後,從 CSDN 上的這篇文章中找到了一個使用註冊表編輯器(Regedit)修改系統註冊表的解決方案,十分有效!只需要在註冊表中的 \HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\ExplicitlyAllowedNetworkPorts
路徑下,創建一個名稱為 1
的字串值(string value),並將其數值設定為想要訪問的連接埠即可。如圖所示:

\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\ExplicitlyAllowedNetworkPorts
路徑下,創建一個名稱為 1
的字串值(string value),並將其數值設定為想要訪問的連接埠官方文件的說明如下:
Leaving the value empty or unset means that all restricted ports will be blocked. Invalid port values set through this policy will be ignored while valid ones will still be applied. This policy overrides the "--explicitly-allowed-ports" command-line option.
Mozilla Firefox
Mozilla Firefox 瀏覽器的處理方式最為人性化且簡單,只需要在網址列中輸入 about:config
並按下 ENTER 鍵,在設定頁面中尋找 network.security.ports.banned.override
選項,便可以填入想要訪問的連接埠了。如圖所示:

about:config
設定頁面中,尋找 network.security.ports.banned.override
選項,並設定為想要訪問的連接埠
張貼留言