GitLab在Linux中的网络设置怎么做
小樊
38
2025-11-30 19:27:02
GitLab在Linux中的网络设置全流程
一 基础网络与主机准备
- 设置主机名与解析:使用命令设置主机名(如 sudo hostnamectl set-hostname gitlab.example.com),并在 DNS 或 /etc/hosts 中确保域名可解析到服务器地址。
- 静态 IP(可选,服务器常用):编辑网卡配置文件(如 /etc/sysconfig/network-scripts/ifcfg-ens33 或 ifcfg-eth0),将 BOOTPROTO=static、ONBOOT=yes,并配置 IPADDR、NETMASK、GATEWAY、DNS1;随后执行 sudo systemctl restart network 或 nmcli 使配置生效。
- 连通性自检:使用 ip addr 查看地址,ping 网关与公网地址,确认外网可达。
- 防火墙放行:放行 HTTP(80)、HTTPS(443)、SSH(22)。firewalld 示例:sudo firewall-cmd --permanent --add-service=http --add-service=https --add-service=ssh && sudo firewall-cmd --reload。
- 邮件通知(可选):安装并启用 Postfix,或后续在 GitLab 中配置 SMTP 用于通知与邀请。
二 安装与核心网络参数配置
- 安装 GitLab 软件源与包:
- Ubuntu/Debian:curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
然后 sudo apt-get install -y gitlab-ce
- CentOS/RHEL:curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
然后 sudo yum install -y gitlab-ce
- 核心配置 /etc/gitlab/gitlab.rb:
- 设置访问地址:external_url ‘http://your_domain_or_IP’(如需 HTTPS,改为 https://…)。
- 端口与监听:如需非标准端口,设置 nginx[‘listen_port’] = 端口号;如 80 被占用,可改为 800 等未占用端口。
- 使配置生效:执行 sudo gitlab-ctl reconfigure,必要时 sudo gitlab-ctl restart。
- 访问验证:浏览器打开配置的 external_url,完成初始化管理员密码设置。
三 启用 HTTPS 与证书部署
- 自签名或已有证书:在 /etc/gitlab/gitlab.rb 中设置
- nginx[‘ssl_certificate’] = “/etc/gitlab/ssl/gitlab.crt”
- nginx[‘ssl_certificate_key’] = “/etc/gitlab/ssl/gitlab.key”
- 同时确保 external_url 以 https:// 开头,执行 sudo gitlab-ctl reconfigure 生效。
- 证书来源建议:生产环境使用受信任 CA 签发的证书(如 Let’s Encrypt),或配合 负载均衡/反向代理 终止 TLS。
- 端口策略:启用 HTTPS 后,通常继续保留 80 用于自动跳转或 ACME 验证(如 certbot)。
四 防火墙端口与 NAT 转发
- 防火墙规则:放行 80/443/22 是最基本的要求;如使用 firewalld:
- 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
- sudo firewall-cmd --reload
- NAT 场景:若服务器位于路由器/NAT 之后,需在网关将外部 80/443/22 转发到内网 GitLab 主机的对应端口。
- 云厂商安全组:在 云控制台 同样需要放行上述端口,避免被平台防火墙拦截。
五 容器化部署与常见网络场景
- Docker 运行示例(宿主机端口映射):
- ports: “5480:80”、“5443:443”、“5022:22”
- 进入容器后,如需调整细粒度网络参数,可编辑容器内路径 /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml 的 host/port/ssh_port 等。
- 注意:容器网络与宿主机端口映射需一一对应,并同步调整 external_url 与 SSH 克隆地址。
- 常见问题速查:
- 无法访问:优先检查 firewalld/安全组、端口占用(如 netstat -tulpen | grep 80)、以及 external_url 协议与端口是否一致。
- 80 端口被占用:修改 nginx[‘listen_port’] 为非占用端口,并相应调整访问地址或在反向代理中做端口转发。
- 邮件发送失败:核对 SMTP 配置(地址、端口 587/TLS、账号与密码)并重新 reconfigure。