在阅读有关 Linux 的文章时,我了解到:
您只需输入不带参数的 hostname 即可查看系统的主机名。
anupam@JAZZ:~$ hostname
JAZZ
然后我发现了这个:
该特殊
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(由我的 wifi 连接中的 DHCP 配置)作为本地主机来托管我的 html 或 php 文件吗?
我猜localhost
和hostname
在这里表示相同的意思。localhost
也称为loopback address
,它对应于 127.0.0.1 不是吗?
答案1
你问了两个问题,所以我必须把它们分开。
首先,关于你的前两行/etc/hosts
这里有几个部分我们需要考虑。首先,localhost
和JAZZ
分别位于本地环回地址127.0.0.1
和127.0.1.1
。
IP 地址的“环回”范围是。所有这些都被视为“本地环回”,并且从技术上讲,这些地址中的任何一个都被视为“本地”。但是,将 127.0.0.1 及其自身或该命名空间内的其他地址127.0.0.0 - 127.255.255.255
放在一起并没有什么坏处。localhost
$HOSTNAME
127.0.1.1
考虑到所有这些127.0.0.1 - 127.255.255.255
都被视为本地环回,在引用您自己的主机名时,在该命名空间内本地分配哪个地址实际上并不重要。(话虽如此,在您的习惯中,将as/etc/hosts
设置为,因为这通常是系统处理它的方式。理论上,您可以将它放在任何东西上,但这是默认值,通常是它所在的位置。)localhost
127.0.0.1
127.0.0.1
此外,你的消息来源还引用了以下内容:
特殊主机名
localhost
与 IP 地址 127.0.0.1 相关联,并描述您当前所在的机器(通常具有其他与网络相关的 IP 地址)。
它具体指的是localhost
,而不是您的机器的主机名。
第二个问题与你的动态 IP 有关。
这应该是一个问题,但我认为我们需要重新定义你在问什么。你问的是:
另一个疑问:我可以使用我的动态 IP(由我的 wifi 连接中的 DHCP 配置)作为本地主机来托管我的 html 或 php 文件吗?
让我们换个方式问这个问题:
我可以将无线路由器分配的动态 IP 与其他系统一起使用来托管我的 HTML 或 PHP 文件吗?
我这样重新定义你的问题,因为你无法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)从路由器到内部计算机地址的端口转发。(不过,还有其他问题和答案,因此我在这里不详细介绍)