开发过程中,内网GitLab仓库无法被外网访问是不是很头疼?今天分享一个超实用方案,通过容器部署GitLab+ZeroNews内网穿透,安全的让你的私有仓库实现全球访问,开发者必看!
为什么要这样做?
无需公网IP:摆脱传统服务器固定IP限制,中小企业/个人开发者也能低成本实现公网访问
安全加密:HTTPStlsv1.3协议加持,保障代码传输安全
灵活部署:容器化部署+内网穿透,适配各种开发环境
部署准备
一台CentOS7 服务器
注册ZeroNews账户(获取内网穿透Token)
部署步骤
第1步:部署 GitLab容器(如已安装可略过)
在开始部署GitLab容器之前,您需要创建本地目录来存储GitLab数据、配置和日志:
#创建本地目录
mkdir-p /opt/docker/gitlab/data
mkdir-p /opt/docker/gitlab/config
mkdir-p /opt/docker/gitlab/log
#gitlab端口号映射:
80:80
2222:22
#运行gitlab容器
docker run -d --restart=always --name=gitlab -p 80:80 -p 2222:22 -v/opt/docker/gitlab/data:/var/opt/gitlab -v/opt/docker/gitlab/config:/etc/gitlab -v/opt/docker/gitlab:/var/log/gitlab -v /etc/localtime:/etc/localtimegitlab/gitlab-ce:latest
#查看root密码
dockerexec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
查看创建好GitLab容器,确保GitLab容器已成功运行,然后继续下一步。
第2步:生成ZeroNews客户端所需的Token
用户登录 ZeroNews 平台,在“快速开始”页面复制您的Token。
第3步:运行ZeroNews客户端
在Linux服务器上运行ZeroNews,绑定Token,完成ZeorNews客户端上线。
第4步:为gitlab分配ZeroNews公网域名
用户登录 ZeroNews 平台,在"资源"的"域名"管理页面,点击 "添加域名"添加公网可访问的域名。
域名前缀:用户输入定义的 域名前缀,如gitlab
勾选HTTPS协议
第5步:为gitlab添加公网映射
进入"映射"页面,点击"添加映射”添加gitlab映射。
选择设备:选择已经认证的设备
映射协议:选择HTTPS协议
公网访问地址:选择gitlab的域名地址,gitlab.ny.takin.cc
映射带宽:为gitlab分配带宽,不大于用户当前的最大可用带宽
内网映射地址:内网IP地址默认输入 127.0.0.1
内网端口输入gitlab容器映射的端口号 80
gitlab映射添加完成后,可在应用详情中可查看添加好的映射列表。
第6步:配置GitLab的gitclone HTTPS 地址
点击GitLab映射的访问地址后面的打开小图标,自动在浏览器中打开GitLab管理平台,输入用户名和密码登录。
进入"AdminArea" > "Settings - General"。
在"Visibilityand Access Controls" 部分,将GitLab的公网域名地址填入"CustomGit clone URL for HTTP(S)"。
第7步:GitLab测试Projects
创建GitLab测试Projects
创建tc, 步骤如下:
查看创建好的tcproject
进入到tcproject,查看GitClone 地址
第8步:从客户端GitClone 和版本控制
从客户端进行GitClone:
在能够访问互联网的Linux系统上,使用以下命令进行GitClone:
gitclone https://gitlab.ny.takin.cc/root/tc.git
使用SourceTree进行版本控制**:
打开SourceTree,点击"新增-Clone",根据提示输入GitLab的账户和密码。
在实现内网GitLab外网访问时,安全性是不可忽视的核心环节。以下通过IP黑白名单限制和鉴权认证机制两方面,手把手教你为代码仓库筑牢安全防线:
1.IP黑白名单访问设置
支持基于IP地址的访问控制功能,用于限制不必要的访问流量,确保受保护资源的安全性和可控性。此功能支持配置IP黑名单和白名单,通过对访问请求的源IP地址进行匹配,决定是否允许访问,能够灵活应对不同类型的流量管控需求。
适用场景:仅允许公司办公网、开发团队IP访问,防止公网恶意扫描。
2.鉴权认证访问控制
通过鉴权账号管理,按角色添加鉴权用户名密码,仅授权用户可访问,高效提升访问安全性。
实用场景
远程团队协作开发
代码版本管理与外网发布
私有项目安全托管
注意事项
生产环境建议配置更高带宽,保障代码拉取速度
GitLab容器数据目录需定期备份,避免数据丢失
领取专属 10元无门槛券
私享最新 技术干货