當您(或您的計算機)呼叫一個 IP 地址時,您通常是在嘗試聯系互聯網上的另一臺計算機。 但是,如果您調用 IP 地址 127.0.0.1,那么您正在與 localhost 進行通信 – 原則上是與您自己的計算機進行通信。 但是與自己開始虛擬對話有什么意義呢? 您需要 localhost 做什么以及它是如何工作的?
Localhost (127.0.0.1)
什么是本地主機?
在解釋什么是 localhost 時要說明的第一點是,它始終是您自己的計算機:當您調用 localhost 時,您的計算機正在與自己對話。然而,這是一種濃縮的方法。本地主機并不總是與您的計算機直接識別。在大多數情況下,它有一個單獨的 IP 地址,例如 192.168.0.1。在您的個人網絡中,這與您在 Inte.NET 上使用的網絡不同,通常由 Internet 服務提供商動態(tài)分配。當您談論本地主機時,您指的是在您自己的計算機上使用服務器時。
相反,這意味著該術語僅在網絡上下文中使用。 “本地主機”不僅是虛擬服務器的名稱,也是它的域名。就像 .test、.example 或 .invalid 一樣,.localhost 是為文檔和測試目的而保留的頂級域。當您嘗試訪問域時,會觸發(fā)環(huán)回。如果您在瀏覽器中訪問“http://localhost”,請求將不會通過路由器轉發(fā)到 Internet,而是保留在您自己的系統(tǒng)中。 localhost 的 IP 地址為 127.0.0.1,它指的是您自己的服務器。
127.0.0.1 – 環(huán)回如何工作?
IP 地址在網絡內用于相互通信。網絡中的每個參與者都有自己的地址。使用該系統(tǒng)時,通過 TCP/IP 發(fā)送的數據包能夠到達正確的目的地。協議對傳輸控制協議 (TCP) 和互聯網協議 (IP) 是互聯網的一些基石。但是,TCP/IP 也用于 Internet 之外的本地網絡中。在傳輸過程中,互聯網協議負責允許 IP 地址和子網掩碼尋址網絡中的用戶。
公共 IP 地址(可以通過互聯網訪問的地址)的分配由一個國際組織監(jiān)管:互聯網名稱與數字地址分配機構 (ICANN)。 ICANN 還負責域名或域名系統(tǒng) (DNS) 的分配。但是,某些地址范圍是為特殊目的而保留的,例如從 127.0.0.0 到 127.255.255.255 的范圍。沒有關于為什么選擇該范圍的可靠信息,但您可以自由推測。
直到 1990 年代,互聯網上的 IP 地址被劃分為不同的類別。第一類(A 類)以 0.0.0.0 開始(這個地址也是保留的),以 127.255.255.255 結束。 127 是 A 類網絡中的最后一個塊。這個重要的職位可能是它被選中的原因。
可以在此地址范圍內設置 Localnet。這個范圍的特別之處不僅在于它是由 ICANN 保留的,而且它的 IP 地址也不是唯一分配的,這通常是這種情況。但它是如何工作的?
例如,如果您在瀏覽器中輸入 IP 地址(或相應的域名),路由器會將您的請求轉發(fā)到互聯網和正確的服務器。 這意味著如果您輸入 172.217.0.0,您將到達 google 主頁。 但是,情況與 127.0.0.1 不同,因為對該地址的請求不會被轉發(fā)到 Internet。 TCP/IP 從第一個塊 (127) 中識別出您不想訪問 Internet,而是在呼叫自己。 然后這會觸發(fā)環(huán)回。
事實
相反,該協議不接受發(fā)往 127.0.0.1 的外部請求,因為這意味著攻擊者可能會試圖潛入他們的系統(tǒng)。 據報道,從保留 IP 地址(如 127.0.0.1)出現在互聯網上的數據包被稱為火星數據包。
創(chuàng)建一個環(huán)回設備,以便到您自己的計算機的反向鏈接正常工作。 這是通過操作系統(tǒng)創(chuàng)建的虛擬接口。 對于 Unix 系統(tǒng),該界面稱為 lo 或 lo0,也可以使用 ifconfig 命令顯示。 用于 windows 的類似命令是 ipconfig。
本地主機是做什么用的?
開發(fā)人員使用本地主機來測試程序和 Web 應用程序。網絡管理員也可以使用環(huán)回來測試網絡連接。 localhost 的另一個實際用途是 hosts 文件,您可以在其中使用環(huán)回來阻止惡意網站。
- 用于測試目的
本地主機在 Web 服務器中的主要用途是對需要通過 Internet 進行通信的應用程序進行編程。在開發(fā)過程中,重要的是要確定應用程序在可以訪問 Internet 后是否真的按預期工作。 Localhosts 的其他功能只有在可以在 Internet 上找到所需文件的情況下才能實現 – 例如,在您的 PC 上打開 html 文檔或將其加載到服務器上并訪問它是有區(qū)別的。發(fā)布未完成的產品而不進行測試是沒有意義的,因此開發(fā)人員使用環(huán)回來測試它們。他們可以刺激連接,同時避免網絡繞道:相反,連接完全保持在他們自己的系統(tǒng)內。
使用 localhost 進行測試的另一個優(yōu)點是它的速度。當您通過 Internet 發(fā)送請求時,需要 100 多毫秒。如果向 localhost 發(fā)送 ping,最大傳輸時間僅為 1 毫秒。通過這項技術,您還可以了解 Internet 協議是否正確實施。要自己測試,只需打開命令提示符 (Windows) 或終端 (Unix/mac) 并使用 ping 命令。您可以將其發(fā)送到域 localhost 或直接發(fā)送到 IP 地址。
ping localhostping 127.0.0.1
如果您想在您的 PC 上設置您自己的測試服務器以通過 localhost 對其進行尋址,您首先需要安裝正確的軟件。 通常可以在您自己的計算機上運行任何標準 Web 服務器,但也有專門設計用作 localhost 的特殊軟件——例如 XAMPP。
- 阻止網站
本地主機也在主機文件中發(fā)揮作用。 原則上,該文件是域名系統(tǒng) (DNS) 的前身:在其中可以將 IP 地址分配給相應的域。 如果在瀏覽器中輸入網址,需要將域名翻譯成IP地址。 它曾經是主機文件,但現在您通常會使用全球 DNS。 但是,主機文件仍然存在于大多數操作系統(tǒng)中。 對于 Windows,您可以在 system32driversetchosts 下找到該文件; 對于 macOS 和其他 Unix 系統(tǒng),它位于 /etc/hosts 下。
如果您自己沒有進行任何文件更改,則可能還剩下以下兩個條目:
127.0.0.1 localhost::1 localhost
這確保了 localhost 的名稱解析不必通過 Internet 完成。您還可以使用該文件來阻止某些網站。為此,請在列表中輸入要阻止的網站,并為域分配 IP 地址 127.0.0.1。如果您(或者可能是惡意腳本)嘗試調用鎖定的域,瀏覽器將首先檢查主機文件,并在那里找到您的條目。另一種選擇是使用域名 0.0.0.0。
然后瀏覽器會嘗試訪問服務器上對應的127.0.0.1網站。但是,瀏覽器不太可能找到它,因為請求的文件將不存在。但是,如果您已經設置了自己的測試服務器,那么瀏覽器可能會找到 home.html,但這只是您自己的文件。如果您尚未設置自己的測試服務器,則會出現錯誤消息而不是請求的網站。該技術還可用于關閉整個系統(tǒng)的廣告插入。為了不必手動輸入每個條目,您可以在 Internet 上找到已完成且定期擴展的主機文件。