chrome因端口黑名单拦截6666等不安全端口访问,报err_unsafe_port错误;解决方法首选更换为60001等非受限端口,次选通过chrome://flags或命令行临时绕过限制。

谷歌浏览器无法访问局域网内如6666、10080等特定端口,不是网络不通也不是服务没起,而是Chrome主动拦截——它把一批端口号标记为“不安全”,收到请求直接拒绝连接,连握手都不让完成。
确认是否触发ERR_UNSAFE_PORT错误
在地址栏输入目标地址(例如http://192.168.1.100:6666)后,若页面显示“无法访问此网站”且错误代码为【ERR_UNSAFE_PORT】,就坐实了是Chrome的端口黑名单机制在起作用。这个错误不会出现在Safari、Firefox或360浏览器中。
Chrome默认禁用的端口包括:1、7、9、11、13、15、17、19、20、21、22、23、25、37、42、43、53、77、79、87、95、101、102、103、104、109、110、111、113、115、117、119、123、135、139、143、179、389、465、512~515、526、530~532、540、556、563、587、601、636、993、10080、6666等——【6666确实在官方禁用列表里】。
更换为非受限端口(推荐首选)
这是最干净、零风险、无需改浏览器配置的解法。
第一步:停止当前运行在6666端口的服务进程。Windows可在任务管理器→详细信息页搜索java、node、python等进程,右键结束;macOS/Linux执行lsof -i :6666→kill -9 [PID]。
第二步:修改服务启动参数,将端口改为60001(或其他大于1024且不在黑名单中的数字),例如Node.js项目改app.listen(60001),Go程序改http.ListenAndServe(":60001", nil)。
第三步:重启服务,用浏览器访问http://192.168.1.100:60001——立即生效,无需刷新DNS或清缓存。
注意:不要选6000、8000、8080以外的常见开发端口,部分旧版Chrome也会对6000报ERR_UNSAFE_PORT;60001~65535区间最稳妥。
临时关闭Chrome端口安全策略(仅限开发调试)
适用于必须用6666端口联调、又不能改服务代码的紧急场景。
方法一:启用chrome://flags实验开关
在Chrome地址栏输入chrome://flags/#block-insecure-private-network-requests→回车→找到“Block insecure private network requests”选项→下拉菜单选“Disabled”→点击右下角“Relaunch”重启浏览器。
方法二:命令行启动绕过检查(Windows/macOS通用)
完全退出Chrome所有进程后,在终端/命令提示符中执行:chrome --unsafely-treat-insecure-origin-as-secure="http://192.168.1.100:6666" --user-data-dir=/tmp/chrome-test --ignore-certificate-errors
这会新建一个独立配置的Chrome实例,只对指定地址放行,不影响日常使用。
【警告:方法二的--user-data-dir路径不能复用已有目录,否则启动失败】
检查系统级干扰项(排除误判)
如果换了端口仍打不开,说明问题不在ERR_UNSAFE_PORT,而是其他层被卡住。
先验证服务是否真在监听:Windows执行netstat -ano | findstr :6666,macOS/Linux执行lsof -iTCP:6666 -sTCP:LISTEN,无输出即服务根本没起来。
再确认防火墙没拦:Windows防火墙需放行6666端口入站规则;macOS在“系统设置→隐私与安全性→防火墙→防火墙选项”中勾选“允许传入连接”并添加对应程序。
最后检查Chrome是否自动跳转HTTPS:访问时务必手动输入http://前缀,别依赖历史记录——Chrome可能已把该域名记入HSTS列表,强制升级为https导致连接失败。清除方式:访问chrome://net-internals/#hsts→在“Delete domain security policies”框中输入IP(如192.168.1.100)→点Delete。











