brew でインストールした jenkins が localhost では接続できないが 127.0.0.1 だと接続できるのはなぜ?


brew でインストールした jenkins があります。

この jenkins は、(ブラウザから) `localhost:8080` でアクセスしても接続できませんが、 `127.0.0.1:8080`
ではアクセスが可能です。

localhost は 127.0.0.1 に解決するはずなので、この挙動は何かおかしいと思っています。

### 質問

  * localhost で接続できないけれども、 127.0.0.1 からアクセスできるのは、どうしてなのでしょうか。




IPv6が有効な環境であれば、`localhost`は`::1`(IPv6のループバックアドレス)で解決される可能性があります。  
そのため、JenkinsがIPv4のみ接続を待ちうけているならば、`localhost`では接続できず、`127.0.0.1`だと接続できる、という事象が生じます。

このあたりを確認してはどうでしょうか?

追記

確認方法の一つとして、`wireshark`等、パケットキャプチャができる環境であれば、「`lo0`」(ループバックインターフェース)をキャプチャすると、「`localhost:8080`」にアクセスした際に「`127.0.0.1`」に向かっているか見えると思います。

OP追記

`curl -v localhost:8080` の結果、 `::1` で解決されているようだ、と確認できました。




IPv6が有効な環境であれば、`localhost`は`::1`(IPv6のループバックアドレス)で解決される可能性があります。  
そのため、JenkinsがIPv4のみ接続を待ちうけているならば、`localhost`では接続できず、`127.0.0.1`だと接続できる、という事象が生じます。

このあたりを確認してはどうでしょうか?

追記

確認方法の一つとして、`wireshark`等、パケットキャプチャができる環境であれば、「`lo0`」(ループバックインターフェース)をキャプチャすると、「`localhost:8080`」にアクセスした際に「`127.0.0.1`」に向かっているか見えると思います。

OP追記

`curl -v localhost:8080` の結果、 `::1` で解決されているようだ、と確認できました。

