
_START_ARTICLE_
Localhost
_START_SECTION_
本地环回
_START_PARAGRAPH_
运用本地环回机制，便可在主机上运行网络服务，期间不须安装实体网络接口卡，也无须将该服务开放予主机所在网络。例如，在设置好本地安装的网站后，可通过http://localhost这一网址，来访问本地网站。_NEWLINE_localhost这个主机名称一般会解析为IPv4本地环回地址127.0.0.1和IPv6本地环回地址[::1]。
_START_SECTION_
名称解析
_START_PARAGRAPH_
IPv4 网络标准将整个127.0.0.0/8 地址块订为保留地址，供本地环回使用，整个地址块内有超过1600万个IP地址。所以，发送到这些地址（127.0.0.1 到 127.255.255.255）的所有数据包都会返回本机。 地址 127.0.0.1 是 IPv4 环回的常用标准地址; 其余地址并不是所有的操作系统都支持（多数人也不知道有这些地址）。但是，使用127.0.0.1/8内的不同地址，就可以在本机上设置侦听相同端口的多个服务器。 IPv6 标准只分配了一个本地环回地址:[::1]。_NEWLINE_要将本地主机名localhost解析到一个或多个IP 地址，可通过在操作系统的hosts 文件中添加以下代码实现：_NEWLINE_127.0.0.1    localhost_NEWLINE_::1          localhost_NEWLINE_本地主机名也可以由DNS 服务器解析，但这一主机名的解析请求，应在本地处理，而非发送到远程服务器。_NEWLINE_除了映射到环回地址（127.0.0.1 和 ::1）之外，localhost 还可以映射到其他IPv4 环回地址，更可以将其他名称或附加名称分配给任何回环地址。不过， 在 hosts 文件或DNS 中为localhost这个主机名设置映射地址时，假如新设置的映射地址并不在原本指定的映射地址范围内，所作映射不一定会生效，因为应用程序内部可能已对localhost进行映射操作。_NEWLINE_在域名系统中，localhost 被留作顶级域名，最初的目的，是要被留出以避免与用于回送目的的主机名混淆。IETF 标准禁止域名注册商分配localhost 名称。
_START_SECTION_
数据包处理
_START_PARAGRAPH_
任何发往环回地址的数据包，其处理都在TCP/IP 协议叠的链路层中实现的。这些数据包不会交由网卡（NIC）或者设备驱动程序处理，既不应在计算机系统以外出现，也不可经路由器转发。如此一来，计算机上即使没有实体网卡，也可进行软件测试或者运行本机服务。_NEWLINE_环回数据包与其他任何通过TCP/IP 协议栈的数据包仅通过寻址到的特殊IP地址进行区分。因此，最终接收到的服务将根据指定的目的地进行响应。例如，HTTP服务可以将发往127.0.0.99:80 和 127.0.0.100:80 的数据包路由到不同的Web 服务器，或发送到返回不同网页的单一服务器。为了简化这种测试，可以将hosts 文件配置为为每个地址提供合适的名称。_NEWLINE_具有环回源地址或目标地址的数据包，在非环回接口上收到则必须被删除。这种数据包有时被称为火星包。和其他虚假数据包一样，它们可能是恶意的，它们带来的问题可以通过bogon 滤波避免。
_START_SECTION_
特殊情况
_START_PARAGRAPH_
在 MySQL 数据库上，使用主机名localhost 与地址127.0.0.1 和 ::1 是有差异的。当在应用程序的客户端连接器接口中使用localhost 作为目标时，MySQL 的 API 使用 Unix 域套接字连接到数据库，而通过环回接口的TCP 连接需要直接使用显式地址。_NEWLINE_使用 127.0.0.0/8 网络地址时，一个值得注意的例外是，它们用在多协议标签交换（MPLS）跟踪路由错误检测中，它们的不可路由属性提供了一种方便的方法来避免向最终用户传送错误数据包。