【Linux内网穿透】】Linux本地搭建GitLab服务器 - 内网穿透远程访问

news2024/11/26 16:37:59

文章目录

  • 前言
  • 1. 下载Gitlab
  • 2. 安装Gitlab
  • 3. 启动Gitlab
  • 4. 安装cpolar内网穿透
  • 5. 创建隧道配置访问地址
  • 6. 固定GitLab访问地址
    • 6.1 保留二级子域名
    • 6.2 配置二级子域名
  • 7. 测试访问二级子域名

转载自cpolar极点云文章:Linux搭建GitLab私有仓库,并内网穿透实现公网访问

前言

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。

Gitlab是被广泛使用的基于git的开源代码管理平台, 基于Ruby on Rails构建, 主要针对软件开发过程中产生的代码和文档进行管理, Gitlab主要针对group和project两个维度进行代码和文档管理, 其中group是群组, project是工程项目, 一个group可以管理多个project, 可以理解为一个群组中有多项软件开发任务, 而一个project中可能包含多个branch, 意为每个项目中有多个分支, 分支间相互独立, 不同分支可以进行归并。

下面我们通过在Linux centOS8 中搭建GitLab私有仓库并且结合Cpolar内网穿透工具,实现在公网环境下也可以访问私有仓库Gitlab。

1. 下载Gitlab

在系统中创建一个目录,名字叫GitLab,存放下载的安装包

mkdir /usr/local/gitlab

进入创建的目录

cd /usr/local/gitlab

下载Gitlab安装包,等待下载完成

wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/8/gitlab-ce-15.0.2-ce.0.el8.x86_64.rpm/download.rpm

1678717872337

2. 安装Gitlab

下载成功后,开始安装Gitlab,首先安装一个工具包,时间很长,等待安装完成:

yum install  policycoreutils-python-utils

1678720861569

然后安装Gitlab,进去我们上面创建的/usr/local/gitlab目录下执行:

rpm -Uvh gitlab-ce-15.0.2-ce.0.el8.x86_64.rpm

1678721095616

安装完成后,更新配置,稍微需要点时间,耐心等待一下,完成后,我们可以看到用户名和密码

gitlab-ctl reconfigure 

以下信息我们可以看到用户名和密码,用户名为:root,密码需要单独查看

1678721702117

上面那个路径就是密码路径,查看密码:

cat /etc/gitlab/initial_root_password

1678721881291

3. 启动Gitlab

测试启动,没有出错表示成功

gitlab-ctl start

1678722005864

然后修改访问地址,编辑Gitlab配置文件,

vim /etc/gitlab/gitlab.rb

把external_url的值换成http://127.0.0.1:8088,端口号可以自己指定,这里指定8088,然后保存

image-20230314003117292

修改完后重新加载配置文件

gitlab-ctl reconfigure

然后重新启动Gitlab

sudo gitlab-ctl restart

如果有防火墙,添加防火墙端口:8088

firewall-cmd --zone=public --add-port=8088/tcp --permanent

然后打开浏览器,输入Linux 局域网ip+8088,即可访问成功

1678725368861

输入上面的用户名:root 和上面查看的密码即可登录成功啦

1678725526795

4. 安装cpolar内网穿透

上面我们在本地Linux虚拟机安装了Gitlab,下面我们安装cpolar内网传统工具,通过cpolar的http公网地址,我们可以很容易远程也可以访问GitLab,而无需自己注册域名.下面是安装cpolar内网穿透步骤:

https://www.cpolar.com/

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • token认证

登录cpolar官网后台,点击左侧的验证,查看自己的认证token,之后将token贴在命令行里:

cpolar authtoken xxxxxxx

20230206171248

  • 向系统添加服务,将cpolar配置为开机自启
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

5. 创建隧道配置访问地址

成功启动cpolar服务后,我们在浏览器上访问Linux局域网ip地址+9200端口,登录cpolar web UI管理界面。

登录成功后,点击左侧仪表盘的隧道管理——创建隧道,创建一个http协议的隧道指向上面设置的8088端口:

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:8088
  • 域名类型:免费选择随机域名
  • 地区:选择China VIP

点击创建

1678724119867

然后打开在线隧道列表,查看并且复制公网地址

