本地主機位址 127.0.0.1 和 127.0.1.1 有什麼差別

本地主機位址 127.0.0.1 和 127.0.1.1 有什麼差別

我剛剛學習使用 Ubuntu,當我嘗試配置 DNS 時,我需要處理一些稱為 localhost、環回介面的東西。誰能解釋一下它們之間的差異以及地址 127.0.0.1 和 127.0.1.1 的含義,什麼時候應該使用 127.0.0.1,什麼時候應該使用 127.0.1.1

答案1

當你的機器啟動時,它需要知道一些主機名稱到 IP 位址的映射,然後才能引用 DNS。該映射保存在/etc/hosts文件中。如果沒有名稱伺服器,系統上的任何網路程式都會查閱此檔案以決定與主機名稱對應的 IP 位址。

環回設備是一種特殊的虛擬網路接口,您的電腦使用它與自身進行通訊。它主要用於診斷和故障排除,以及連接到本地電腦上運行的伺服器。

環回為接口lo,預設IP位址為127.0.0.1。

127.0.0.1 localhost

Debian 和 Ubuntu 選擇定義 127.0.1.1 來對應您的 host_name 的 IP 位址,以防您沒有網路。

host_name 與 中定義的主機名稱相符/etc/hostname

對於具有永久 IP 位址的系統,此處應使用該永久 IP 位址而非 127.0.1.1。

127.0.1.1 host_name

答案2

它實際上並沒有什麼特別的含義(它只是 127.0.0.0/8 區塊中的另一個 IP)。

其用作主機名稱 IP 的原因在第 10.4 節中進行了解釋Debian 參考手冊

引用:

某些軟體(例如,GNOME)期望系統主機名稱可解析為具有規範完全限定網域名稱的 IP 位址。這確實不合適,因為系統主機名稱和網域名稱是兩個截然不同的東西;但是你現在有了。為了支援該軟體,必須確保可以解析系統主機名稱。大多數情況下,這是透過在 /etc/hosts 中放置一行包含一些 IP 位址和系統主機名稱來完成的。如果您的系統有永久 IP 位址,則使用該位址;否則使用位址 127.0.1.1。

答案3

下面的螢幕截圖講述了一個有趣的故事。

Ubuntu 預設 /etc/hosts 檔案和 ifconfig 輸出

實際上,它表明這127.0.0.1是真正的環回地址。因此,127.0.1.1除了基本 IP 網路之外,還有其他原因嗎?

正如 @Videonauth 所提到的,這條127.0.1.1線就像一個拐杖,一個修復,讓挑剔的軟體變得快樂。

在我看來,環回條目幾乎應該始終位於/etc/hosts.如果您變更預設的主機名localhost,請變更該行上的主機名127.0.1.1,而不是該127.0.0.1行上的主機名稱。

如果變更主機名稱並為電腦指定靜態 IP,請變更 127.0.1.1 行中的主機名稱和 IP 欄位。

簡而言之,不要管127.0.0.1記錄。

答案4

127.0.0.1 是環回位址,俗稱localhost,是本地主機檔案解析為它的名稱。根據作業系統的不同,該檔案位於不同的位置,但在大多數 Linux 發行版中,它位於/etc/hosts.該位址始終指的是發出請求的計算機,因此 127.0.0.1 可以說不是「真實」位址。每個設備都有自己的localhost.另一方面,某些軟體使用 127.0.1.1 表示相同的意思,在某種程度上是別名,但事實並非如此。你的機器內部使用的環回位址應該是127.0.0.1,所以不要在你的hosts檔案中弄亂這個位址!

相關內容