CURLOPT_CONNECT_TO は、一致する宛先に対して libcurl が接続するホストとポートを変更します。代替エンドポイントが HTTP CONNECT や SOCKS を話すようになるわけではありません。

元のホスト名はアプリケーションプロトコルと TLS の身元を引き続き提供します。これは同じサービスの別のサーバーインスタンスへ意図的に到達する場合に有用です。一方、任意のプロキシリスナーはアプリケーションの生のバイト列ではなく、自身のプロキシハンドシェイクを待ちます。

マッピングを HTTP プロキシと組み合わせる

HTTP プロキシを別途設定してください。公開サービスへの認証情報なしの HTTP 経路は、その仲介者が許可されている場合に HTTP プロキシ一覧のエンドポイントを使えます。既存のプロキシアカウントを候補へ送るべきではありません。libcurl は、異なる connect-to マッピングによって要求がトンネルモードに切り替わり得ることを記録しています。プロキシがマップされた宛先への接続を開くのです。マッピングはプロキシ経由で何に到達するかを選ぶものであり、プロキシ設定を置き換えたわけではありません。

三つの値を別々に保ってください。意図するサービス名、代替の接続エンドポイント、プロキシのエンドポイントです。各オプションは実際の役割に応じて選び、サービスには通常の TLS 名検証を残します。

プロキシのポート自体が接続を拒否する場合、同じ不在のリスナーを指す別のオプションでは最初のホップを直せません。宛先マッピングを変える前に、そのリスナーまたは経路の障害を解決してください。

関連記事