1678724278844

然后打开浏览器,输入公网地址,即可访问成功

1678725654998

6. 固定GitLab访问地址

由于刚刚创建隧道使用的是随机临时地址,该地址会在24小时内发生变化,为了长期远程访问,我们接下来将这个公网地址配置为固定的。

6.1 保留二级子域名

需升级至基础套餐或以上才支持配置二级子域名

登录cpolar官网后台,点击左侧仪表盘的预留,找到保留二级子域名,为http隧道保留一个二级子域名。

  • 地区:选择服务器地区
  • 名称:填写您想要保留的二级子域名(可自定义)
  • 描述:即备注,可自定义填写

1678725876220

本例保留一个名称为gitlabTest的二级子域名。子域名保留成功后,我们将子域名复制下来,接下来需要将其配置到隧道中去。

1678725912846

6.2 配置二级子域名

登录cpolar web ui管理界面。点击左侧仪表盘的隧道管理——隧道列表,找到需要配置二级子域名的隧道,点击右侧的编辑

1678725955880

修改隧道信息,将二级子域名配置到隧道中:

  • 域名类型:改为选择二级子域名
  • Sub Domain:填写我们刚刚所保留的二级子域名(本例为gitlabTest

修改完成后,点击更新

1678725995744

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到隧道的公网地址,已经更新为二级子域名了,将公网地址复制下来。

1678726056852

7. 测试访问二级子域名

打开浏览器,我们来测试一下访问配置成功的二级子域名,测试成功,可以正常访问。现在,我们全网唯一的私有二级子域名,就创建好了。 而且这个地址也不会再随机变化,他是固定不变的,只要保持隧道在线,我们在外就可以通过这个公网地址,随时随地远程访问,无需公网IP,也不用设置路由器。

1678726105739

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/595806.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python的就业前景——解析云计算与Python的结合

Python的就业前景——解析云计算与Python的结合 Python是一种高级编程语言,具有高度的可读性和简洁性,并已成为Web和大数据的主流语言之一。Python广泛应用于数据科学,机器学习,Web开发,游戏开发和金融等领域&#xf…

Linux_epoll

Linux_epoll 思考:高效的餐厅服务如何实现?Epoll - Reactor 设计模式Epoll 与 Reactor 设计模式的关系Reactor优点Epoll - IO多路复用的用法web_server示例代码水平触发和边缘触发思考:高效的餐厅服务如何实现? 一个顾客来就餐,一个服务员在顾客点菜期间全程陪同服务! 一个…

并发编程总结

synchronized synchronized有如下3种使用方式 普通同步方法,锁是当前实例对象 静态同步方法,锁是当前类的class对象 同步方法块,锁是括号里面的对象 当一个线程访问同步代码块时,需要获得锁才能执行,当退出或者抛…

chatgpt赋能python:Python修改BIOS:一篇专业的SEO文章

Python修改BIOS:一篇专业的SEO文章 介绍 BIOS(Basic Input/Output System)是计算机中的核心程序,它负责启动电脑并管理硬件。一旦发现硬件问题,BIOS会通知用户或操作系统。它还可以设置系统的参数,例如时…

Node.js安装教程(npm搭建) - Window

择心】向大家介绍安装Node.js ( npm搭建 ) 一、安装流程 进入Node.js 去下载一个安装包。 双击下载好的应用程序,弹出安装界面并点击Next, 接受协议,点击Next, 更改默认安装路径,点击Next, 会默认添加到Path环境…

【每周一书】--(认知觉醒)思考:如何用清爽的情绪面对内卷的当下?

【每周一书】--(认知觉醒)思考:如何用清爽的情绪面对内卷的当下? 认知觉醒:开启自我改变的原动力焦虑:焦虑的根源完成焦虑定位焦虑选择焦虑环境焦虑难度焦虑 如何拥有清爽的情绪,释放焦虑情绪 认…

记录使用Pytorch分布式训练(torch.distributed)踩过的坑

引言 最近由于想加速神经网络模型训练,便开始着手学习pytorch的分布式训练(DDP),结果踩了很多坑,在这里记录一下,便于以后查看,也同时分享给大家。 教程 我是通过下面几篇博客学习pytorch分布…

JVM类加载器及其详解

1.JVM加载过程分析 1.1加载流程图 1.2双亲委派机制 引导类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的核心类库,比如rt.jar、charsets.jar等扩展类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的ext扩展目录中的JAR类包应用程序…

chatgpt赋能python:Python倒序的实现方法介绍

Python倒序的实现方法介绍 Python是一种高级编程语言,被广泛用于数据处理、人工智能、Web开发等领域。其中,倒序是常见的一种操作需求。Python提供了多种实现倒序的方法,下面进行详细介绍。 1. 切片 切片是Python中常用的语法,…

chatgpt赋能python:Python倒序循环–优化你的编程效率

Python倒序循环 – 优化你的编程效率 在Python编程中,倒序循环是一种非常强大的操作。它可以用于遍历一个序列并对其中的元素进行逆序处理,从而提高编程效率。本文将介绍Python倒序循环的优势及如何在编程中使用。 什么是Python倒序循环 在传统循环中…

Web应用技术(第十五周/END)

本次练习基于how2j和课本,进行SSM的初步整合,理解SSM整合的原理、好处。 SSM整合应用 1.简单的实例项目:2.原理分析:3.浅谈使用SSM框架化: 1.简单的实例项目: how2j 2.原理分析: 具体见流程图…

MySQL-1-基础

MySQL 简介 mysql-server #提供服务 mysql-client #提供SQL命令 官网地址:https://dev.mysql.com/downloads/ https://downloads.mysql.com/archives/community/查看帮助文档 mysql> ? contents一、安装MySQL 1.1、二进制安装mysql5.7-linux 安装前准备 sh…

SpringBoot 的创建和使用

Spring Boot 的优点 Spring的出现是为了简化 Java 程序开发,而 SpringBoot 的出现是为了简化 Spring 程序开发. SpringBoot 就是 Spring脚手架 快速集成框架,Spring Boot提供了启动添加依赖的功能,用于秒级集成各种框架。内置运行容器,无需配…

python+vue大学新生入学报道交流平台pycharm

本系统的用户可分学生、教师、管理员三类。 管理员模块 1)登录:管理员输入用户名、密码;选择“管理员”角色;点击登录按钮。 2)管理员主界面:以管理员身份登录成功后,选择进入网站系统管理模块;选择进入首页…

