在阅读有关 Linux 的文章时,我得到:
您只需键入不带参数的主机名即可查看系统的主机名。
anupam@JAZZ:~$ hostname
JAZZ
然后我发现了这个:
special
hostname
localhost
与 IP 地址相关联127.0.0.1
,并描述了您当前所在的机器(通常具有额外的与网络相关的 IP 地址)。
我试过了:
anupam@JAZZ:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 JAZZ
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
我在这里感到困惑,但与之关联的 IP不是。
hostname
这不是按照描述的第二部分。JAZZ
JAZZ
127.0.1.1
127.0.0.1
另一个问题:我可以使用我的动态 IP(由 DHCP 在我的 wifi 连接中配置)作为本地主机来托管我的 html 或 php 文件吗?
我猜localhost
和在这里hostname
表示相同localhost
。并且也称为loopback address
,对应于 127.0.0.1 不是吗?
你问了两个问题,所以我必须把它们分开。
首先,关于你的前两行
/etc/hosts
这里有几个部分我们必须考虑。首先,
localhost
和JAZZ
都在本地环回地址上。127.0.0.1
和127.0.1.1
分别。IP 地址的“环回”范围是
127.0.0.0 - 127.255.255.255
. 所有这些都被认为是“本地环回”,并且这些地址中的任何一个在技术上都被认为是“本地”。但是,将localhost
127.0.0.1$HOSTNAME
放在它自己的127.0.1.1
或该名称空间中的其他地址上并没有什么坏处。考虑到这
127.0.0.1 - 127.255.255.255
都被认为是本地环回,当引用您自己的主机名时,在该名称空间内本地分配哪个地址并不重要。(话虽如此,您习惯/etc/hosts
使用localhost
as127.0.0.1
,因为这通常是系统处理它的方式。从理论上讲,您可以将它放在任何东西上,但这127.0.0.1
是默认设置,通常是它所处的位置。)同样,您的消息来源引用了以下内容:
它特指
localhost
, 而不是您机器的主机名。你的第二个是关于你的动态IP。
那应该是它自己的问题,但我认为我们需要重新定义您的要求。你问这个:
让我们改变这个来问这个:
我这样重新定义你的问题,因为你不能
localhost
在你的电脑之外使用。127.0.0.1 - 127.255.255.255
只能在那台电脑上工作。如果您要求192.168.x.x
为您的文件使用您的动态(或在您的 wifi 上配置的任何私人 IP 范围)地址,您将使用该 IP 来指代您的计算机,而不是您网络上其他地方的本地主机。为此,您的路由器需要能够解析
HOSTNAME
来自其他系统的查询并指向私有内部 DHCP 地址,或者每个其他系统都需要hosts
编辑其文件以指向hostname
DHCP 地址。现在,如果您想在网络外部托管文件,您将需要两件事:(1) 来自某个动态 DNS 提供商的动态 DNS 地址。(2) 从您的路由器端口转发到您的内部计算机地址。(不过,还有其他问题和答案可以解决这个问题,因此我不在这里详细介绍)