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

Jenkins中SVN手动构建正常但SCM轮询报Unknown host错误

碰到过好多次这种情况了——手动构建能拉SVN代码,但SCM轮询一触发就报unknown host,核心原因基本都是Jenkins服务运行的上下文和你手动操作时的环境不匹配,给你几个精准的排查和解决方向:

1. 先查Jenkins运行用户的DNS解析能力

你手动操作时用的是自己的登录用户,DNS解析走的是当前用户的配置,但Jenkins一般是用系统用户(比如jenkins)后台跑的,这个用户可能没配置正确的DNS,或者压根解析不了SVN服务器的域名:

  • 登录Jenkins所在服务器,切换到Jenkins运行用户:
    su - jenkins
    
    (Windows系统的话,得用runas /user:jenkins cmd或者去服务管理器里看Jenkins的运行用户)
  • 接着ping SVN服务器的域名:
    ping your-svn-domain.com
    
    如果ping不通,直接在服务器的/etc/hosts(Windows是C:\Windows\System32\drivers\etc\hosts)里添加SVN域名和对应IP的映射,就能解决DNS解析问题。

2. 检查代理配置的差异

如果你手动拉代码时用了代理,但Jenkins服务的环境里没配置同样的代理,轮询时就会连不上SVN:

  • 进Jenkins管理后台 → 系统管理 → 系统设置,找到「代理服务器」板块,确认配置的代理和你手动操作时用的完全一致
  • 另外也可以检查Jenkins运行用户的环境变量,看有没有HTTP_PROXY/HTTPS_PROXY这些代理变量,和你自己用户的环境变量对比补全

3. 对比SVN客户端的配置文件

手动操作时你用的是自己用户的SVN配置(比如~/.subversion/servers),但Jenkins用的是运行用户的SVN配置,两者可能不一样:

  • 切换到Jenkins用户后,查看~/.subversion/servers文件,重点看针对这个SVN服务器的代理、SSL等特殊配置,和你自己用户的配置对齐
  • Windows系统下,Jenkins用户的SVN配置在C:\Users\jenkins\.subversion目录里

4. 确认凭据的加载权限

虽然手动构建用凭据成功了,但SCM轮询时Jenkins可能没正确加载到凭据,或者凭据的权限有问题:

  • 进入你的Jenkins任务配置页面,重新保存一遍凭据,确保凭据是全局可用或者该任务有权限访问的
  • 可以尝试重新添加一次SVN凭据,选对类型(比如用户名密码或SSH密钥),避免凭据配置有隐性问题

5. 排查网络防火墙策略

这个概率相对低,但也可以排查下:手动构建时你的IP在SVN服务器的允许列表里,但Jenkins服务器的IP没被允许?

  • 切换到Jenkins用户,用svn info http://your-svn-url命令测试,如果这个命令失败,直接联系SVN服务器管理员,把Jenkins服务器的IP加入访问白名单

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:22:09