注意
防火墙配置已迁移至 Copilot 云代理设置页面。之前保存为 Actions 变量的配置将在该页面保留。
概览
默认情况下,Copilot 对互联网的访问受到防火墙限制。
限制对互联网的访问有助于管理数据泄露风险,因为 Copilot 的意外行为或对其提供的恶意指令,可能导致代码或其他敏感信息泄露到远程位置。
防火墙始终允许访问 Copilot 用于与 GitHub 交互的若干主机。默认情况下,还启用了推荐的白名单,以允许代理下载依赖项。
如果 Copilot 试图发起被防火墙阻止的请求,会在拉取请求正文中添加警告(如果 Copilot 首次创建拉取请求)或在评论中添加警告(如果 Copilot 响应拉取请求的评论)。警告会显示被阻止的地址以及尝试发出请求的命令。

限制
代理防火墙存在重要限制,影响其安全覆盖范围。
- 仅适用于由代理启动的进程:防火墙仅适用于通过其 Bash 工具由代理启动的进程。不适用于模型上下文协议(MCP)服务器或在配置的 Copilot 设置步骤中启动的进程。
- 仅在 GitHub Actions 设备内生效:防火墙仅在 GitHub Actions 设备环境中运行。不适用于在此环境之外运行的进程。
- 可能被绕过:复杂的攻击可能绕过防火墙,进而允许未授权的网络访问和数据泄露。
这些限制意味着防火墙为常见场景提供了一层保护,但不应被视为完整的安全解决方案。
理解推荐的防火墙白名单
默认启用的推荐白名单允许访问以下内容
- 常见操作系统软件包仓库(例如 Debian、Ubuntu、Red Hat)。
- 常见容器注册表(例如 Docker Hub、Azure Container Registry、AWS Elastic Container Registry)。
- 流行编程语言使用的软件包注册表(C#、Dart、Go、Haskell、Java、JavaScript、Perl、PHP、Python、Ruby、Rust、Swift)。
- 常见证书颁发机构(用于验证 SSL 证书)。
- Playwright MCP 服务器用于下载网页浏览器的主机。
要查看推荐白名单中包含的完整主机列表,请参见 Copilot 白名单参考。
在组织层面配置防火墙
组织所有者可以在组织层面配置所有防火墙设置。要访问防火墙设置
-
在 GitHub 右上角,点击你的个人头像,然后点击 组织。
-
点击即可选择组织。
-
在你的组织名称下,点击 设置。如果看不到 “设置” 选项卡,请选择 更多 下拉菜单,然后点击 设置。

-
在侧边栏,“代码、规划和自动化” 下,点击 Copilot,然后点击 云代理。
启用或禁用防火墙
警告
禁用防火墙后,Copilot 将能够连接到任意主机,增加代码或其他敏感信息泄露的风险。
- 在 “Internet access”(互联网访问) 下,将 Enable firewall(启用防火墙)设置为 Enabled(启用)、Disabled(禁用)或 Let repositories decide(让仓库自行决定)(默认)。
启用或禁用推荐白名单
- 在 “Internet access” 下,将 Recommended allowlist(推荐白名单)设置为 Enabled(启用)、Disabled(禁用)或 Let repositories decide(让仓库自行决定)(默认)。
控制仓库是否可以添加自定义白名单规则
默认情况下,仓库管理员可以向防火墙白名单添加自定义条目。组织所有者可以禁用此功能,以防止仓库添加自定义规则。
- 在 “Internet access” 下,将 Allow repository custom rules(允许仓库自定义规则)设置为 Enabled(启用,默认)或 Disabled(禁用)。
管理组织自定义白名单
添加到组织自定义白名单的项目适用于组织内的所有仓库。这些项目在仓库层面无法删除。组织层面的规则与仓库层面的规则会合并生效。
-
在 “Internet access” 下,点击 Organization custom allowlist(组织自定义白名单)。
-
添加您希望包含在白名单中的地址。您可以包括
-
域名(例如
packages.contoso.corp)。流量将被允许访问指定的域以及其所有子域。示例:
packages.contoso.corp将允许流量访问packages.contoso.corp和prod.packages.contoso.corp,但不包括artifacts.contoso.corp。 -
URL(例如
https://packages.contoso.corp/project-1/)。流量仅在指定的协议(https)和主机(packages.contoso.corp)上被允许,并且限制在指定的路径及其子路径内。示例:
https://packages.contoso.corp/project-1/将允许流量访问https://packages.contoso.corp/project-1/和https://packages.contoso.corp/project-1/tags/latest,但不包括https://packages.contoso.corp/project-2、ftp://packages.contoso.corp或https://artifacts.contoso.corp。
-
-
点击 添加规则。
-
验证列表后,点击 保存更改。
在仓库层面配置防火墙
仓库管理员可以在仓库层面配置防火墙设置,包括启用或禁用防火墙、启用或禁用推荐白名单以及管理自定义白名单。根据组织层面的配置,部分设置可能被锁定。
要访问防火墙设置
-
在 GitHub 上,导航至仓库的主页面。
-
在你的仓库名称下,点击 设置。如果看不到 “设置” 选项卡,请选择 更多 下拉菜单,然后点击 设置。

-
在侧边栏的 “Code & automation”(代码与自动化) 部分,点击 Copilot 然后点击 云代理。
启用或禁用防火墙
注意
仅当组织层面的 Enable firewall 设置为 Let repositories decide 时,您才能在仓库层面更改此设置。如果组织层面的设置为 Enabled(启用)或 Disabled(禁用),则无法为单个仓库更改此设置。
- 切换 Enable firewall 设置的开关。
启用或禁用推荐白名单
注意
仅当组织层面的 Recommended allowlist 设置为 Let repositories decide 时,您才能在仓库层面更改此设置。如果组织层面的设置为 Enabled(启用)或 Disabled(禁用),则无法为单个仓库更改此设置。
- 切换 Recommended allowlist 设置的开关。
管理自定义白名单
注意
仅当组织层面的 Allow repository custom rules 设置为 Enabled 时,您才能在仓库层面添加自定义白名单规则。有关更多信息,请参阅 控制仓库是否可以添加自定义白名单规则。
-
点击 自定义白名单。
-
添加您希望包含在白名单中的地址。您可以包括
-
域名(例如
packages.contoso.corp)。流量将被允许访问指定的域以及其所有子域。示例:
packages.contoso.corp将允许流量访问packages.contoso.corp和prod.packages.contoso.corp,但不包括artifacts.contoso.corp。 -
URL(例如
https://packages.contoso.corp/project-1/)。流量仅在指定的协议(https)和主机(packages.contoso.corp)上被允许,并且限制在指定的路径及其子路径内。示例:
https://packages.contoso.corp/project-1/将允许流量访问https://packages.contoso.corp/project-1/和https://packages.contoso.corp/project-1/tags/latest,但不包括https://packages.contoso.corp/project-2、ftp://packages.contoso.corp或https://artifacts.contoso.corp。
-
-
点击 添加规则。
-
验证列表后,点击 保存更改。