設定では 127.0.0.1 を許可していますが、localhost に接続するアプリケーションは拒否されます。許可リストを広げる前に、アプリケーションがどのアドレスを使ったかを確認してください。

localhost は名前です。環境によって、クライアントを IPv4 loopback、IPv6 loopback、または一連の接続試行へ導くことがあります。IPv4 の送信元ルールは、::1 からの IPv6 接続に必ず一致するとは限りません。

3 つの独立した点を確認する

  1. クライアントがどのアドレスに接続したか。
  2. Tinyproxy がどのアドレスで待ち受けているか。
  3. Tinyproxy がアクセスルールで評価した送信元アドレスはどれか。

接続が拒否された場合は、そのエンドポイントに到達可能なリスナーがなかったことを示します。Tinyproxy のアクセス拒否応答は、接続がサービスに到達し、ポリシーに従って拒否されたことを意味します。これらの障害には別々の修正が必要です。

Tinyproxy 1.11.2 では、リスナーとクライアントアクセスの設定がこの 2 つの制御を別々に示します。ローカル IPv6 クライアントを想定するなら、明示的な Allow ::1 のほうが、ホスト名ベースのルールの挙動に頼るより明確にポリシーを表現できます。

loopback の不一致を解消するためだけに、プロキシをプライベートサブネット全体に開放しないでください。また、loopback は該当するネットワーク環境に対してローカルであることも忘れないでください。コンテナの loopback アドレスは、両者が localhost という名前を使っていても、別のマシンのプロキシを指すものではありません。

診断では、観測した数値のエンドポイントと送信元を使ってください。それらが意図したポリシーと一致すれば、残っているプロキシのログインや宛先の失敗は後続の段階であり、localhost に無制限の例外が必要だという証拠ではありません。

関連記事