在 VSCode 远程容器中指定转发端口的监听地址 0.0.0.0

Alv*_*ung 21 vscode-remote

我正在使用 VSCode 远程容器扩展在 docker 容器内进行开发。我在容器内启动一个服务器,该服务器侦听端口 3342,并希望使用同一网络中的其他设备访问该网页。

我在“端口”选项卡中转发端口 3342,并且可以使用localhost:3342和在主机操作系统中打开网页127.0.0.1:3342,但在使用本地 IP 地址时失败10.10.11.90:3342

我检查了主机操作系统中的监听端口:

> sudo lsof -nP -iTCP:3342 | grep LISTEN
Code\x20H 4181 alvin   27u  IPv4 0x65c113c13860c1b7      0t0  TCP 127.0.0.1:3342 (LISTEN)
Run Code Online (Sandbox Code Playgroud)

看来 VSCode 只在监听127.0.0.1

有没有办法让我告诉 VSCode 监听,0.0.0.0以便它接受来自所有网络接口的请求?


我的配置:

  • 操作系统:macOS 10.15.7
  • VS代码:1.57.0
  • VSCode 远程容器扩展:0.183.0

Oli*_*rre 39

在 VSCode 设置中,设置为“所有接口”:

远程:本地端口主机

所有接口

如果设置为“localhost”,devContainers 转发的端口将仅侦听127.0.0.1.

当设置为“allInterfaces”时,它将监听0.0.0.0.

请参阅屏幕截图了解上下文: 在此输入图像描述

  • @AlvinLeung 今天我也遇到了完全相同的问题,它正常工作,然后 VSCode 更新到 1.57.0,但没有。不确定该设置是否因更新或新添加而更改。上面为我解决了这个问题。 (2认同)
  • 这让我免于倦怠 (2认同)
  • 谢谢!解决了我的问题。甚至 ChatGPT 也没有这个答案。StackOverflow 继续存在! (2认同)

Har*_*ryQ 7

对于 Ubuntu 上的 VSCode:1.69.0,转发设置页面不可用。

经验证,我们可以通过修改devcontainer.json添加以下参数来进行allinterface端口转发。

"appPort": ["8107:8107"],
Run Code Online (Sandbox Code Playgroud)

重新启动容器后,可以在工具栏的“端口”选项卡中验证端口转发。

在此输入图像描述

appPort参数可以参考官方的参考资料