如何使用Apache反向代理设置SSH端口转发

5
我们已经在互联网和后端服务器之间设置了代理服务器。使用VirtualHost指令对HTTP请求进行了良好的管理。
我们的git服务器位于代理后面,我们希望仅使用ssh访问存储库,但是去掉URL中的端口号。
例如:ssh://backend.server.com:7999 --> ssh://backend.server.com 下面是apache代理的配置:
ProxyRequests 
ProxyPreserveHost On
ProxyVia Full
AllowCONNECT 7999

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

我需要配置什么来管理ssh协议,就像我们通过ProxyPass和ProxyPassReverse管理http一样?

谢谢。

1个回答

1

我可能会误导你,因为我不知道Apache如何处理不同类型的流量的细节,但是据我所知:

  • ProxyPass和ProxyPassReverse只处理http请求映射,而不是ssh路径。
  • 事实上,Apache能够处理ssh流量吗?
  • 如果您使用的是GNU / Linux服务器,则可以设置一些iptables nat规则,使到达某个端口(例如端口22)的流量被“转发”到另一个主机。如果您想走这条路线,您将不得不添加一个-t nat PREROUTING规则,要求将流量定向到其他主机,并添加一个-t nat POSTROUTING规则,以确保发送到源主机的此流量的响应返回到此主机,以便它可以被“取消nat”(除非此主机是从ssh服务器返回到创建ssh请求的主机时流量流出的路由)。
  • 如果请求将到达Windows服务器,则我不知道该如何处理。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接