Warm tip: This article is reproduced from serverfault.com, please click

其他-通过非标准SSL端口从Docker容器上的外部源发出的连接超时

(其他 - Connection timeout from external sources on Docker container via non standard SSL port)

发布于 2020-12-01 09:11:10

我确实通过docker compose组合了一个Web应用程序的容器网络。只要我在标准443 SSL端口(仅向主机公开的端口)上运行它,它就可以平稳运行。当我切换到另一个端口(我需要在此计算机上运行多个容器网络)时,来自服务器外部的连接始终显示超时。尝试使用端口8443、9001和其他几个端口。我没有对容器本身进行任何其他更改。

奇怪的是,当我curl在具有本地主机和指定端口的服务器上执行操作时,它显示了应用程序而没有任何问题。因此,该应用程序运行良好,只是外部连接被卡住了。

应用程序本身在容器内有一个自签名证书,但这不应该是

我尝试到了什么(针对端口8443):

  • netstat 显示端口8443(或我尝试过的任何其他端口)已打开并列出(与443相同,另一个应用程序正常工作)
  • curl具有localhost:8443的服务器上的A可以正常工作
  • 通过多个服务器(在不同的国家/地区)连接:所有连接超时

这是我从外面的卷曲:

λ curl -v https://xxx.xxx.xxx.xxx:8443/
*   Trying 87.106.152.131...
* TCP_NODELAY set
* connect to xxx.xxx.xxx.xxx port 8443 failed: Timed out
* Failed to connect to xxx.xxx.xxx.xxx port 8443: Timed out
* Closing connection 0
curl: (7) Failed to connect to xxx.xxx.xxx.xxx port 8443: Timed out

那里没有太多信息。

我的问题是:

  • 在哪里可以获得有关此超时的更多信息(以及为什么会发生这种情况)?
  • 还有其他人偶然发现此错误并有解决方案吗?
Questioner
Aploe
Viewed
11
Jonathan privé 2020-12-01 22:23:24

如果它可以在localhost和端口443上运行,则唯一剩下的超时说明是防火墙过滤你的请求。
另外,如果你尝试像这样卷曲,则会遇到证书问题,请查看此帖子该文章向你解释了如何通过带有curl的IP管理自签名证书或https。