Jenkins服务器无法通过主机名(IP地址)访问。

23

我使用homebrew在我的Mac OS X上安装了jenkins,并通过http://localhost:8080 或者 http://127.0.0.1:8080 工作正常。但是我无法通过主机名或IP地址访问jenkins实例。

 1. http://myjenkinshost.local:8080
 2. http://192.168.0.100:8080

即使从本地计算机(jenkins主机本身)也无法访问这两个链接。 同时,命令ping 192.168.0.100ping myjenkinshost.local运行良好。

8个回答

27

结果发现启动代理只配置为监听127.0.0.1(或本地主机)。 要修复此问题,请编辑Jenkins代理的plist文件:

nano /Users/admin/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

并将httpListenAddress修改为0.0.0.0,而不是127.0.0.1

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>homebrew.mxcl.jenkins</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/bin/java</string>
      <string>-Dmail.smtp.starttls.enable=true</string>
      <string>-jar</string>
      <string>/usr/local/opt/jenkins/libexec/jenkins.war</string>
      <string>--httpListenAddress=0.0.0.0</string>
      <string>--httpPort=8080</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

你好。我从 Jenkins 的官网下载并安装了 OSX 版本的软件包,但是无法找到 plist 文件的位置。你有任何想法吗?这个文件在已安装的软件包版本中可能在哪里呢? - Jono
1
默认值为0.0.0.0,因此您也可以直接删除该行。 - Sean
9
原文:turns out that this file only exists at run time. The config file that is actually used is located at /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist。 翻译:原来这个文件只在运行时存在。实际使用的配置文件位于/usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist - Mark Norgren
Jonney,官方Jenkins Wiki提到了如何做到这一点。https://wiki.jenkins.io/display/JENKINS/Thanks+for+using+OSX+Installer。查找“启动/停止服务”。 - swooby
2
如果您使用Homebrew,请参考@jinjorge的答案。在使用brew services时,请勿编辑/Users/admin/Library/LaunchAgents/homebrew.mxcl.jenkins.plist。LaunchAgent plist文件将被复制到/覆盖为brew services中链接到的/usr/local/opt/jenkins/usr/local/Cellar/jenkins/2.xxx/homebrew.mxcl.jenkins.plist版本的文件中。 - George Pantazes

14

要编辑的文件位置是/usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist

在这里找到答案here


1
这对我很有用。以上被接受的答案每次重新启动 Jenkins 都会被覆盖。 - Mark Norgren

7

在我的macOS 11.4 Big Sur安装中,发现plist文件位于此处:

/opt/homebrew/Cellar/jenkins-lts/2.xxx.x/homebrew.mxcl.jenkins-lts.plist

按照描述将IP地址更改为0.0.0.0后,操作成功。


这是在Big Sur上工作的唯一答案。谢谢! - Berkay Turancı
感谢您添加Big Sur位置! - Mark Thormann
谢谢,这对于Big Sur位置来说很有效,非常感谢 @cyx - undefined

3
通过使用命令 sudo /etc/init.d/jenkins restart 启动 Jenkins,而不是使用命令 sudo service jenkins start,即可启动浏览器访问。希望这对你有所帮助。

1

1
如果您的Jenkins是通过Homebrew(macos)运行的,请不要触碰/Users/admin/Library/LaunchAgents/homebrew.mxcl.jenkins.plist 请使用此路径:/usr/local/Cellar/jenkins/2.xxx/homebrew.mxcl.jenkins.plisthttpListenAddress更改为0.0.0.0

0

如果您的Jenkins是通过Homebrew(macOS Big Sur)运行的,

首先,您需要取消隐藏文件夹。

由于该文件夹是macOS上的一个隐藏文件夹。因此,您需要执行以下操作才能取消隐藏文件夹。

在Finder中打开Macintosh HD ->并按下cmd + shift + .(点)

这将显示所有隐藏的文件夹。

取消隐藏文件夹后,请在终端中粘贴以下命令:

nano /usr/local/Cellar/jenkins-lts/2.xxx/homebrew.mxcl.jenkins-lts.plist

将 httpListenAddress 127.0.0.1 更改为 0.0.0.0

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>homebrew.mxcl.jenkins</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/bin/java</string>
      <string>-Dmail.smtp.starttls.enable=true</string>
      <string>-jar</string>
      <string>/usr/local/opt/jenkins/libexec/jenkins.war</string>
      <string>--httpListenAddress=0.0.0.0</string>
      <string>--httpPort=8080</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

一旦完成上述步骤,您可以使用主机名或公共IP地址访问Jenkins。

0
如果您已经使用Homebrew(macos)安装了Jenkins LTS,请参考以下链接:macOS Installers for Jenkins LTS
  • 文件 homebrew.mxcl.jenkins-lts.plist 的路径为:

    /opt/homebrew/opt/jenkins-lts/homebrew.mxcl.jenkins-lts.plist
    
  • 由于 opt 文件夹在 macOS 中是一个隐藏文件夹。您需要执行以下操作才能在 Finder 中看到它。

    在 Finder 中打开 Macintosh HD -> 按下 cmd + shift + [.]

    这将显示所有隐藏的文件夹。

  • 现在,您拥有了完成所需更改的所有内容。如前面的答案所述。


  • 网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接