Answers:
一些服务被配置为仅侦听本地主机IP地址。
一个示例就是MySQL数据库-您希望在同一服务器上运行的PHP应用程序连接到该数据库,但不希望任何外部服务,甚至不希望来自外部的黑客进行连接。通过将MySQL配置为仅接受本地主机地址(127.0.0.1
例如),而不接受服务器的真实IP地址(10.x.x.x
例如),可以减少受到威胁的机会。
因此,回答您的问题-是的,它们是不同的。
localhost
被赋予127.0.0.0
网络中的IP地址,并被提供给虚拟环回网络设备lo
。该设备存在于所有系统上,无论它们是否装有物理网络设备(例如WiFi或以太网)。未连接到任何网络的系统将具有此回送设备,并因此具有127.0.0.0
地址。该名称localhost
仅是解析为该IP地址并在中配置的名称/etc/hosts
。
您的真实 IP地址(例如10.xxx)已分配给网络设备。这通常是物理网络设备(WiFi或以太网),尽管使用tun
或tap
设备的高级设置也可以使用它们。再次,名称解析(例如www.example.org
到10.0.1.1
)可在被配置成/etc/hosts
或可被设置为使用DNS。
127.0.0.1
是 localhost
,它是当前计算机的地址,可通过回送接口(而不是通过网络适配器)访问-即使系统中没有网络芯片也可以使用)。
您从路由器获得的IP是另一回事:它是允许网络上其他计算机找到您的地址。好了,您也可以在同一台机器上使用该ip,但是它的工作原理与以前不同:它先进入路由器,然后再进入(我在这里简化了,但这是一般的想法)。
而且,如果您已连接到Internet,那么您还将从ISP获得另一个IP,即全世界其他计算机找到您的IP。但是,这两个至少引用相同的网络适配器(eth0
或无线网卡或其他任何东西)。localhost
是不同的。
从进行访问时,操作系统,服务器等...的行为可能有所不同localhost
。通常,您通常没有防火墙,并且许多本地服务都具有localhost
仅用于与应用程序通信的接口。很多时候,您将要通过首先将其挂接以localhost
仅进行侦听来测试Web服务器,以便您可以检查它是否有效,而其他人则不能。然后,您可以重新配置以侦听您的外部ip地址并开始为网站提供服务(并再次测试一切是否仍然有效)。
network is unreachable
或类似的东西。诀窍是(至少使用dhcp)首先是为您提供LAN ip的路由器。如果路由仍然存在,这在某些情况下可能会有所不同,但从本质上讲,对于LAN ip,您需要LAN,对于外部ip,您需要与ISP的连接。
当您访问时localhost
,您的/etc/hosts
文件将告诉您的计算机不要再查找了,并将您重定向到您自己的计算机。当您访问本地IP地址时,您的计算机将要求路由器获取数据,然后您的路由器将指向您的计算机。