为什么我的 IP 解析为 127.0.0.1,而不是我在网络中拥有的 IP?

为什么我的 IP 解析为 127.0.0.1,而不是我在网络中拥有的 IP?

我无法理解 IP 解析在 Linux 系统上的工作原理。为了演示我的问题,我将在 Windows 上展示一个示例,然后在 Linux 上展示。

视窗: Windowshosts文件是空的。它仅包含评论。

在 Python shell 中运行以下命令:

socket.gethostbyname(socket.gethostname())

我得到了192.168.10.105我所在网络中当前的 IP。正如我所期望的那样。

Linux:在 Linux 上我的/etc/hosts样子如下:

127.0.0.1       localhost.localdomain           localhost

同样的 Python 命令会给出资源暂时不可用的错误。我猜测这与缺少我当前的主机名有关/etc/hosts。如果我手动添加

127.0.0.1       localhost.localdomain           localhost    MyHostName

python 命令返回127.0.0.1.这仍然不是我所期望的。不过我可以将 IP 和我的主机名添加到文件中

127.0.0.1       localhost.localdomain           localhost
192.168.10.115  MyHostName 

但这肯定不是正确的方法。如果使用 DHCP,此 IP 将发生变化。

如何在 Linux 上获得与 Windows 上相同的结果?我的配置(或者我的想法?)哪里错了?

答案1

您可以编辑包含将 IP 分配给网卡时要执行的指令的文件 (/etc/udhcpc/default.script)。

您可以执行的更改如下:续订|绑定在 ifconfig 指令下添加部分:

echo "127.0.0.1 localhost.localdomain localhost"> /etc/hosts
echo "$i myHostName" > /etc/hosts

相关内容