我已在本地计算机(ubuntu 19.10)中安装了 Jenkins。 我可以使用
localhost:8080
或 192.168.100.20:8080
连接到 Jenkins。
但是,我无法使用我的公共 IP 地址连接到 Jenkins !!
我尝试通过
解决这个问题/etc/default/jenkins
。我将 HTTP_HOST 修改为 $HTTP_HOST=0.0.0.0
和 $HTTP_PORT=8080
JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=$HTTP_PORT --httpListenAddress=$HTTP_HOST"
sudo service jenkins restart
和 sudo /etc/init.d/jenkins restart
jenkins.log
的 /var/log/jenkins
文件。看起来工作没有错误sudo ufw disable
而且,当我在浏览器中尝试时
http://xx.xxx.xxx.xxx:8080
它不起作用!
为什么请?
我发现我需要在防火墙上打开端口 8080 以用于入站流量。
我如何解决 Jenkins 8080 端口访问问题🚀
🔧 今天,我成功解决了在端口 8080 上外部访问 Jenkins 的问题。以下是我所遵循的步骤的简明细分:
第 1 步:编辑 Jenkins 配置
我编辑了 Jenkins 服务配置以确保它侦听正确的端口和 IP 地址:
sudo systemctl 编辑詹金斯
这将打开位于 /etc/systemd/system/jenkins.service.d/override.conf 的嵌入式文件。我修改环境变量如下:
[服务] 环境=“JAVA_OPTS=-Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Djava.io.tmpdir=/var/cache/jenkins/tmp -Dorg.apache.commons.jelly.tags.fmt.timeZone =美国/New_York -Duser.timezone=美国/New_York" 环境=“JENKINS_OPTS=--pluginroot=/var/cache/jenkins/plugins”
保存后,我重新启动 Jenkins 以应用更改:
sudo systemctl 重新启动詹金斯
还要添加临时目录。
sudo mkdir /var/cache/jenkins/tmp
第二步:在云防火墙中开放8080端口
由于我的服务器托管在云端,所以我在相关安全配置中开放了8080端口:
AWS:在 EC2 安全组中添加了端口 8080 的入站规则。
Azure:为虚拟机配置入站安全规则。
GCP:为实例添加了防火墙规则。
Oracle Cloud:在虚拟云网络 (VCN) 安全列表中打开端口 8080。
第 3 步:更新 iptables
我注意到内部交通仍然堵塞。检查 iptables,我意识到 REJECT 规则阻止了到端口 8080 的流量。为了解决这个问题,我在链的顶部添加了 ACCEPT 规则:
sudo iptables -I 输入 1 -p tcp --dport 8080 -j 接受 sudo iptables-保存
要点
1️⃣ 编辑 Jenkins 服务配置以确保其绑定到正确的 IP/端口。 2️⃣ 在云提供商的安全设置中打开所需的端口。 3️⃣ 调整本地防火墙规则(iptables)以允许流量,优先考虑接受规则高于拒绝规则。
经过这些调整,Jenkins 可以在端口 8080 上完全访问。🎉
💡 排除网络配置故障需要系统的方法和对细节的关注。您遇到过类似的挑战吗?让我知道你是如何解决这些问题的!