localhost vs 127.0.0.1 vs 電腦名稱 vs url 中的 ip

localhost vs 127.0.0.1 vs 電腦名稱 vs url 中的 ip

我看到相同的網址,localhost因為遠端伺服器不起作用,並且127.0.0.1起作用,反之亦然。

我想要 url 位址中四種形式的伺服器指示符之間的區別:

  1. 本機
  2. 17.0.0.1
  3. 電腦名稱
  4. ip

對於範例Apache ActiveMQWeb 控制台 url 在我的電腦中可以顯示為以下形式:

  1. http://本地主機:8161/
  2. http://127.0.0.1:8161/
  3. http://mjm:8161/
  4. http://192.168.20.92:8161/

(抱歉,如果我使用了錯誤的術語或文法,我正在學習英語。)

答案1

這都是關於位址解析的。

通常,http://本地主機:8161將訪問http://127.0.0.1:8161。當您向 localhost 發出請求時,在發出 DNS 請求之前,您的作業系統將查看 HOSTS 檔案(Linux 中的 /etc/hosts),並會看到一條規則,表示 localhost 對應到 127.0.0.1。

有時,localhost會對應到不同的IP,例如127.0.1.1。這可能會導致 localhost 和 127.0.0.1 之間發生故障。 (例如,您的服務已配置為偵聽映射到 127.0.1.1 的 localhost,並且您嘗試存取 127.0.0.1)。

如果您使用主機名,您的作業系統可能會在網路堆疊上走得更遠,甚至可能發出 DNS 請求來發現主機 IP,然後嘗試存取該 URL。

當您使用 IP 位址時,您的 SO 將嘗試使用給定的 IP 位址存取該 URL。

答案2

不太確定我是否明白這個問題,但是您想知道這 4 個網址之間有什麼區別嗎?

如果是這樣的話:

127.0.0.1(本機的環回 IP) localhost(解析為 127.0.0.1 位址)

^ 以上兩個無法從網路中的其他設備(其他工作站++)存取

在這種情況下,mjm 和 192.168.20.92 是連接到同一台電腦的兩種方式,可以從「外部」存取。

如果您想從不同的工作站連線到 Apache ActiveMQ;電腦名稱或 192.* IP 將是最佳選擇。

相關內容