我无法理解 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