【问题标题】:How does VS Code automatically detect port allocated by the command and start port forwarding it when working remotely?VS Code如何在远程工作时自动检测命令分配的端口并启动端口转发?
【发布时间】:2022-12-04 10:24:32
【问题描述】:

我知道这个问题看起来类似于VSCode [Remote Development] [Forward Port] work?,但事实并非如此。

当我启动一个在随机端口上启动网络服务器的命令时(并打印出 url 来访问它),

VS Code 自动检测新分配的端口并开始将该端口转发到我的主机。

这是怎么发生的? VS Code 是否通过当前命令检查新分配的端口?如果是这样,这个 shell 脚本是什么样子的?

【问题讨论】:

    标签: visual-studio-code ssh portforwarding ssh-tunnel


    【解决方案1】:

    这已由 VSCode 开发人员在 github here 上回答。

    总而言之,VSCode 会主动查看 proc 文件系统。 /proc 目录并检测分配的端口,然后开始自动转发它。

    【讨论】:

    • 在 Mac 和 Windows 上,它使用不同的方式:它查看本地主机 url 的终端输出。例如,如果您在终端中运行echo https://localhost:8822/,它将自动转发端口 8822(此信息在答案中提供的 github 链接中找到,但答案没有提及,似乎很重要)
    • 它似乎不遵守协议,它为我尝试http://localhost而不是https
    【解决方案2】:

    假设 remote.autoForwardPorts 设置为 true,这取决于运行 VS Code 的操作系统。

    在 Windows 和 Mac 遥控器上,它从终端输出中获取(remote.autoForwardPortsSource 下的 output 选项):

    笔记:在 Windows 和 Mac 遥控器上,选择 process 选项无效,将使用 output

    在其他操作系统远程上,如果选择了 process 选项,VS Code 会监视以包含的端口启动的进程,并自动为这些转发端口:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-24
      • 2021-08-21
      • 1970-01-01
      • 1970-01-01
      • 2015-11-04
      相关资源
      最近更新 更多