【问题标题】:How to setup SSH port forwarding using Apache Reverse Proxy如何使用 Apache 反向代理设置 SSH 端口转发
【发布时间】:2017-11-06 04:42:30
【问题描述】:

我们在互联网和后端服务器之间设置了一个代理服务器。使用 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,但我不确定这个配置是否足够。

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

谢谢。

【问题讨论】:

    标签: git apache ssh proxy


    【解决方案1】:

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

    • ProxyPass 和 ProxyPassReverse 负责 http 请求映射,而不是 ssh 路径。
    • 事实上,Apache 是否可以处理 ssh 流量...完全
    • 如果您使用的是 GNU/Linux 服务器,您可以设置一些 iptables nat 规则,使通过某个端口(例如,端口 22)到达该主机的流量“转发”到另一台主机。如果你想走这条路,你必须添加一个 -t nat PREROUTING 规则来要求将流量定向到另一个主机和一个 -t nat POSTROUTING 规则以确保将发送到原始主机的此流量的响应以这种方式返回到同一主机,以便它可以“变性”(除非该主机是当流量从 ssh 服务器返回到创建 ssh 请求的主机时,流量将流出)。
    • 如果请求将到达 Windows 服务器,我知道这是如何在那里完成的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-27
      • 1970-01-01
      • 2018-03-03
      • 2012-10-07
      • 1970-01-01
      • 2020-12-29
      • 1970-01-01
      • 2022-08-15
      相关资源
      最近更新 更多