关于代码空间网络
默认情况下,您的代码空间有权访问公共 Internet 上的所有资源,包括包管理器、许可证服务器、数据库和云平台 API,但它们无权访问专用网络上的资源。
连接到专用网络上的资源
目前,在 GitHub Codespaces 内访问专用网络上的资源有两种方法。
- 使用 GitHub CLI 扩展将本地计算机配置为远程资源的网关
- 使用 VPN
使用 GitHub CLI 扩展访问远程资源
Warning
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 中的安全性。