Skip to main content

代码空间中的转发端口

您可以转发代码空间中的端口以测试和调试应用程序。 还可以管理端口协议,并在组织内或公开共享端口。

注意:

  • 将 GitHub Codespaces 与 JetBrains IDE 结合使用的功能目前为 公共预览版,可能随时更改。
  • 若要在 JetBrains IDE 中处理 Codespace,必须使用 2023.3.* 或 2024.1.* 版本的 JetBrains 网关。

关于转发的端口

通过端口转发,您可以访问在代码空间内运行的 TCP 端口。 例如,如果要在代码空间中的特定端口上运行 Web 应用程序,则可以转发该端口。 这允许您从本地计算机上的浏览器访问应用程序以进行测试和调试。

在 codespace 内运行的应用程序将输出显示到包含本地主机 URL 的终端(例如 http://localhost:PORThttp://127.0.0.1:PORT)时,端口将自动转发。 如果你在浏览器或 Visual Studio Code 中使用 GitHub Codespaces,则终端中的 URL 字符串将转换为一个链接,你可以单击该链接在本地计算机上查看网页。 默认情况下,GitHub Codespaces 使用 HTTP 转发端口。

可以编辑存储库的开发容器配置,以自动转发一个或多个端口。 您还可以手动转发端口、标记转发的端口、与组织成员共享转发的端口、公开共享转发的端口以及将转发的端口添加到代码空间配置中。

注意:组织所有者可以限制公开或在组织内提供转发端口的能力。 有关详细信息,请参阅“限制转发端口的可见性”。

转发端口

您可以手动转发未自动转发的端口。

  1. 在 codespace 中打开终端。

  2. 单击“端口”选项卡。

  3. 在端口列表下,单击“添加端口”。

    “添加端口”按钮的屏幕截图。

  4. 键入端口号或地址,然后按 Enter。

    在新转发端口的端口号字段中输入数字 3000 的屏幕截图。

使用 HTTPS 转发

默认情况下,GitHub Codespaces 使用 HTTP 转发端口,但你可以根据需要更新任何端口以使用 HTTPS。 如果将具有公共可见性的端口更新为使用 HTTPS,则该端口的可见性将自动更改为专用。

  1. 在 codespace 中打开终端。

  2. 单击“端口”选项卡。

  3. 右键单击要更新的端口,然后将鼠标悬停在“更改端口协议”上。

    转发端口弹出菜单的屏幕截图,子菜单中选中了“更改端口协议”选项和“HTTPS”。

  4. 选择此端口所需的协议。 您选择的协议将在代码空间的有效期内被记住用于此端口。

共享端口

注意:如果你的组织使用 GitHub Team 或 GitHub Enterprise Cloud,则只能将端口专用于组织。

如果要与其他人共享转发的端口,则可以将该端口专用于您的组织,也可以将该端口设为公共端口。 将端口设为组织专用后,组织中具有该端口 URL 的任何人都可以查看正在运行的应用程序。 将端口设为公共端口后,知道 URL 和端口号的任何人都可以查看正在运行的应用程序,而无需进行身份验证。

注意:你选择的端口可见性选项可能会受到为组织配置的策略的限制。 有关详细信息,请参阅“限制转发端口的可见性”。

  1. 在 codespace 中打开终端。

  2. 单击“端口”选项卡。

  3. 右键单击要共享的端口,单击“端口可见性”,然后单击“专用于组织”或“公共” 。

    转发端口弹出菜单的屏幕截图,子菜单中选择了“端口可见性”选项和“专用”。

  4. 在端口的本地地址右侧,单击复制图标。

    “端口”面板的屏幕截图。 复制图标(复制转发端口的 URL)以橙色边框突出显示。

  5. 将复制的 URL 发送给您想要与其共享端口的人。

使用命令行工具和 REST 客户端访问端口

转发端口时,应用程序可通过 URL https://CODESPACENAME-PORT.app.github.dev 访问。 例如 https://monalisa-hot-potato-vrpqrxxrx7x2rxx-4000.app.github.dev。 如果从 VS Code 桌面应用程序转发专用端口,则应用程序也可通过 localhost 端口(如 127.0.0.1:4000)访问。

若要使用 REST 客户端(如 Postman)或命令行工具(如 curl)访问应用程序,如果使用的是 localhost 端口,或者访问远程域中的公共端口,则无需进行身份验证。 但是,若要连接到远程域中的专用端口,必须使用请求中的 GITHUB_TOKEN 访问令牌进行身份验证。

注意:GITHUB_TOKEN 会在你启动 codespace 时自动创建,并在 codespace 会话期间保持不变。 如果停止并重启 codespace,将生成新的 GITHUB_TOKEN

查找要连接到的地址

  1. 在 codespace 中打开终端。

  2. 单击“端口”选项卡。随即会列出已转发的所有端口。

  3. 右键单击要连接到的端口,然后单击“复制本地地址”。

    转发端口弹出菜单的屏幕截图,其中用橙色边框标出了“复制本地地址”选项。

  4. 将复制的地址粘贴到某个位置供以后使用。

查找 GITHUB_TOKEN

  1. 在 codespace 的终端中输入 echo $GITHUB_TOKEN

    令牌为以 ghu_ 开头的字符串。

  2. 复制令牌。

    重要事项:请勿与任何人共享此访问令牌。

使用 curl 访问转发的端口

在本地计算机的终端中输入:

curl ADDRESS -H "X-Github-Token: TOKEN"

ADDRESSTOKEN 替换为之前复制的值。

使用 Postman 访问转发的端口

  1. 打开 Postman。

  2. 创建新的 GET 请求。

  3. 粘贴之前复制的地址作为请求 URL。

    转发端口的 URL 的屏幕截图,该 URL 作为 GET 请求 URL 粘贴到 Postman 中。 突出显示 URL。

  4. 在“标头”选项卡中,创建一个新项,其中密钥为“X-Github-Token”,值是之前复制的 GITHUB_TOKEN

    虚拟 GITHUB_TOKEN 的屏幕截图,该值作为 X-GitHub-Token 密钥的值粘贴到 Postman 中。 突出显示了键和值。

  5. 单击“发送”。

自动转发端口

你可以将转发的端口添加到存储库的 GitHub Codespaces 配置中,以便为从存储库创建的所有 codespace 自动转发端口。 更新配置后,必须重建任何以前创建的代码空间以应用更改。 有关开发容器配置文件的详细信息,请参阅“开发容器简介”。

  1. 在 codespace 中,打开要更新的开发容器配置文件。 通常此文件为 .devcontainer/devcontainer.json

  2. 添加 forwardPorts 属性。

    "forwardPorts": [NUMBER],
    

    NUMBER 替换为要转发的端口号。 这可以是以逗号分隔的端口号列表。

  3. 保存文件。

标记端口

在浏览器或 VS Code 桌面应用程序中打开 codespace 时,可以标记转发的端口,以便在列表中更容易地识别它。

  1. 在 codespace 中打开终端。

  2. 单击“端口”选项卡。

  3. 右键单击要标记的端口,然后单击“设置端口标签”。

    转发端口弹出菜单的屏幕截图,其中用橙色边框突出显示了“设置端口标签”选项。

  4. 键入端口的标签,然后按 Enter。

    屏幕截图显示作为转发端口自定义标签添加的标签“暂存”。

自动标记转发的端口

可以标记端口,并将更改写入存储库的开发容器配置文件。 如果使用 forwardPorts 属性对自动转发的端口执行此操作,则对于使用该配置文件从存储库创建的所有未来 codespace,该标签将自动应用于该转发端口。

  1. 在 codespace 中打开终端。

  2. 单击“端口”选项卡。

  3. 右键单击要将其标签属性添加到 codespace 配置的端口,然后单击“设置标签并更新 devcontainer.json”。

    转发端口弹出菜单的屏幕截图,其中“设置标签和更新 devcontainer.json”选项以橙色边框突出显示。

  4. 键入端口的标签,然后按 Enter。

    屏幕截图显示作为转发端口自定义标签添加的标签“暂存”。

  5. 如果存储库有多个开发容器配置文件,系统会提示选择要更新的文件。

    将更新开发容器配置文件,以在 portsAttributes 属性中包含新标签。 例如:

    // Use 'forwardPorts' to make a list of ports inside the container available locally.
    "forwardPorts": [3333, 4444],
    
    "portsAttributes": {
      "3333": {
        "label": "app-standard-preview"
      },
      "4444": {
        "label": "app-pro-preview"
      }
    }
    

在 codespace 内运行的应用程序将输出显示到包含本地主机 URL 的终端(例如 http://localhost:PORThttp://127.0.0.1:PORT)时,端口将自动转发。 如果你在浏览器或 Visual Studio Code 中使用 GitHub Codespaces,则终端中的 URL 字符串将转换为一个链接,你可以单击该链接在本地计算机上查看网页。 默认情况下,GitHub Codespaces 使用 HTTP 转发端口。

可以编辑存储库的开发容器配置,以自动转发一个或多个端口。 您还可以手动转发端口、标记转发的端口、与组织成员共享转发的端口、公开共享转发的端口以及将转发的端口添加到代码空间配置中。

注意:组织所有者可以限制公开或在组织内提供转发端口的能力。 有关详细信息,请参阅“限制转发端口的可见性”。

转发端口

您可以手动转发未自动转发的端口。

  1. 在 codespace 中打开终端。

  2. 单击“端口”选项卡。

  3. 在端口列表下,单击“添加端口”。

    “添加端口”按钮的屏幕截图。

  4. 键入端口号或地址,然后按 Enter。

    在新转发端口的端口号字段中输入数字 3000 的屏幕截图。

共享端口

注意:如果你的组织使用 GitHub Team 或 GitHub Enterprise Cloud,则只能将端口专用于组织。

如果要与其他人共享转发的端口,则可以将该端口专用于您的组织,也可以将该端口设为公共端口。 将端口设为组织专用后,组织中具有该端口 URL 的任何人都可以查看正在运行的应用程序。 将端口设为公共端口后,知道 URL 和端口号的任何人都可以查看正在运行的应用程序,而无需进行身份验证。

注意:你选择的端口可见性选项可能会受到为组织配置的策略的限制。 有关详细信息,请参阅“限制转发端口的可见性”。

  1. 在 codespace 中打开终端。

  2. 单击“端口”选项卡。

  3. 右键单击要共享的端口,单击“端口可见性”,然后单击“专用于组织”或“公共” 。

    转发端口弹出菜单的屏幕截图,子菜单中选择了“端口可见性”选项和“专用”。

  4. 在端口的本地地址右侧,单击复制图标。

    “端口”面板的屏幕截图。 复制图标(复制转发端口的 URL)以橙色边框突出显示。

  5. 将复制的 URL 发送给您想要与其共享端口的人。

使用命令行工具和 REST 客户端访问端口

转发端口时,应用程序可通过 URL https://CODESPACENAME-PORT.app.github.dev 访问。 例如 https://monalisa-hot-potato-vrpqrxxrx7x2rxx-4000.app.github.dev。 如果从 VS Code 桌面应用程序转发专用端口,则应用程序也可通过 localhost 端口(如 127.0.0.1:4000)访问。

若要使用 REST 客户端(如 Postman)或命令行工具(如 curl)访问应用程序,如果使用的是 localhost 端口,或者访问远程域中的公共端口,则无需进行身份验证。 但是,若要连接到远程域中的专用端口,必须使用请求中的 GITHUB_TOKEN 访问令牌进行身份验证。

注意:GITHUB_TOKEN 会在你启动 codespace 时自动创建,并在 codespace 会话期间保持不变。 如果停止并重启 codespace,将生成新的 GITHUB_TOKEN

查找要连接到的地址

  1. 在 codespace 中打开终端。

  2. 单击“端口”选项卡。随即会列出已转发的所有端口。

  3. 右键单击要连接到的端口,然后单击“复制本地地址”。

    转发端口弹出菜单的屏幕截图,其中用橙色边框标出了“复制本地地址”选项。

  4. 将复制的地址粘贴到某个位置供以后使用。

查找 GITHUB_TOKEN

  1. 在 codespace 的终端中输入 echo $GITHUB_TOKEN

    令牌为以 ghu_ 开头的字符串。

  2. 复制令牌。

    重要事项:请勿与任何人共享此访问令牌。

使用 curl 访问转发的端口

在本地计算机的终端中输入:

curl ADDRESS -H "X-Github-Token: TOKEN"

ADDRESSTOKEN 替换为之前复制的值。

使用 Postman 访问转发的端口

  1. 打开 Postman。

  2. 创建新的 GET 请求。

  3. 粘贴之前复制的地址作为请求 URL。

    转发端口的 URL 的屏幕截图,该 URL 作为 GET 请求 URL 粘贴到 Postman 中。 突出显示 URL。

  4. 在“标头”选项卡中,创建一个新项,其中密钥为“X-Github-Token”,值是之前复制的 GITHUB_TOKEN

    虚拟 GITHUB_TOKEN 的屏幕截图,该值作为 X-GitHub-Token 密钥的值粘贴到 Postman 中。 突出显示了键和值。

  5. 单击“发送”。

自动转发端口

你可以将转发的端口添加到存储库的 GitHub Codespaces 配置中,以便为从存储库创建的所有 codespace 自动转发端口。 更新配置后,必须重建任何以前创建的代码空间以应用更改。 有关开发容器配置文件的详细信息,请参阅“开发容器简介”。

  1. 在 codespace 中,打开要更新的开发容器配置文件。 通常此文件为 .devcontainer/devcontainer.json

  2. 添加 forwardPorts 属性。

    "forwardPorts": [NUMBER],
    

    NUMBER 替换为要转发的端口号。 这可以是以逗号分隔的端口号列表。

  3. 保存文件。

标记端口

在浏览器或 VS Code 桌面应用程序中打开 codespace 时,可以标记转发的端口,以便在列表中更容易地识别它。

  1. 在 codespace 中打开终端。

  2. 单击“端口”选项卡。

  3. 右键单击要标记的端口,然后单击“设置端口标签”。

    转发端口弹出菜单的屏幕截图,其中用橙色边框突出显示了“设置端口标签”选项。

  4. 键入端口的标签,然后按 Enter。

    屏幕截图显示作为转发端口自定义标签添加的标签“暂存”。

自动标记转发的端口

可以标记端口,并将更改写入存储库的开发容器配置文件。 如果使用 forwardPorts 属性对自动转发的端口执行此操作,则对于使用该配置文件从存储库创建的所有未来 codespace,该标签将自动应用于该转发端口。

  1. 在 codespace 中打开终端。

  2. 单击“端口”选项卡。

  3. 右键单击要将其标签属性添加到 codespace 配置的端口,然后单击“设置标签并更新 devcontainer.json”。

    转发端口弹出菜单的屏幕截图,其中“设置标签和更新 devcontainer.json”选项以橙色边框突出显示。

  4. 键入端口的标签,然后按 Enter。

    屏幕截图显示作为转发端口自定义标签添加的标签“暂存”。

  5. 如果存储库有多个开发容器配置文件,系统会提示选择要更新的文件。

    将更新开发容器配置文件,以在 portsAttributes 属性中包含新标签。 例如:

    // Use 'forwardPorts' to make a list of ports inside the container available locally.
    "forwardPorts": [3333, 4444],
    
    "portsAttributes": {
      "3333": {
        "label": "app-standard-preview"
      },
      "4444": {
        "label": "app-pro-preview"
      }
    }
    

若要详细了解 GitHub CLI,请参阅“关于 GitHub CLI”。

若要转发端口,请使用 gh codespace ports forward 子命令。 将 codespace-port:local-port 替换为要连接的远程端口和本地端口。 输入命令后,从显示的代码空间列表中进行选择。

gh codespace ports forward CODESPACE-PORT:LOCAL-PORT

有关此命令的详细信息,请参阅 GitHub CLI 手册

若要查看转发端口的详细信息,请输入 gh codespace ports 并选择 codespace。

共享端口

注意:如果你的组织使用 GitHub Team 或 GitHub Enterprise Cloud,则只能将端口专用于组织。

如果要与其他人共享转发的端口,则可以将该端口专用于您的组织,也可以将该端口设为公共端口。 将端口设为组织专用后,组织中具有该端口 URL 的任何人都可以查看正在运行的应用程序。 将端口设为公共端口后,知道 URL 和端口号的任何人都可以查看正在运行的应用程序,而无需进行身份验证。

注意:你选择的端口可见性选项可能会受到为组织配置的策略的限制。 有关详细信息,请参阅“限制转发端口的可见性”。

若要更改转发端口的可见性,请使用 gh codespace ports visibility 子命令。 有三种可见性设置:

  • private - 仅对你可见。 这是转发端口时的默认设置。
  • org - 对拥有存储库的组织成员可见。
  • public - 对知道 URL 和端口号的任何人可见。

codespace-port 替换为转发的端口号。 将 setting 替换为 privateorgpublic。 输入命令后,从显示的代码空间列表中进行选择。

gh codespace ports visibility CODESPACE-PORT:SETTINGS

您可以使用一个命令设置多个端口的可见性。 例如:

gh codespace ports visibility 80:private 3000:public 3306:org

有关此命令的详细信息,请参阅 GitHub CLI 手册

使用命令行工具和 REST 客户端访问端口

转发端口时,应用程序可通过 URL https://CODESPACENAME-PORT.app.github.dev 访问。 例如 https://monalisa-hot-potato-vrpqrxxrx7x2rxx-4000.app.github.dev。 如果从 VS Code 桌面应用程序转发专用端口,则应用程序也可通过 localhost 端口(如 127.0.0.1:4000)访问。

若要使用 REST 客户端(如 Postman)或命令行工具(如 curl)访问应用程序,如果使用的是 localhost 端口,或者访问远程域中的公共端口,则无需进行身份验证。 但是,若要连接到远程域中的专用端口,必须使用请求中的 GITHUB_TOKEN 访问令牌进行身份验证。

注意:GITHUB_TOKEN 会在你启动 codespace 时自动创建,并在 codespace 会话期间保持不变。 如果停止并重启 codespace,将生成新的 GITHUB_TOKEN

查找要连接到的地址

若要查找转发端口的地址,请输入 gh codespace ports。 如果有多个 codespace,请从显示的列表中选择相应的 codespace。

复制地址并将其粘贴到某个位置供以后使用。

查找 GITHUB_TOKEN

  1. 为 codespace 启动 SSH 会话。

    gh codespace ssh
    
  2. 如果有多个 codespace,请从显示的列表中选择相应的 codespace。

  3. 显示 GITHUB_TOKEN

    echo $GITHUB_TOKEN
    

    令牌为以 ghu_ 开头的字符串。

  4. 复制令牌。

    重要事项:请勿与任何人共享此访问令牌。

  5. 退出 SSH 会话。

    exit
    

使用 curl 访问转发的端口

在本地计算机的终端中输入:

curl ADDRESS -H "X-Github-Token: TOKEN"

ADDRESSTOKEN 替换为之前复制的值。

使用 Postman 访问转发的端口

  1. 打开 Postman。

  2. 创建新的 GET 请求。

  3. 粘贴之前复制的地址作为请求 URL。

    转发端口的 URL 的屏幕截图,该 URL 作为 GET 请求 URL 粘贴到 Postman 中。 突出显示 URL。

  4. 在“标头”选项卡中,创建一个新项,其中密钥为“X-Github-Token”,值是之前复制的 GITHUB_TOKEN

    虚拟 GITHUB_TOKEN 的屏幕截图,该值作为 X-GitHub-Token 密钥的值粘贴到 Postman 中。 突出显示了键和值。

  5. 单击“发送”。

自动转发端口

你可以将转发的端口添加到存储库的 GitHub Codespaces 配置中,以便为从存储库创建的所有 codespace 自动转发端口。 更新配置后,必须重建任何以前创建的代码空间以应用更改。 有关开发容器配置文件的详细信息,请参阅“开发容器简介”。

  1. 在 codespace 中,打开要更新的开发容器配置文件。 通常此文件为 .devcontainer/devcontainer.json

  2. 添加 forwardPorts 属性。

    "forwardPorts": [NUMBER],
    

    NUMBER 替换为要转发的端口号。 这可以是以逗号分隔的端口号列表。

  3. 保存文件。

标记端口

在浏览器或 VS Code 桌面应用程序中打开 codespace 时,可以标记转发的端口,以便在列表中更容易地识别它。

  1. 在 codespace 中打开终端。

  2. 单击“端口”选项卡。

  3. 右键单击要标记的端口,然后单击“设置端口标签”。

    转发端口弹出菜单的屏幕截图,其中用橙色边框突出显示了“设置端口标签”选项。

  4. 键入端口的标签,然后按 Enter。

    屏幕截图显示作为转发端口自定义标签添加的标签“暂存”。

自动标记转发的端口

可以标记端口,并将更改写入存储库的开发容器配置文件。 如果使用 forwardPorts 属性对自动转发的端口执行此操作,则对于使用该配置文件从存储库创建的所有未来 codespace,该标签将自动应用于该转发端口。

  1. 在 codespace 中打开终端。

  2. 单击“端口”选项卡。

  3. 右键单击要将其标签属性添加到 codespace 配置的端口,然后单击“设置标签并更新 devcontainer.json”。

    转发端口弹出菜单的屏幕截图,其中“设置标签和更新 devcontainer.json”选项以橙色边框突出显示。

  4. 键入端口的标签,然后按 Enter。

    屏幕截图显示作为转发端口自定义标签添加的标签“暂存”。

  5. 如果存储库有多个开发容器配置文件,系统会提示选择要更新的文件。

    将更新开发容器配置文件,以在 portsAttributes 属性中包含新标签。 例如:

    // Use 'forwardPorts' to make a list of ports inside the container available locally.
    "forwardPorts": [3333, 4444],
    
    "portsAttributes": {
      "3333": {
        "label": "app-standard-preview"
      },
      "4444": {
        "label": "app-pro-preview"
      }
    }
    

在命令行上查看端口标签

列出 codespace 的转发端口时,可以看到端口标签。 为此,请使用 gh codespace ports 命令,然后选择 codespace。

转发端口

若要了解如何将 codespace 中的端口转发到本地计算机上的端口的信息,请参阅 JetBrains 文档中“安全模型”一文的“端口转发”部分。

或者,可以使用 GitHub CLI 转发端口。 有关更多信息,请单击此页面顶部的“GitHub CLI”选项卡。