You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用Visual Studio Code自动端口转发?问题求助

问题

简述

当Coder CLI在devcontainer内通过xdg-open尝试打开工作区时,Visual Studio Code会拦截该调用并自动转发到错误端口。

项目结构

devcontainer通过Docker Compose构建,配置如下:

docker-compose:
  devcontainer:
    ports:
      - "8080:8080"
  coder:
    ports:
      - "7080:7080"

开发者通过安装在devcontainer内的Coder CLI与Coder服务交互。

问题详情

运行Coder CLI命令打开工作区时,本应访问localhost:7080/some-workspace,但Visual Studio Code的自动端口转发功能会拦截并执行以下操作:

  1. 检测到7080端口已被Coder服务占用
  2. 自动转发到下一个可用端口(7081)
  3. 浏览器被导向localhost:7081/some-workspace
  4. 由于7081端口无监听服务,导致连接失败

在默认设置下,该行为可在Visual Studio Code的ports标签页中看到。

自动转发

令人沮丧的是,即使禁用所有自动转发设置,Visual Studio Code仍会自动创建端口转发,只是标签变为"user forwarded":

用户转发

所有配置尝试均未能阻止该行为。

配置尝试

尝试1:在devcontainer.json文件中添加

"forwardPorts": [],
"portsAttributes": {
    "*": {
        "onAutoForward": "ignore"
    }
}

尝试2:在settings.json文件中添加

"remote.autoForwardPorts": false,
"remote.restoreForwardedPorts": false,
"remote.otherPortsAttributes": {
    "onAutoForward": "ignore"
}

尝试3:在devcontainer.json的customizations下添加

"customizations": {
    "vscode": {
        "settings": {
            "remote.autoForwardPorts": false
        }
    }
}

尝试4:使用socat中继流量

在devcontainer内使用socat将转发的"localhost:7081"流量中继到"coder:7080",仅部分生效,无法支持Coder全部功能。

环境信息

devcontainer通过WSL运行在Windows机器上:

  • Windows版本10.0.22631 Build 22631
  • WSL版本2.7.0.0
  • WSL镜像:Ubuntu 24.04.3 LTS
  • Visual Studio Code版本1.107.1
  • Docker版本29.1.2
求助问题
  1. 是否存在正确的配置方式?
  2. 这是否是需要修复的Bug?
  3. 是否可通过变更使用方式彻底避免该问题?

内容的提问来源于stack exchange,提问作者user32172150

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 18:05:06