我看到相同的網址,localhost
因為遠端伺服器不起作用,並且127.0.0.1
起作用,反之亦然。
我想要 url 位址中四種形式的伺服器指示符之間的區別:
- 本機
- 17.0.0.1
- 電腦名稱
- ip
對於範例Apache ActiveMQ
Web 控制台 url 在我的電腦中可以顯示為以下形式:
(抱歉,如果我使用了錯誤的術語或文法,我正在學習英語。)
答案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 將是最佳選擇。