2026-01-08

ERR_UNSAFE_PORT

先前我在開發軟體時,我設定讓他以 localhost:6000 開啟,結果出現 ERR_UNSAFE_PORT 錯誤,然而用 cURL 卻又一切正常。

經查詢,這是因為 6000 在瀏覽器中被列為 unsafe port。

這個 port 是 linux X11 桌面系統所用的,所以瀏覽器將之限制了。

經過查詢,WHATWG community 有在Fetch Living Standard 的 《2.9. Port blocking》中,列出一個規範,告知哪些 port 禁用,只要使用他們,就會出現這個錯誤。


而在瀏覽器上,Chromium 限制的 PORT 可參閱原始碼的 net/base/port_util.cc

Firefox 則是在 netwerk/base/nsIOService.cpp


真要使用這些限制的 PORT

如果真有那個需要要使用這些限制的 port,要看瀏覽器允不允許

Chrome 允許使用 --explicitly-allowed-ports 啟動參數處理,例如

chrome --explicitly-allowed-ports=6000
chrome --explicitly-allowed-ports=6000,6566

Firefox 則是去 about:config 來調整;Microsoft Edge 更麻煩,得從註冊表那裏修改。


這三者算最常見了,卻都路線不同!更何況 Edge 和 Chrome 明明都是 Chromium base的瀏覽器處理方式還不一樣。那更別提其他瀏覽器,例如 Opera、Brave、Vivaldi、Safari、神馬(Sleipnir)……等等了。

這些 Port 被禁用終究是有其原因的,最好是真的別用!



參考資料

Will. (2022, May 2). 開發與部署網站時需注意不要使用到 ERR_UNSAFE_PORT 不安全的埠號. The Will Will Web. https://blog.miniasp.com/post/2022/05/02/Dont-use-ERR_UNSAFE_PORT-for-your-website
wx623c62d62e5e8. (2024, September 14). 解决 Google Chrome 非安全端口访问问题. Blog.51cto.Com. https://blog.51cto.com/u_15567097/12015705
byzf. (2021, June 22). ERR_UNSAFE_PORT浏览器安全问题无法访问的解决方案_unsafe port. Blog.Csdn.Net. https://blog.csdn.net/kjcxmx/article/details/118122483

沒有留言:

張貼留言