关于代码空间网络
默认情况下,您的代码空间有权访问公共 Internet 上的所有资源,包括包管理器、许可证服务器、数据库和云平台 API,但它们无权访问专用网络上的资源。
连接到专用网络上的资源
目前,在 GitHub Codespaces 内访问专用网络上的资源有两种方法。
- 使用 GitHub CLI 扩展将本地计算机配置为远程资源的网关。
- 使用 VPN。
使用 GitHub CLI 扩展访问远程资源
警告:GitHub CLI 扩展为 弃用 且不再受支持。
可以使用 GitHub CLI 扩展在 codespace 和本地计算机之间创建网桥,以便 codespace 可以访问可从计算机访问的任何远程资源。 codespace 使用本地计算机作为网络网关访问这些资源。 有关详细信息,请参阅“使用 GitHub CLI 访问远程资源”。
使用 VPN 访问专用网络后面的资源
作为 GitHub CLI 扩展的替代方法,可以使用 VPN 从 codespace 内访问专用网络后面的资源。
建议使用 OpenVPN 等 VPN工具访问专用网络上的资源。 有关详细信息,请参阅“从 GitHub Codespaces 使用 OpenVPN 客户端”。
还有一些第三方解决方案虽然没有得到 GitHub 的明确认可,但提供了如何与 GitHub Codespaces 集成的示例。
这些第三方解决方案包括:
将代码空间的私有资源列入允许列表
虽然 GitHub 在其 Meta API 上发布多个产品的 IP 范围,但 codespace 的 IP 地址是动态分配的,这意味着 codespace 不能保证每天具有相同的 IP 地址。 有关详细信息,请参阅“元数据的 REST API 终结点”。
如果允许列出整个 IP 范围,则会使用户能够过于宽泛地访问所有 codespace(包括与 codespace 无关的用户),因此,如果启用 IP 允许列表,则禁用 codespace 创建。 有关详细信息,请参阅“管理组织允许的 IP 地址”。
限制对公共互联网的访问
目前,没有办法限制代码空间访问公共互联网,或者限制经过适当身份验证的用户访问转发端口。
有关如何保护 codespace 的详细信息,请参阅“GitHub Codespaces 中的安全性”。