Ubuntu部署Jenkins的网络设置
导读:Ubuntu 上部署 Jenkins 的网络设置 一 网络与防火墙基础 固定 IP(Ubuntu 18.04+ 使用 Netplan) 编辑配置文件(文件名因环境而异,如:/etc/netplan/50-cloud-init.yaml...
Ubuntu 上部署 Jenkins 的网络设置
一 网络与防火墙基础
- 固定 IP(Ubuntu 18.04+ 使用 Netplan)
- 编辑配置文件(文件名因环境而异,如:/etc/netplan/50-cloud-init.yaml 或 /etc/netplan/*.yaml):
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: no addresses: [10.0.2.15/24] gateway4: 10.0.2.1 nameservers: addresses: [8.8.8.8, 8.8.4.4] - 应用配置:
sudo netplan apply - 如需使用 NetworkManager 管理 DNS:
sudo nmcli con modify "Wired connection 1" ipv4.dns "8.8.8.8,8.8.4.4" & & sudo nmcli con up "Wired connection 1"。
- 编辑配置文件(文件名因环境而异,如:/etc/netplan/50-cloud-init.yaml 或 /etc/netplan/*.yaml):
- 防火墙放行端口
- 放行 Jenkins Web 8080 与 Agent 通信 50000:
sudo ufw allow 8080/tcp sudo ufw allow 50000/tcp sudo ufw reload - 如启用 UFW,确保允许 SSH(例如
sudo ufw allow OpenSSH)以免被锁。
- 放行 Jenkins Web 8080 与 Agent 通信 50000:
二 反向代理与 HTTPS
- 使用 Nginx 终止 HTTPS 并反向代理到本地 8080
- 安装与启用 Nginx 后,配置站点(示例:/etc/nginx/sites-enabled/default):
server { listen 80; server_name jenkins.example.com; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name jenkins.example.com; ssl_certificate /etc/letsencrypt/live/jenkins.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/jenkins.example.com/privkey.pem; access_log /var/log/nginx/jenkins.access.log; error_log /var/log/nginx/jenkins.error.log; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://localhost:8080; proxy_read_timeout 90; proxy_redirect http://localhost:8080 https://jenkins.example.com; } } - 检查并重载 Nginx:
sudo nginx -t & & sudo systemctl reload nginx - 获取证书(示例域名):
sudo certbot certonly --nginx -d jenkins.example.com
- 安装与启用 Nginx 后,配置站点(示例:/etc/nginx/sites-enabled/default):
- Jenkins 侧配合
- 在 Manage Jenkins → System 中设置 Jenkins URL 为 https://jenkins.example.com。
- 在 Manage Jenkins → Global Security 勾选 Use proxy compatibility(或启用“防止跨站点请求伪造”的代理兼容选项),确保反向代理头部正确传递。
三 容器化部署端口与网络
- Docker Compose 示例(同时映射 8080 与 50000)
version: '3.8' services: jenkins: image: jenkinsci/blueocean:lts restart: always ports: - "8080:8080" - "50000:50000" environment: TZ: Asia/Shanghai volumes: - jenkins_data:/var/jenkins_home volumes: jenkins_data: - 主机防火墙同样需要放行 8080/tcp 与 50000/tcp,以便 Agent 与浏览器访问。
四 验证与常见问题
- 连通性验证
- 本机:
curl -I http://localhost:8080 - 远程:
curl -I http://< 服务器IP> :8080 - 启用代理后:
curl -I https://jenkins.example.com
- 本机:
- 常见故障排查
- 端口未放行:检查 UFW/云安全组 是否放行 8080/50000。
- 反向代理错误:出现 “Reverse proxy set up is broken” 时,核对 Nginx 的
proxy_pass与proxy_redirect,确保与 Jenkins URL 一致,且头部包含 X-Forwarded-For/Proto/Host。 - DNS 解析异常:确认 /etc/resolv.conf 或 Netplan/NetworkManager 中的 DNS 配置正确。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu部署Jenkins的网络设置
本文地址: https://pptw.com/jishu/789272.html
