当前位置:   article > 正文

[搭建在家中的gitlab服务器] frp内网穿透 + https + gitlab详细搭建_gitlab做内网穿透后地址要改么

gitlab做内网穿透后地址要改么

最近想在家中搞一台自己私有的git服务器来做私人代码仓库,苦于家庭中的外网ip是动态的,只能使用内网穿透来做ip映射,并在搭建gitlab过程中加入了https的安全证(证书是自己生成的,没钱没证书哈哈)

所需环境

  • 家里放置一台已经安装了linux系统的计算机,本人用的是centos7(本文章简称为家庭机)
  • 云服务器,本人用的是腾讯云服务器(本文章简称为云服务器)

步骤

运行frp内网穿透服务

  1. 下载frp源码包
    frp在github上下载,frp-0.33.0
    github下载缓慢可以使用我分享的百度云上下载 百度云链接 密码:

  2. 解压frp压缩包
    下载好frp之后上传到家庭机和云服务器
    分别进行解压

    tar -zxvf frp_0.33.0_linux_amd64.tar.gz -C /usr/local
    cd /usr/local/
    mv frp_0.33.0_linux_amd64 frp
    cd frp
    
    • 1
    • 2
    • 3
    • 4
  3. 修改客户端配置文件和客户端配置文件
    在frp目录中,分别有两个配置文件需要修改,一个是frps.ini,一个是frpc.ini
    云服务器作为服务端来代理转发数据到家庭机,为服务器,frps.ini在云服务器上配置
    家庭机作为客户端连接云服务器做端口映射,只修改frpc.ini配置文件
    frps.ini配置内容为

[common]
bind_port = 7000

# frp dashboard
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true

# frp config
log_file = /var/log/frps.log
log_level = info
log_max_days = 3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

`frpc.ini配置内容为

[common]
server_addr = 云服务器ip
server_port = 7000

[ssh]
type = tcp
# 本地ip
local_ip = 127.0.0.1
# 本地ssh端口
local_port = 22
# 远程监听端口,该端口与本地端口2222进行映射
remote_port = 2222

# gitlab http映射
[gitlab_http]
type = tcp
local_ip = 127.0.0.1
local_port = 1080
remote_port = 1080

# gitlab https映射
[gitlab_https]
type = tcp
local_ip = 127.0.0.1
local_port = 2443
remote_port = 2443
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

家庭机和云服务器分别关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
  • 1
  • 2

云服务器启动frps

sudo ./frps
  • 1

家庭机启动frpc

sudo ./frpc
  • 1

之后即可通过ssh远程终端工具连接家庭机,ip为云服务器的ip,端口为frpc配置文件中云服务器的映射端口2222

  1. 将frp启动命令设置为system管理

    • 云服务器配置

    进入/usr/lib/systemd/system目录,创建frp.service

    touch frp.service
    
    • 1

    内容为

    [Unit]
    Description=frp client
    After=network.target
    
    [Service]
    ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
    
    [Install]
    WantedBy=multi-user.target
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 家庭机配置

    进入/usr/lib/systemd/system目录,创建frp.service

    touch frp.service
    
    • 1

    内容为

    [Unit]
    Description=frp client
    After=network.target
    
    [Service]
    ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini
    
    [Install]
    WantedBy=multi-use.target
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    之后在云服务器和家庭机上通过systemctl启动frp服务

    systemctl start frp.service
    # 开启自动启动
    systemctl enable frp.service
    
    • 1
    • 2
    • 3

    之后每次重新启动计算机都能自动启动frp服务

搭建gitlab

gitlab搭建在家庭机中

  1. 下载gitlab rpm包

    下载所需依赖

    yum -y install policycoreutils openssh-server openssh-clients positfix
    
    • 1

    启动ssh服务&设置为开机启动

    systemctl enable sshd && sudo systemctl start sshd
    
    • 1

    设置postfix开机自启,并启动,postfix支持gitlab发信功能

    systemctl enable postfix && systemctl start postfix
    
    • 1

    如果开启了防火墙,开放ssh以及http服务,然后重新加载防火墙列表,如果没有开启,则跳过这一步骤

    firewall-cmd --add-service=ssh --permanent
    firewall-cmd --add-service=http --permanent
    firewall-cmd --reload
    
    • 1
    • 2
    • 3

    下载gitlab包,并且安装

    wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm
    
    • 1
  2. 修改配置文件

    vi /etc/gitlab/gitlab.rb
    
    • 1

    修改gitlab访问地址和端口.默认为80,为了避免冲突,改为1080

    external_url 'http://192.168.66.100:82'
    nginx['listen_port'] = 1080
    
    • 1
    • 2

    重载配置及启动gitlab

    gitlab-ctl reconfigure
    gitlab-ctl restart
    
    • 1
    • 2

    把端口添加到防火墙

    firewall-cmd --zone=public --add-port=82/tcp --permanent
    firewall-cmd --reload
    
    • 1
    • 2

    gitlab默认用户名为root

    访问云服务器ip + gitlab映射端口,即可访问gitlab服务器

设置gitlab访问协议为https

因为http不会对数据进行加密.会造成数据的安全问题,所以使用https方式会更加安全

前提条件

gitlab的https端口设置为2443

将gitlab的http请求重写为https方式

修改gitlab的配置文件

步骤

  1. 生成证书

    mkdir -p /etc/gitlab/ssl
    cd /etc/gitlab/ssl
    openssl genrsa -des3 -out server.key 1024
    openssl req -new -key server.key -out server.csr
    cp server.key server.key.org
    openssl rsa -in server.key.org -out server.key
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  2. 配置https端口以及http跳转

    # 由于使用了内网传统,不能使用本地ip,而是使用云服务器ip
    # 由于要做http转发,在ip后加上https的端口
    external_url 'https://云服务器ip:2443'
    
    nginx['redirect_http_to_https'] = true
    registry_nginx['redirect_http_to_https'] = true
    mattermost_nginx['redirect_http_to_https'] = true
    nginx['redirect_http_to_https_port'] = 1080
    nginx['enable'] = true
    # https的证书,这边使用的是自己生成的证书
    nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt"
    nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"
    
    # https的端口
    nginx['listen_port'] = 2443
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
  3. 重新配置并重启gitlab

    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl restart
    
    • 1
    • 2
  4. 访问浏览器
    访问 http方式就可以重定向为https://云端服务器ip:https端口
    在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/206850
推荐阅读
相关标签
  

闽ICP备14008679号