olNGIb4NkK5r2x7x4oG3GpEzizVpnY6KNCck9cym

如何處理 Google Chrome / Microsoft Edge / Mozilla Firefox 瀏覽器因為 "ERR_UNSAFE_PORT" 導致無法訪問站點的問題?

當遇到 "ERR_UNSAFE_PORT" 問題,又無法變更伺服器開設的連接埠時,也可以從瀏覽器的設定使其放寬限制;然而 Google Chrome / Microsoft Edge / Mozilla Firefox 的處理方式都不盡相同。

筆者在 哪些連接埠會使 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) 欄位中添加上述參數。比如:

在 Google Chrome 的捷徑中添加 '--explicitly-allowed-ports=...' 參數
在 Google Chrome 的捷徑中添加 --explicitly-allowed-ports=... 參數

Microsoft Edge

根據這篇文章的說法,基於 Chromium 開發的 Microsoft Edge 瀏覽器,其命令行參數大多數與 Google Chrome 一致,因此理論上也可以採用上述的解決方案。

然而筆者嘗試過後發現,與 Microsoft Discussions 上的這則問題一樣,使用 --explicity-allowed-ports=port1[,port2, port3] 參數執行 Microsoft Edge 瀏覽器依然會因為 ERR_UNSAFE_PORT 導致無法訪問站點。

意外地發現 Microsoft Discussions 上討論串中,竟然也是使用 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),並將其數值設定為想要訪問的連接埠
在註冊表中的 \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' 選項,並設定為想要訪問的連接埠
about:config 設定頁面中,尋找 network.security.ports.banned.override 選項,並設定為想要訪問的連接埠

張貼留言