GitLab在CentOS中的网络配置要求
小樊
36
2025-12-27 06:18:19
端口与协议要求
- 入站访问需开放:
- HTTP 80/TCP:用于 Web 访问与重定向到 HTTPS(如启用)。
- HTTPS 443/TCP:用于加密 Web 访问与 Git 的 HTTPS 克隆/推送。
- SSH 22/TCP:用于 Git 通过 SSH 的克隆/推送(端口号可在 GitLab 中自定义)。
- 建议在系统防火墙放行上述端口,并在云厂商安全组同步放通对应来源网段。
防火墙与安全组配置
- firewalld(CentOS 常用):
- 放行服务或端口:
- sudo firewall-cmd --permanent --zone=public --add-service=http
- sudo firewall-cmd --permanent --zone=public --add-service=https
- sudo firewall-cmd --permanent --zone=public --add-service=ssh
- 如需自定义 SSH 端口(例如 2222/TCP):sudo firewall-cmd --permanent --zone=public --add-port=2222/tcp
- 使规则生效:sudo firewall-cmd --reload
- 云安全组:在控制台对实例放行 80/443/22(或自定义的 SSH 端口)入站,来源按需限制为办公网或公网。
- SELinux:保持启用并设为 permissive/enforcing 均可,若使用非标准端口,确保相应布尔值或策略允许 Nginx/SSH 绑定。
主机名与 DNS 解析
- 设置主机名(FQDN 推荐):sudo hostnamectl set-hostname gitlab.example.com
- 配置静态网络(示例 /etc/sysconfig/network-scripts/ifcfg-ens33 或 ifcfg-eth0):
- BOOTPROTO=static,ONBOOT=yes
- IPADDR=192.168.1.100,NETMASK=255.255.255.0,GATEWAY=192.168.1.1
- DNS1=8.8.8.8,DNS2=8.8.4.4
- 使配置生效:sudo systemctl restart network
- 验证:ip addr、ping www.baidu.com、nslookup gitlab.example.com
- 客户端访问前,确保域名可解析到服务器公网/内网 IP。
GitLab 关键网络参数
- 配置文件:/etc/gitlab/gitlab.rb
- 外部访问地址(必须与实际访问方式一致):
- HTTP:external_url ‘http://gitlab.example.com’
- HTTPS:external_url ‘https://gitlab.example.com’
- 自定义端口示例:
- 修改 Nginx 监听端口:nginx[‘listen_port’] = 8080
- 修改 SSH 端口(同时需防火墙放行新端口):gitlab_rails[‘gitlab_shell_ssh_port’] = 2222
- 应用配置:sudo gitlab-ctl reconfigure(必要时 sudo gitlab-ctl restart)
验证与常见问题
- 连通性验证:
- Web:curl -I http://gitlab.example.com 或 https://gitlab.example.com
- SSH:ssh -T git@gitlab.example.com(如自定义端口:ssh -p 2222 git@gitlab.example.com)
- 常见问题处理:
- 端口被占用:调整 nginx[‘listen_port’] 或系统端口占用,并同步防火墙/安全组。
- 端口未放行:核对 firewalld/云安全组是否已放通 80/443/22(或自定义端口)。
- 域名无法访问:检查 DNS 解析是否指向正确 IP,且外部_url 与访问域名一致。
- 首次访问:按页面引导设置管理员密码。