0

我最近在 Google Cloud 上设置了一个 Debian 8 Jessie VM。我已经安装了 Jenkins 并让服务启动并运行(通过“sudo service jenkins status”验证),但我无法从另一台机器连接到 VM 的外部 IP。我曾经从我的个人计算机上运行 Jenkins,直到我决定需要一个专用服务器来连续运行它。当我在我的个人机器上运行它时,我只需访问 localhost:8080,Jenkins 仪表板就会很快加载。但是,在尝试访问运行 Jenkins 的 VM 的外部 IP 地址时,我通常会在我的 Web 浏览器中看到“连接被拒绝”。

根据我看到的有关此类问题的大多数帖子的建议,我已经解除了 VM 上的所有防火墙,并试图确保 VM 正在侦听正确的 IP 地址,但似乎没有什么能够改变所呈现的结果通过我的浏览器。问题最可能出在哪里:VM、Google Cloud 或 Jenkins?我不知所措。

4

2 回答 2

1

我的第一个猜测是连接/防火墙问题。要对此进行测试,您可以尝试使用 SSH 进行端口转发:使用本地端口转发 SSH 进入您的服务器:ssh -L 8080:localhost:8080 yourserver. 然后,您应该能够将您的 Web 浏览器指向http://localhost:8080/,并且您的数据包通过 SSH 连接流动。如果这样可以正常工作,请仔细查看 如何在 Google Compute Engine 中打开特定端口,例如 9090。或者更好的是,如果您是唯一使用该 Jenkins 服务器的人,请继续使用 SSH 隧道。这比将詹金斯向公众开放要安全得多。

于 2017-08-05T19:08:05.973 回答
0

您是否尝试过在 VM 上安装 tcpdump 并进行数据包捕获?通过这种方式,您可以确定流量被丢弃的位置。如果您没有看到任何流量,那么它会在到达您的 VM 之前被丢弃在云中的某个位置。如果您看到流量,那么您需要确定它是 Jenkins 还是主机上的某个代理(可能是防火墙,但您提到您清除了所有规则)......我建议停止 Jenkins 服务,然后尝试再次访问它. 您是否收到相同的“连接被拒绝”消息?如果是这样,那么它是虚拟机上的东西。如果没有,那就是应用层的东西,即 Jenkins。

狩猎快乐!!!

于 2017-08-05T19:04:29.583 回答