You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows Server 2012防火墙中白名单GitHub Actions的IP地址?

针对GitHub Actions IP创建Windows Server 2012 SSH防火墙入站规则方案

是的,完全可以基于GitHub官方公布的Actions IP地址范围,创建Windows Server 2012的SSH入站防火墙规则,以此限制仅GitHub Actions环境能访问服务器的SSH端口,进一步提升安全性。

具体操作步骤:

1. 获取GitHub Actions的IP地址段

GitHub会通过官方元数据接口维护Actions的IP范围,你可以用PowerShell快速获取并整理这些IP段:

$metaData = Invoke-RestMethod -Uri "https://api.github.com/meta"
$actionsIps = $metaData.actions

执行后,$actionsIps变量会存储所有GitHub Actions使用的IP段。

2. 创建防火墙入站规则

你可以选择图形界面操作或PowerShell批量创建:

方式一:图形界面操作
  • 打开「Windows防火墙高级设置」→ 「入站规则」→ 「新建规则」
  • 规则类型选择「自定义」,点击下一步
  • 程序选择「特定程序」,找到你的SSH服务程序(如sshd.exe,路径根据实际安装的SSH服务而定),点击下一步
  • 协议选择「TCP」,本地端口填写SSH服务使用的端口(默认22,若已修改则填对应端口),点击下一步
  • 远程IP地址选择「下列IP地址」,将第一步获取的所有Actions IP段逐一添加,点击下一步
  • 操作选择「允许连接」,点击下一步
  • 勾选适用的网络类型(如域、专用,根据服务器环境选择),点击下一步
  • 为规则命名(如「允许GitHub Actions访问SSH」),完成创建
方式二:PowerShell批量创建(高效推荐)

使用PowerShell脚本一键创建规则,适合批量管理IP段:

$metaData = Invoke-RestMethod -Uri "https://api.github.com/meta"
$actionsIps = $metaData.actions
$ruleName = "允许GitHub Actions访问SSH"

# 先删除同名旧规则(如果存在)
Remove-NetFirewallRule -DisplayName $ruleName -ErrorAction SilentlyContinue

# 创建新规则
New-NetFirewallRule -DisplayName $ruleName `
                    -Direction Inbound `
                    -Protocol TCP `
                    -LocalPort 22 ` # 若SSH端口已修改,替换为对应端口
                    -RemoteAddress $actionsIps `
                    -Action Allow `
                    -Enabled True `
                    -Profile Domain,Private # 根据服务器网络环境调整

关键注意事项

  • GitHub的Actions IP范围会不定期更新,建议编写定时脚本(如每周执行一次)同步IP段到防火墙规则,避免IP更新导致Actions无法连接服务器。
  • 确保已禁用SSH密码登录,仅保留密钥认证,结合IP白名单实现双重安全防护。
  • 规则创建完成后,触发一次GitHub Action构建,验证文件上传功能是否正常,确认规则未阻止合法连接。

内容的提问来源于stack exchange,提问作者Martin Kršek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 11:03:33