git远程外网地址变内网怎么破(ssh本地端口转发)

Posted yueguanghaidao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git远程外网地址变内网怎么破(ssh本地端口转发)相关的知识,希望对你有一定的参考价值。

git远程外网地址变内网怎么破(ssh本地端口转发)?

最近给longtubas上了负载均衡,相对来说我们并发并不高,但希望可用性尽可能高,本来打算用不饱和的机器做个lvs集群的,

但IDC说给个额外的公网ip需要申请机器,推荐我们用云自带的负载均衡,倒也省的自己配置,IDC把之前公网ip绑定到负载均衡器上了,

这导致我们搭建在服务器上的gitlab不可用了,折腾了一下,使用ssh本地端口转发解决了。

当然前提是你有另外一台机器能通过内网连接到web服务器

A: 192.168.3.42(内网) web服务器

B: 192.168.3.29(内网) 42.62.14.7(外网) 中转服务器

C: 本机(只有内网地址)

修改git remote url

我们之前是用git协议访问的,修改为ssh访问

在C上修改.git/config

[remote "origin"]
    url = ssh://git@42.62.14.7:2222/bi/python.git

ssh本地端口转发

在B上做端口转发,将来自端口2222的数据转发到192.168.3.42 22号端口

ssh -NfL 0.0.0.0:2222:192.168.3.42:22 root@192.168.3.42

恩,这样就可以了

在C上面还可以通过3.42的2222端口直接ssh到A主机

ssh root@42.62.14.7 -p 2222

ssh还可以做远程端口转发

当然ssh还可以做远程端口转发,假如我希望通过B主机能ssh到我C的机器

在C主机上面

ssh -CNfR 9999:127.0.0.1:22 root@42.62.14.7

在B主机上面可通过9999端口ssh到C主机

ssh skycrab@localhost -p 9999

注意9999端口在远程主机只监听了localhost,而不是0.0.0.0。

这里还有一个问题,远程端口转发连接很容易断掉,可以使用autossh解决

autossh -M 9998 -CNfR 6876:127.0.0.1:22 root@42.62.14.7

对于负载均衡的健康检查多说一句,建议使用http方式,而且path的请求最好是通过应用服务器返回的,

而不是通过nginx配置的,这样应用服务器挂了,status_code不是200也会被摘除的。

当然也可以使用nginx做健康检查,尤其是淘宝tengine自带的健康检查模块http_upstream_check

以上是关于git远程外网地址变内网怎么破(ssh本地端口转发)的主要内容,如果未能解决你的问题,请参考以下文章

SSH -R 远程端口转发

内网IP端口不通怎么办

SSH 内网端口转发实战

利用SSH端口转发实现远程访问内网主机远程桌面 建立SSH转发

vmware 怎么可以让外网访问到

lcx内网端口转发