解决gitlab配置Webhooks,提示 Invalid url given的问题

这个错误 Invalid url given 不是网络连接错误 (比如 "Connection timed out" 或 "Connection refused")。这是一个验证错误

这意味着 GitLab 在你保存 Webhook 设置的那一刻,就对你输入的 URL 进行了检查,并认为它是一个"不合法"或"不允许"的地址,因此拒绝保存。

核心原因在于:GitLab 为了安全,默认禁止 Webhooks 连接到它所在的本地网络地址(包括 127.0.0.1, 172.17.0.1, 192.168.x.x 等私有 IP 地址)。

这是一种重要的安全机制,用于防止 服务器端请求伪造 (Server-Side Request Forgery, SSRF) 攻击。如果没有这个限制,恶意用户就可以利用 Webhook 功能,让 GitLab 服务器去攻击和扫描 GitLab 自己内部网络中的其他服务。

修改 GitLab 管理设置,允许本地网络请求(推荐)

你需要以管理员身份登录 GitLab,并修改系统设置,明确告诉 GitLab 允许向本地网络发送 Webhooks。

步骤:

  1. 使用 管理员账号 (通常是 root) 登录你的 GitLab 实例。
  2. 导航到管理中心:点击左上角的菜单图标 (☰) -> Admin
  3. 在左侧菜单中,找到 Settings -> Network
  4. 展开 Outbound requests (出站请求) 部分。
  5. 你会看到一个关键的复选框:Allow requests to the local network from web hooks and services (允许来自 Webhook 和服务的对本地网络的请求)。
  6. 勾选 这个复选框。
  7. (更精细的控制) 如果你不想完全放开,也可以不勾选上面的复选框,而是在下方的 "Local IP addresses and domain names that hooks and services can access" 文本框中,将 Jenkins 的地址加入白名单。你可以添加:
    • 172.17.0.1 (只允许这个 IP)
    • 172.17.0.0/16 (允许整个 Docker 默认网段)
  8. 点击 Save changes

完成以上设置后,GitLab 的安全策略就更新了。现在你再回到你的项目 Webhook 配置页面,重新输入发现可以了。

相关推荐
旧梦星轨16 小时前
Git Flow 工作流实践
git·gitee·gitlab·github
旧梦星轨19 小时前
Github Flow 与 Gitlab Flow工作流实践解读
gitlab·github
夹锌饼干3 天前
notepad++ 批量选中行尾 多行编辑行尾 选中行尾
notepad++
极小狐4 天前
干掉流水线里的长期密钥:用 OIDC 让 CI/CD 与云以临时凭证对接
microsoft·ci/cd·gitlab·devops·ci·cd·oidc
snow@li4 天前
服务器运维:阿里云安装软件gitlab/智能体协助安装/智能体协同运维
运维·gitlab
小疯仔4 天前
轨迹在地图上“漂“了 500 米?一文吃透 WGS-84→GCJ-02 坐标转换引擎(GPX→JSON 实战源码剖析)
小程序·json·notepad++
极小狐5 天前
CI 流水线提速实战:缓存设计与依赖代理的工程实践
缓存·ci/cd·gitlab·devops
DevOps老兵6 天前
AI Infra实战11:模型部署Pipeline——CI/CD自动化
人工智能·ci/cd·ai·自动化·gitlab
极小狐6 天前
从复制粘贴到可复用组件:极狐GitLab CI/CD 组件目录实战
java·ci/cd·gitlab·devops·组件化
极小狐6 天前
用 Flow 编排 Agent 智能体:极狐GitLab Duo 自定义工作流实战
ai·gitlab·agent·devops·flow·duo