
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を使用してプロキシ経由で接続しても機能しません。