如何使用Apache Reverse Proxy设置SSH端口转发

时间:2017-06-05 11:56:35

标签: git apache ssh proxy

我们在互联网和后端服务器之间设置了代理服务器。使用VirtualHost指令可以很好地管理HTTP请求。

我们在代理后面有一个git服务器,我们只想使用ssh访问存储库,但是除去了URL中的端口号。

例如: ssh://backend.server.com:7999 --> ssh://backend.server.com

以下是apache proxy的配置:

ProxyRequests 
ProxyPreserveHost On
ProxyVia Full
AllowCONNECT 7999

AllowCONNECT指令应该通过ssh处理端口7999,但我不确定这个配置是否足够。

在我们通过ProxyPass和ProxyPassReverse管理http时,我需要配置什么来管理ssh协议?

感谢。

1 个答案:

答案 0 :(得分:1)

我可能在这里被误导,因为我不知道Apache如何处理不同类型的流量的所有细节,但AFAIK:

  • ProxyPass和ProxyPassReverse处理 http 请求映射,而不是ssh路径。
  • 事实上,Apache可以处理ssh流量...... 可以吗?
  • 如果您使用的是GNU / Linux服务器,您可以设置一些iptables nat规则,以便在特定端口(例如,端口22)中到达此主机的流量将被转发"到另一个主人。如果您想要使用该路线,则必须添加 -t nat PREROUTING 规则,要求将流量定向到其他主机并且 -t nat POSTROUTING 规则以确保将发送到原始主机的此流量的响应以这种方式返回到此同一主机,以便它可以" denatted" (除非此host是流量从ssh服务器返回到创建ssh请求的主机时流出的路由。)
  • 如果请求将到达Windows服务器,我没有知道如何在那里完成。