我发现与远程服务器相同的 URLlocalhost
不起作用,而127.0.0.1
起作用,反之亦然。
我想要区分 URL 地址中四种形式的服务器指示符:
- 本地主机
- 17.0.0.1
- 计算机名称
- 知识产权
在我的计算机上,示例Apache ActiveMQ
Web 控制台 URL 可以显示如下形式:
(如果我使用了错误的术语或语法,请抱歉,我正在学习英语。)
答案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 将是可行的方法。