新しいWindows Server 2008 R2マシンにサードパーティのソフトウェア製品をインストールしてみましたが、localhost
などのループバックアドレスまたはコンピューター名(例:VPS-Web
localhost
に解決されます)。 IPv6は使用していません。ソフトウェアに互換性があるまでIPv6を無効にしたいと考えています。
これらの手順を Windows 2008 R2でIPv6を無効にする に使用してみましたが、localhost
のプロトコルは無効になりませんでした。 localhost
またはVPS-Web
にpingを実行しても、::1:
ではなく127.0.0.1
が返されます。 ping localhost -4
を使用して正しいアドレスを取得できますが、IPv6がIPv4よりも優先されるため、サードパーティのソフトウェアはIPv6アドレスのみを取得します。
私は最初にSilverbackNetが示唆するようにホストファイルをチェックしましたが、Windows 2008 R2サーバーではこれがデフォルトファイルです。
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
#
はHostファイル内のコメントを示しているため、すべてのエントリがコメント化されており、最初の行は少しわかりにくいです。次に、コメント化されたlocalhostのエントリが2つあることに気付いたので、IPv4のコメントを外してみましたが、うまくいきました。私は最初にそれを試すべきだったのですが、私は最初のラインでトラックから外されました。以下のホストファイルを使用して、コンピューター名またはlocalhostにpingを送信すると、常にIPv4アドレスが返され、サードパーティソフトウェアの問題が修正されます。
# localhost name resolution is handled within DNS itself.
# ::1 localhost
127.0.0.1 localhost
127.0.0.1 VPS-Web
「DisabledComponents」= 0x20の設定
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters \
プレフィックスポリシーでIPv6ではなくIPv4を使用するようにそのマシンを設定します。
レジストリキーが存在しない場合は作成します。
%systemroot%\ system32\drivers\etcのhostsファイルからエントリを削除してみましたか? 「localhost」が常にIPv4である必要がある場合は、これで十分です。ただし、サーバー名に基づいている場合、これはおそらく機能しません。
これを行うには、DisabledComponents
レジストリ値の使用に関する最初のServerFaultスレッドが本当に最善の方法です。ホストファイルの微調整は、正常に機能しているネットワークでは必要ありません。 Active Directoryがある場合、レジストリのTweakもはるかに簡単です。
これが機能しなかった理由は、そのDisabledComponents
レジストリ設定がビットフラグのセットとして読み取られ、単にオンまたはオフではないためです。この件に関するMicrosoftの公式ドキュメントは次のとおりです。
Windows 7、Windows Vista、Windows Server 2008 R2、およびWindows Server 2008でIPバージョン6(IPv6)またはその特定のコンポーネントを無効にする方法
短いバージョンでは、Vista/2008以降でIPv6を完全に無効にするには、DisabledComponents
の値を0xff
に設定します。これは、IPv6を明示的に使用していない管理対象のすべてのマシンで行います。これは、ipconfig
コマンドの出力を大幅に短縮するという素晴らしい副作用があります。
NIC自体のプロパティに移動し、IPv6ボックスをオフにして、IPv4を有効にしたままにすることもできます。トリックを実行する必要があります。