# 连接到专用网络

可以将 GitHub Codespaces 连接到专用网络上的资源，包括包注册表、许可证服务器和本地数据库。

## 关于代码空间网络

默认情况下，您的代码空间有权访问公共 Internet 上的所有资源，包括包管理器、许可证服务器、数据库和云平台 API，但它们无权访问专用网络上的资源。

## 连接到专用网络上的资源

目前，在 GitHub Codespaces 内访问专用网络上的资源有两种方法。

* 使用 GitHub CLI 插件，将您的本地计算机配置为访问远程资源的网关
* 使用 VPN

### 使用 GitHub CLI 扩展访问远程资源

> \[!WARNING]
> GitHub CLI 扩展正在 关闭 并不再受支持。

可以使用 GitHub CLI 扩展在 codespace 和本地计算机之间创建网桥，以便 codespace 可以访问可从计算机访问的任何远程资源。 codespace 使用本地计算机作为网络网关访问这些资源。 有关详细信息，请参阅[使用 GitHub CLI 访问远程资源](https://github.com/github/gh-net#codespaces-network-bridge)。

### 使用 VPN 访问专用网络后面的资源

作为 GitHub CLI 扩展的替代方法，可以使用 VPN 从 codespace 内访问专用网络后面的资源。

建议使用 [OpenVPN](https://openvpn.net/) 等 VPN工具访问专用网络上的资源。 有关详细信息，请参阅[从 GitHub Codespaces 使用 OpenVPN 客户端](https://github.com/codespaces-contrib/codespaces-openvpn)。

还有一些第三方解决方案虽然没有得到 GitHub 的明确认可，但提供了如何与 GitHub Codespaces 集成的示例。

这些第三方解决方案包括：

* [Tailscale](https://tailscale.com/kb/1160/github-codespaces/)

### 将代码空间的私有资源列入允许列表

虽然 GitHub 在其 Meta API 上发布多个产品的 IP 范围，但 codespace 的 IP 地址是动态分配的，这意味着 codespace 不能保证每天具有相同的 IP 地址。 有关详细信息，请参阅“[元数据的 REST API 端点](/zh/rest/meta/meta)”。

如果允许列出整个 IP 范围，则用户能够过于宽泛地访问所有代码空间（包括与您的代码空间无关的用户），为此原因，启用 IP 允许列表时会禁用代码空间创建。 有关详细信息，请参阅“[管理组织允许的 IP 地址](/zh/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#enabling-allowed-ip-addresses)”。

## 限制对公共互联网的访问

目前，没有办法限制代码空间访问公共互联网，或者限制经过适当身份验证的用户访问转发端口。

有关如何保护 codespace 的详细信息，请参阅 [GitHub Codespaces 中的安全性](/zh/codespaces/reference/security-in-github-codespaces)。