当前位置: 首页 > news >正文

内网(极空间)搭建gitlab跳板机转发端口及域名配置

背景说明

https://blog.csdn.net/GodDavide/article/details/139182475
上文说到:
我已经用docker搭好了gitlab-ce服务,但我是部署在自己的家庭nas-极空间z4pro里的,属于内网环境。
另外我有一台阿里云服务器,做跳板机。
我有一个阿里的域名,解析到我的阿里云跳板机上。

问题还原

如上,我需要用域名访问我的gitlab-ce服务,在docker run的时候,配置了hostname和external_url:
当然:也可通过修改gitlab.rb文件实现【见上文】。

docker run --detach \--hostname git.****.cn \--env GITLAB_OMNIBUS_CONFIG="external_url 'http://git.****.cn'" \--publish 15443:443 --publish 15080:80 --publish 15022:22  \# ....以下省略,可以看上一篇文章# https://blog.csdn.net/GodDavide/article/details/139182475

然后,如上,我的80端口,映射15080,22端口映射15022
则就需要修改gitlab.rb 将gitlab_rails[‘gitlab_shell_ssh_port’]修改为15022
在这里插入图片描述
则此时,我的gitlab上 clone代码的地址,显示的就是正确的地址:
在这里插入图片描述
然后,我通过ssh命令,做一个端口转发,以实现内网穿透,将服务端口链接到跳板机上。这个以后再详细介绍。
然后穿透到阿里云服务器跳板机的端口,只能内网访问,需要用nginx做个转发,才能用公网ip进行访问。
到此为止,我仅仅只配置了80的映射端口15080。服务是可以通过域名访问了,
但是,我通过ssh克隆,确一直clone 失败~
ps:已经将ssh-key添加进项目秘钥库里了~
在这里插入图片描述

问题排查解决

首先想到的就是 git clone是通过ssh的22端口进行下载的,那就需要打通22端口,则又配置22端口的nginx转发。
在这里插入图片描述
发现,并不能实现
然后,回头尝试用内网地址+15022 clone,成功,用公网的ip+15222 clone失败,那就是定位到时nginx转发的问题了
然后,就考虑到22端口转发应该有特殊配置,这才发现,22端口需要处理TCP/UDP 流量。而普通的配置并不能处理TCP/UDP 流量。需要用stream模块,具体配置如下:

stream {upstream gitlab_ssh {server 127.0.0.1:15022;}server {listen 15922; # 不能和其他端口冲突proxy_pass gitlab_ssh;proxy_connect_timeout 1d;proxy_timeout 1d;}
}

在这里插入图片描述
此时 nginx -s reload 报错:

nginx: [emerg] "stream" directive is not allowed here in /etc/nginx/conf.d/gitlab.conf:28

解决:
1:nginx 1.9以后才有stream模块,需要升级,但现在谁还用这么老的版本~
2:nginx安装的时候,并没有安装stream模块,可以安装nginx stream模块,或者安装全部模块。

yum -y install nginx-all-modules.noarch

再次 nginx -s reload,成功。

此时git clone ssh:// 使用15922 端口,发现可以clone成功了。
最后再将gitlab.rb中的15022改成15922 即可正确显示地址了。或者改一下穿透端口和Nginx配置转发端口都可以。
ps:注意一下;阿里云服务器实例的网络安全组,一定要把你需要的端口打开哦~

http://www.lryc.cn/news/357152.html

相关文章:

  • 如何知道自己电脑的 Shell类型是什么?
  • Axios的使用简单说明
  • 查找list集合中,持续时间>=ContinueTime的数据集合,保存在新的list中
  • nginx 反向代理配置详解
  • 微信小程序毕业设计-农场驿站平台系统项目开发实战(附源码+论文)
  • CAN总线应用协议CANopen
  • htop安装不了怎么解决
  • vue 笔记02
  • MySQL8.0免安装及phpmyadmin配置
  • 【目标解算】相机内外参数详细解读+坐标系转换
  • 【Unity】颜色混合计算
  • Vue源码解析
  • Linux---网络相关配置
  • MATLAB分类与判别模型算法:基于Fisher算法的分类程序【含Matlab源码 MX_002期】
  • 长文总结 | Python基础知识点,建议收藏
  • centos中使用Docker安装rabbitmq记录
  • STM32系列-STM32介绍
  • 网络原理 一
  • xcode配置快速打开终端命令行工具教程
  • AIGC降重:如何2分钟降低论文AI率和查重率?推荐使用SpeedAI科研小助手
  • Blazor入门-连接MySQL的简单例子:列出数据+简单查询
  • CEEMDAN +组合预测模型(CNN-Transfromer + XGBoost)
  • 箭头函数的意义和函数的二义性
  • 618必买的数码好物有哪些?盘点兼具设计与实用的数码好物分享
  • 【好书分享第十三期】AI数据处理实战108招:ChatGPT+Excel+VBA
  • 001 CentOS 7.9 安装及配置jdk-8u411-linux-x64.tar.gz
  • Revit二次开发-WPF ProgressBar 执行程序中显示进度条
  • React:构建Web应用的未来
  • 【Elasticsearch】Centos7安装Elasticsearch、kibana、IK分词
  • IDEA中各种Maven相关问题(文件飘红、下载依赖和启动报错)