Python字符串类型的使用

文章目录 Python中的字符串类型一、字符串的常用操作二、字符串的常用函数 Python中的字符串类型 注意:字符串为不可修改类型 python中没有单独的字符类型,字符就是长度为1的字符串。 通常创建字符串的方式:一般用单引号(’ &am…

从数据库到固态硬盘的读取过程

应用程序到数据库到操作系统到固态硬盘 在我研究了从应用程序发送的简单 SQL 查询是如何最终存储到磁盘的过程中,我发现术语 “页(page)” 和 “块(block)” 可能是软件工程中最多用的概念之一。有数据库页&#xff08…

Python新技术和趋势:如何应对Python生态的变化和发展趋势

第一章:引言 Python作为一门简洁、优雅且易于学习的编程语言,一直以来都备受开发者的喜爱。它拥有强大的生态系统和活跃的社区,使得Python在各个领域都有广泛的应用。然而,随着时间的推移,Python生态系统也在不断演变…

STM32H743烧录后无法识别Jlink的问题

利用Cubemx生成H743的代码,点击烧录后,无法再识别到Jlink了,只能烧录时按着复位再松开(类似51单片机)。 烧录后不运行,用keil进行debug,调试发下芯片进去内存管理错误中断。 经过不断调试发现&…

vuex核心

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、什么是状态管理?二、复杂的状态管理1.随着代码越来越多,需要管理的状态越来越复杂,当多个组件共享状态时,单…

​刷爆朋友圈!前百度总裁陆奇最新AI重磅演讲:我的大模型世界观​

陆奇的演讲刷屏了,我认真看了他的演讲稿,收获颇丰。 陆奇提到,人类社会的发展,大致可分为:农业化、工业化和数字化三个阶段。 在三个递进的阶段中,人类一直在探索如何减少烦琐且消耗能量的体力和脑力劳动&a…