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本地端口转发)的主要内容,如果未能解决你的问题,请参考以下文章