web-dev-qa-db-ja.com

HOSTSファイルに「127.0.0.1localhost」が必要なのはなぜですか?

すべてのネットワーク接続を無効にし、HOSTSファイルの127.0.0.1 localhostを削除しましたが、何が壊れたのかわかりません。私のIISおよびMSSQL Server 2008R2は引き続きlocalhostを問題なく解決します

HOSTSファイルに常に127.0.0.1 localhostが含まれているのはなぜですか?
このエントリを削除して何が壊れたのですか?

私はWindowsを使用していますXP Pro SP3は、HOSTSファイルにローカルホストなしでここに書き込みます。
元に戻す必要がありますか?


関心のある理由はたくさんあります-例えば:


------UPDATE05:

私は質問を変えていません!更新を追加します。釣りをしたと書くまで、削除と編集をやめるように頼むことはできますか?たとえば、ちょうど今、私は同じポイントに対処するすべての投稿に同じコメントを書きました。

これは私の質問/疑問の本質です-DNSは「localhost」または「127.0.0.222」または「(ローカル)」の名前、同義語、エイリアス、リンク、アドレス、ID、トークンに関しては意味がありません。なんでも。

それらは同じエンティティの何百もの同義語であり、内部であり、Windows-esは、非常に多くの同義語間で解決する意味がないため、解決なしでそれを知っています!

DNSが外部(さまざまなコンピューター間)にある間、これらは内部コンピューターメカニズムに関連しています。内部IDは外部IDにどのように依存できますか?

すべてのWindows(Home Editionを含む)は機能するために内部DNSサーバーを備えていますか?ネットワークに接続されている場合は複製しますか?

さて、私が言われたように、コメントからのリンクはリンクされたセクションに現れませんでした。

私は子供のサブ質問をフォークしました:
https://stackoverflow.com/questions/3536351/is-localhost-Host-resolved-to-127-0-0-1

Hostsファイルは、正規名または完全修飾名をIPアドレスに関連付けるだけです。

たとえば、私は持つことができます:

127.0.0.1  moes-bar-and-grill

次に、moes-bar-and-grillに接続するものはすべて、ループバックデバイス(別名127.0.0.1)への接続を確立します。これは通常、localhostとして解決されます。

私も持つことができました(そしてこれは非常に一般的です)

127.0.0.1  annoying-ad-server.com

localhostが解決されない場合、アプリケーションは127.0.0.1(まだ構成済み/アップインターフェイス)に接続するため、アプリケーションは引き続き機能します。

なぜループバックアドレスを無効にするかはわかりませんが、Hostファイルからlocalhostを削除するだけでは無効になります。

編集

まあ書かれたソフトウェアは、死ぬ前に何かを解決しようと複数回試みます(問題を回避するという意味で解決し、しゃれは意図していません)、場合によっては機能し続けます物事が期待どおりでない場合。これは、ソフトウェアが宣伝どおりに機能することを意味するのではなく、非常に防御的なプログラマーによって作成されたことを意味するだけです。

非常に防御的は、たとえばlocalhostが解決しないなど、深刻な問題が存在することをユーザーに伝える場合に必ずしも役立つとは限りません。ユーザーがシステムに対して何を行っても、テストに合格するものを書くことはできますが、それは「これは機能しません!」の原因を促進するものではありません。 実行動作の間には大きな違いがあり、プログラムを実行するたびに、時間の経過とともに2つの違いを調べるだけです。実行します。

すべてがうまくいっているように見えますが、今、あなたは後でトラブルに向かうかもしれないと思います。

免責事項:私は生活のためのソフトウェアを書いています。

13
Tim Post

ホストファイルは、IPアドレスとホスト名の間のマッピングであるため、ホスト名を入力すると、指定されたアドレスに解決されます。

この行を削除すると、Windowsが「localhost」を取得して「127.0.0.1」にマッピングするのを停止します。

あなたがそれを「うまくいく」と見ている理由は2つ考えられます。

  1. マシンを再起動していないため、マッピングはまだメモリに残っています。
  2. あなたがそれを試したアプリケーションはあなたのためにマッピングを行います。

#2が適用される限り、それは必要ありませんが、マッピングを行わなかったアプリケーションを使用した場合、失敗します。

したがって、バランスをとって、ラインを元に戻す必要があります。ただし、緊急の問題としてそれを行う必要はありません。

3
ChrisF

Windows-esは、127.0.0.1localhostの両方(およびそれ自体の同義語)を心から知っていると思います。そして、おそらく、それは内部的に何も解決しないという答えです。

再起動後、localhostを解決する機能が失われたかどうかを確認します

しかし、なぜそうなるのでしょうか。
その意味は何ですか?

MS SQL Serverは、localhost名だけでなく、(local)および.(単一記号のドット)を介して解決(接続)します。

したがって、localhostは便利です(数字やドットの代わりに文字を書くため)。
ローカルホストから127.0.0.1への変換はばかげています
デジタルアドレス(数字)が名前に解決され、コンピューターが内部でさらに使用することを聞いたことがないためです。

これで、127.0.0.1(またはlocalhost)だけでなく、127.0.0。*の範囲の任意のアドレスを介してローカルMSSQLServerに接続できます(たとえば、ローカルに接続したことを確認しました) MSSQLServerから127.0.0.2)

もしそうなら、このHOSTSエントリをWTFしますか?

私を正しい考えの方向に導き、混乱から抜け出してくれたティム・ポストに感謝します。