localhost vs 127.0.0.1 vs 计算机名称 vs url 中的 ip

localhost vs 127.0.0.1 vs 计算机名称 vs url 中的 ip

我发现与远程服务器相同的 URLlocalhost不起作用,而127.0.0.1起作用,反之亦然。

我想要区分 URL 地址中四种形式的服务器指示符:

  1. 本地主机
  2. 17.0.0.1
  3. 计算机名称
  4. 知识产权

在我的计算机上,示例Apache ActiveMQWeb 控制台 URL 可以显示如下形式:

  1. http://本地主机:8161/
  2. http://127.0.0.1:8161/
  3. http://mjm:8161/
  4. http://192.168.20.92:8161/

(如果我使用了错误的术语或语法,请抱歉,我正在学习英语。)

答案1

这一切都与地址解析有关。

通常,http://本地主机:8161将访问http://127.0.0.1:8161。当您向 localhost 发出请求时,在发出 DNS 请求之前,您的操作系统将查看 HOSTS 文件(Linux 中为 /etc/hosts)并将在那里看到一条规则,即 localhost 映射到 127.0.0.1。

有时,localhost 会映射到不同的 IP,例如 127.0.1.1。这可能会导致 localhost 和 127.0.0.1 之间出现故障。(例如,您的服务配置为侦听映射到 127.0.1.1 的 localhost,而您尝试访问 127.0.0.1)。

如果您使用主机名,您的操作系统可能会在网络堆栈上走得更远,甚至可能会发出 DNS 请求来发现主机 IP,然后尝试访问该 URL。

当您使用 IP 地址时,您的 SO 将尝试使用给定的 IP 地址访问该 URL。

答案2

不太确定我是否理解了这个问题,但是您是否想知道这 4 个 URL 之间有什么区别?

如果是这样的话:

127.0.0.1(本地计算机的环回 IP)localhost(解析为 127.0.0.1 地址)

^ 以上两个无法从您网络中的其他设备(其他工作站++)访问

在这种情况下,mjm 和 192.168.20.92 是连接同一台计算机的两种方式,可以从“外部”访问。

如果您想从不同的工作站连接到您的 Apache ActiveMQ;计算机名或 192.* IP 将是可行的方法。

相关内容