GitLab Linux配置中的网络设置指南
在配置GitLab网络前,需确保服务器满足以下基础条件:
sudo apt update && sudo apt upgrade 或 sudo yum update);若服务器需固定IP(如生产环境),需修改网络接口配置文件:
CentOS/RHEL:编辑 /etc/sysconfig/network-scripts/ifcfg-<网卡名>(如 ifcfg-ens33),设置以下参数:
BOOTPROTO=static # 改为静态IP
ONBOOT=yes # 开机自启
IPADDR=192.168.1.100 # 静态IP地址
PREFIX=24 # 子网掩码(24代表255.255.255.0)
GATEWAY=192.168.1.1 # 网关地址
DNS1=8.8.8.8 # DNS服务器(可选:DNS2=8.8.4.4)
保存后重启网络服务:sudo systemctl restart network。
Debian/Ubuntu:编辑 /etc/network/interfaces,添加以下内容:
auto eth0 # 网卡名(通过`ip addr`查看)
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
保存后重启网络:sudo systemctl restart networking。
GitLab的核心网络配置是设置 external_url,用于定义Web界面和API的访问地址:
/etc/gitlab/gitlab.rb,找到 external_url 参数并修改:external_url 'http://your_server_ip' # 生产环境建议用域名(如`external_url 'http://gitlab.example.com'`)
若需指定SSH端口(默认22,可修改):gitlab_rails['gitlab_shell_ssh_port'] = 2222 # 修改后需同步修改SSH配置(/etc/ssh/sshd_config中的Port)
保存文件后,执行以下命令应用配置:sudo gitlab-ctl reconfigure # 重新生成GitLab配置
sudo gitlab-ctl restart # 重启GitLab服务
需开放GitLab使用的端口,确保外部能访问:
sudo firewall-cmd --permanent --add-service=http # 开放HTTP(80端口)
sudo firewall-cmd --permanent --add-service=https # 开放HTTPS(443端口)
sudo firewall-cmd --permanent --add-service=ssh # 开放SSH(22端口,若修改了端口需替换)
sudo firewall-cmd --reload # 重新加载防火墙规则
sudo ufw allow 80/tcp # 允许HTTP
sudo ufw allow 443/tcp # 允许HTTPS
sudo ufw allow 22/tcp # 允许SSH(若修改了端口需替换)
sudo ufw enable # 启用ufw
sudo ufw reload # 重新加载规则
为提升安全性,建议为GitLab配置SSL证书(如Let’s Encrypt免费证书):
sudo apt install certbot python3-certbot-nginx # Debian/Ubuntu
sudo yum install certbot python3-certbot-nginx # CentOS/RHEL
gitlab.example.com 为例):sudo certbot --nginx -d gitlab.example.com
Certbot会自动修改Nginx配置,启用HTTPS并配置自动续期。http://your_server_ip 或配置的域名,检查是否能访问GitLab登录页面;ssh -p 2222 git@gitlab.example.com # 替换为你的服务器IP或域名及端口
ping gitlab.example.com(域名需已解析到服务器IP)。external_url 配置是否正确;gitlab_rails['gitlab_shell_ssh_port'] 与 /etc/ssh/sshd_config 中的 Port 一致,且防火墙允许该端口;gitlab_rails['smtp_enable'] 是否为 true,并验证SMTP服务器信息(地址、端口、用户名、密码)。