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

Jenkins集成GitHub时SMEE客户端覆盖Webhook URL保存失败排查求助

问题:Jenkins GitHub插件无法保存SMEE Webhook URL并提示连通性异常

问题背景

Jenkins(版本2.361.4-jdk11)部署在防火墙后,通过SMEE客户端代理连接公网GitHub。在配置页面设置Webhook URL为https://smee.io/blah(blah为SMEE通道标识)时,点击Apply弹出橙色提示:

看起来https://smee.io/blah未与Jenkins通信。您是否在运行自己的应用?

已验证的连通性

  • 点击Apply后,SMEE服务器收到事件,负载格式:
    "1668551517454":{}
    
  • 同机Docker容器运行的SMEE客户端journald日志显示成功向Jenkins发送POST请求:
    POST http://10.10.1.29:8080/github-webhook/ - 200
    

(10.10.1.29为SMEE客户端与Jenkins所在机器地址)

相关配置

SMEE客户端启动命令:

docker run --name smee-client --restart=on-failure --detach --log-driver=journald deltaprojects/smee-client -u https://smee.io/blah -t http://10.10.1.29:8080/github-webhook/

Jenkins遵循官方Docker文档部署。


可能的原因

1. GitHub插件验证机制与SMEE代理不兼容

GitHub插件保存Webhook URL时,会主动向该URL发送验证请求(通常是GET或特定格式的POST),但SMEE核心作用是转发GitHub的Webhook事件,并非处理Jenkins发起的验证请求:

  • SMEE客户端可能仅转发GitHub标准的Webhook POST事件,忽略Jenkins的验证请求;
  • 即使SMEE转发了验证请求,Jenkins收到后无法识别这是自身发起的验证请求,不会返回插件预期的响应,导致插件判定连通失败。

2. 请求格式/头信息不匹配

Jenkins的验证请求与GitHub Webhook事件的格式、请求头存在差异:

  • SMEE转发时可能未保留Jenkins验证请求的关键头信息;
  • 插件期望的响应格式与Jenkins实际返回的格式不匹配,导致验证逻辑失败。

3. Docker网络隐性隔离

虽然SMEE客户端能访问Jenkins的10.10.1.29:8080,但Jenkins容器内部可能对请求来源、Host头有校验:

  • 请求的Host头为10.10.1.29,而Jenkins配置中可能期望外部域名或特定Host;
  • Docker容器的网络模式(如bridge)导致请求源IP被NAT转换,Jenkins无法正确识别。

日志排查方法

1. 开启Jenkins GitHub插件调试日志

  1. 进入Jenkins后台 → 「Manage Jenkins」→「System Log」→「Add new log recorder」;
  2. 命名为GitHub Webhook Debug,添加以下日志记录器并设置级别为DEBUG:
    • org.jenkinsci.plugins.github
    • org.jenkinsci.plugins.github.webhook
    • com.cloudbees.jenkins.plugins.github_branch_source
  3. 保存后重新尝试配置Webhook,查看调试日志可获取插件发送验证请求、接收响应的完整细节。

2. 查看Jenkins容器内部日志

若journald日志不够详细,直接进入Jenkins容器查看核心日志:

docker exec -it <你的Jenkins容器名称> tail -f /var/log/jenkins/jenkins.log

3. 捕获SMEE转发的请求包

在Jenkins所在机器用tcpdump捕获SMEE客户端发来的请求,验证内容是否符合Jenkins预期:

tcpdump -i any host 10.10.1.29 and port 8080 -A

内容的提问来源于stack exchange,提问作者Rob

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 20:11:27