HTTP CONNECT 隧道的目标是否可以从客户端和代理访问?

HTTP CONNECT 隧道的目标是否可以从客户端和代理访问?

我正在尝试通过 HTTP 建立 ssh 隧道。我的 apache 虚拟主机配置如下:

<VirtualHost *:443>
    ServerName proxy.example.org
    ProxyRequests On
    AllowCONNECT 22

    <Proxy *>
        Require all denied
    </Proxy>
    <Proxy ssh-container>
        Require all granted
    </Proxy>
</VirtualHost>

Proxytunnel 输出以下内容:

proxytunnel -E -p proxy.example.org:443 -d ssh-container:22                                                                                                       
->
Via proxy.example.org:443 -> ssh-container:22
HTTP return code: 404 Not Found

ssh-container是与 apache httpd 容器位于同一网络的 docker 容器。ssh ssh-container从 apache 容器内部成功。

如果我现在更改ssh-container为从通过 proxy.example.org 请求隧道到 sshd 的客户端(例如 ssh.example.org:22)可访问的内容(例如 ssh.example.org:22),它就可以工作。

那么这是为什么呢?我假设如果我通过 HTTP CONNECT 建立隧道,则只有代理才能到达目标。我怀疑有一些 DNS 问题(例如客户端必须解析 DNS),但即使通过代理与容器 IP 作为目标连接也不起作用。

相关内容