Localhost
localhost是一个主機名,佇電腦網路內底用著代表一百二十七刣空 . 空壕一這个為表示 " 本計算機 " 所保留的所在。伊予人用過本地環回網路介面,來存取本機執行的服務,並且將會踅過任何物理網路介面硬體。
本地環迴
運用本地環迴機制,便可佇主機頂面運行網路服務,期間毋免共實體網路介面卡,嘛無需要服務開放予主機的所在網路。比如講,佇咧設定好本地安裝的網站了後,會過 ` http : / / localhost ` 這一網址,來取本地的網站。
localhost 這主機名稱一般會解說 IPv 四本地環回地址 ` 一百二十七孵空 . 空七一 ` 和 IPv 六本地環回位址 ` [: : 一] `。
名稱解析
IPv 四網路標準將規个一百二十七堵空 . 零 . 八分之空位址塊訂做保留位址,供本地環回使用,規个位址箍內有超過一千六百萬个 IP 位址。所以乎,傳送來到遮的所在(一百二十七孵空 . 空九一到一百二十七堵二五五 . 兩百五十五鋪二五)的所有封包攏會轉去本機。位址一百二十七堵空 . 零吱一是 IPv 四環回的捷用標準住址,賰的位址並毋是所有的作業系統攏支援。猶毋過,使用一百二十七堵空 . 零 . 八分之一內的無仝位址,就會當佇咧本機頂頭設定偵聽相仝埠頭的濟粒侍服器。IPv 六標準干焦分配一个本地環回位址:[: : 一]。
欲共在地主機名 localhost 解破著一个抑是幾若个 IP 位址,會當通過著作業系統的 hosts 檔案當中添加以下的代碼實現:
` ` ` 一百二十七孵空 . 空七一 localhost
- : 一 localhost
` ` `
本地主機名嘛會當由 DNS 侍服器解析,猶毋過這一主機名的解破請求,應該佇本地處理,毋是傳送去遠端侍服器。
除了對映到環回地址(一百二十七孵空 . 零吱一和 : : 一)以外,localhost 猶閣會當對伊映著其他的 IPv 四環回地址,閣較會當共其他的名稱抑是附加名稱分配予任何迴環位址。猶毋過,佇咧 hosts 檔案抑是講 DNS 中為 localhost 這个主機名設定對映位址的時陣,假使新設定的對映位址並無佇原本指定的對映位址範圍內,所作對映無一定會生效,因為應用程式內部可能已經對 localhost 進行對映操作。
佇咧域名系統當中,localhost 予人留頂級域名,上頭仔的目的,是欲予人留出來避免佮用佇咧回送的主機名透濫。IETF 標準禁止域名註冊商分配 localhost 名稱。
IETF 標準
名稱localhost由 RFC 六千七百六十一(特殊用途域名)保留,用環回。該當咧二空一三年二月達到矣建議標準成熟度級別。該標準規定了一寡特殊的考慮因素,規範其在域名解析系統中的使用:
- localhost 的 IPv 四抑是 IPv 六个址查詢必須愛解破相應的環回位址,址佇單獨的標準中指定。
- 應用會當家己解破環回位址,或者是共𪜶交予本地解析器機制。
- 做名稱解析器收著 localhost 的地址(A 抑是 AAAA)查詢的時陣,伊應該倒轉來適當的環回位址,佮其他請求的記錄類型的請求回應。無應該共在地主機的查詢轉到緊號名稱侍服器。
- 為著避免使域名系統根侍服器負擔流量,緊號名稱侍服器無應該請求本地主機會的名稱侍服器記錄,嘛莫向權威名稱侍服器轉發解析。
- DNS 註冊商袂當佇頂懸 localhost 中委派域名。
- 欲描述規定的提早,做權威名稱侍服器收著'localhost'查詢請求的時陣,應該適當處理。
IPv 四環回位址 IETF 特殊用途 IPv 四个址標準(RFC 五千七仔三十五)佇咧 IPv 四个址中保留空間,會當追溯到一九八六年十一月分配號碼標準(RFC 九百九十)。
比並之下,IETF IPv 六定址體系結構標準(RFC 四千兩百九十一)佇咧 IPv 六位址空間內保留單一个 IPv 六環回住址 : : 一。該標準排除了共這个位址分配給任何物理介面,猶閣有佇任何封包中,共其用做傳送去遠端主機的源位址抑是目標位址的用途。任何這類被錯誤傳輸的封包攏無應該愛予路由轉發,並且應該予人接收去伊的所有的路由器抑是主機共擲捒。
數據包處理
任何發往環迴位址的數據包,其處理攏佇咧 TCP / IP 協定疊的鏈路層中實現的。遮的數據包袂交予網路卡(NIC)抑是裝置驅動程式處理,既然無應該佇電腦系統以外出現,也不可經路由器轉發。按呢喔一來,電腦即使無實體網路卡,也會當進行軟體測試或者是運行本機服務。
環回封包佮其他的任何通過 TCP / IP 協定棧的封包干焦通過定址到的特殊 IP 位址進行區分。所以,落尾接收著的服務共根據指定的目的地進行回應。比如講,HTTP 服務會當將發往一百二十七交零 . 空九九九 : 八十佮一百二十七孵空 . 空七一空空 : 八十的封包路由著無仝款的 Web 侍服器,抑是傳送去到倒轉來無仝網頁的單一侍服器。為著簡單的這種測試,會當將 hosts 檔案組態做每一个徛名提供合適的名。
有環回源位址抑是目標位址的封包,佇環回介面上收著著愛予人刣掉。這種封包有時予人叫做火星包。佮其他的虛假包仝款,𪜶可能是惡意的,𪜶𤆬來的問題會當通過 bogon 濾波避免。
特殊情況
佇咧 MySQL 資料庫頂頭,使用主機名 localhost 和位址一百二十七堵空 . 零吱一和 : : 一是有差的。當佇應用程式的客戶捀連接器介面中使用 localhost 成做目標的時陣,MySQL 的 API 使用 Unix 域通訊端連接著資料庫,若通過環境介面的 TCP 連接需要直接使用顯式位址。
佇咧 Android Studio 開發中所使用的模擬器,其網路環境的本地主機的名稱 localhost 位址通常替十七點空 . 二嬸二,但是其實伊本身就是一百二十七堵空 . 空吱一个址。
使用一百二十七堵空 . 零 . 八分之空網路位址的時,一个值得注意的例外是,𪜶用佇加協定標籤交換(MPLS)佮蹤路由錯誤檢測中,𪜶的不可路由屬性提供了一種方便的方法來避免向終端使用者傳送錯誤封包。
另見
- 專用網路
- 保留 IP 位址