问题本质与结论
两者不会天然冲突,关键在于让防火墙放行 Jenkins 实际使用的端口(默认 8080/TCP),以及确保 Jenkins 监听在可被外部访问的地址(如 0.0.0.0)。若未放行端口或仅监听 127.0.0.1,就会出现访问被拒绝或超时等现象。
快速修复步骤 Debian 常用 UFW
- 放行端口
- 允许 Web 访问:sudo ufw allow 8080/tcp
- 如启用 HTTPS:sudo ufw allow 443/tcp
- 如启用 JNLP 代理端口:sudo ufw allow 50000/tcp
- 启用并核验
- 启用防火墙:sudo ufw enable
- 查看状态与规则:sudo ufw status verbose
- 可选:若之前完全关闭防火墙,可重新启用并确认规则生效。
快速修复步骤 使用 firewalld
- 放行端口
- sudo firewall-cmd --permanent --add-port=8080/tcp
- 如需 HTTPS:sudo firewall-cmd --permanent --add-port=443/tcp
- 如需 JNLP:sudo firewall-cmd --permanent --add-port=50000/tcp
- 重载并核验
- sudo firewall-cmd --reload
- sudo firewall-cmd --list-ports
Jenkins 侧关键配置
- 监听地址需对外可达
- 编辑:sudo nano /etc/default/jenkins
- 确保包含:JENKINS_ARGS=“–webroot=/var/cache/jenkins/war --httpPort=8080 --httpListenAddress=0.0.0.0”
- 重启服务:sudo systemctl restart jenkins
- 确认服务与端口监听
- 服务状态:systemctl status jenkins
- 端口监听:ss -tuln | grep 8080(或 netstat -tuln | grep 8080)
云服务器与端口连通性检查
- 云平台安全组或本机外部防火墙需同样放行 8080(以及 443/50000 如有用到)。
- 本机到自身的连通性测试:curl -I http://127.0.0.1:8080;从外部测试:curl -I http://服务器IP:8080。
- 若仍不通,查看 Jenkins 日志定位:tail -f /var/log/jenkins/jenkins.log。