docker - "不允许使用受限网络端口" (WebKitErrorDomain:103)
问题描述
在我的服务器(CentOS 7.9)中,我运行一个 docker 容器。
[root@att ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
028fe4b64697 training/webapp "python app.py" 21 minutes ago Up 21 minutes 0.0.0.0:6000->5000/tcp
这是一个网页。
我可以在本地 macOS wget 页面:
wget remote_ip:6000
并获取index.html
,但我无法在浏览器中访问,它报告错误:
The Safari browser cannot open the page "http://demo.com:6000/". The error is: "Not allowed to use restricted network port" (WebKitErrorDomain:103)
解决方案
我自己也遇到了这个问题。似乎浏览器阻止了 6000 范围内的某些端口。不只是 Safari,还有 Chrome/Chromium link和 Firefox。
> 6000, // X11
> 6566, // sane-port
> 6665, // Alternate IRC [Apple addition]
> 6666, // Alternate IRC [Apple addition]
> 6667, // Standard IRC [Apple addition]
> 6668, // Alternate IRC [Apple addition]
> 6669, // Alternate IRC [Apple addition]
> 6697, // IRC + TLS
这似乎是出于安全原因(我没有深入研究)。Mozilla提到了跨协议攻击。这或许可以解释为什么被阻塞的 6xxx 端口也是某些应用程序(例如 X11、IRC)的标准端口。
解决方案:使用 https 或其他端口。如果在 Chrome 上,您可以通过明确允许端口来启动 chrome。
推荐阅读
- reactjs - 自动导入总是提示文件类型不正确(tsx -> js),如何解决?
- windows - 如何修改以前的代码以检测部分覆盖的表单
- c# - dll构建成功,但加载dll时执行错误
- python-3.x - 如何将 Essentia 音频包从 Home-brew 链接到 Anaconda venv 以使用 Juypter 调用 Essentia 包
- python - SQLAlchemy:组内不同
- python - lgb.train ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
- python - 从函数内创建python线程导致错误
- spring - spring mvc i18n:设置默认语言环境似乎回退到“en”
- javascript - 使用 Angular 8 的上一个、下一个和返回功能,打字稿
- java - 配置 SpringBootApplication 以从属性读取时遇到问题