无法从 docker 容器连接到 macOS 上的主机的特定端口

问题描述 投票:0回答:1

我正在尝试从 docker 容器连接到主机的端口,但它不想为特定端口工作(在我的例子中

9003
)。

在主机上,我检查端口是否打开:

lsof -nP -iTCP -sTCP:LISTEN

我看到了目标端口 (

9003
):

COMMAND     PID               USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
phpstorm  32838 mypersonalusername   17u  IPv4 0x0000000000000000      0t0  TCP 127.0.0.1:63342 (LISTEN)
phpstorm  32838 mypersonalusername  266u  IPv4 0x0000000000000000      0t0  TCP *:9003 (LISTEN)

当我在 docker 容器内运行时,下一个命令是:

nc -vz host.docker.internal 9003

我看到该端口不可用,但是当我尝试到达另一个端口时:

nc -vz host.docker.internal 63342

并且有效:

host.docker.internal (192.168.65.254:63342) open

我尝试使用

docker.for.mac.host.internal
主机,我检查了macOS防火墙设置,甚至禁用了防火墙,但没有帮助。我看到端口定义的差异(
127.0.0.1:63342
*:9003
),但我看不到如何在第二个端口上指定主机。即使如此,对于其他一些应用程序来说,这并不重要,我可以使用
*
主机连接到端口(不是所有东西,但仍然如此)。

如果有影响,我正在尝试建立从我的容器到 PhpStorm 的 Xdebug 连接。

我确信只有 PHPStorm 监听该端口,我尝试设置一个不同的端口 - 最终结果相同。我不会从 Docker 公开端口。我知道,区别就在这里。问题是 Netcat 没有返回任何输出,退出代码是

1
但它不会立即返回,而是在等待某些内容。

您能否告知为什么会发生这种情况以及如何解决该问题?

docker phpstorm xdebug
1个回答
0
投票

在我的特定情况下,VPN 协议阻止了连接。我不知道如何、为什么以及如何调试它,但最后,我改变了协议,一切都开始变得有魅力。

我得到的唯一提示是从另一个应用程序启用端口侦听器,例如:

nc -l 900

你看,我这里也无法连接。

© www.soinside.com 2019 - 2024. All rights reserved.