简短结论:默认情况下,Linux 的 dhclient 不会写 /etc/hosts 文件。
更具体说明如下:
dhclient 默认行为dhclient 主要通过 DHCP 获取:
/etc/resolv.conf)但 它不会自动把主机名和 IP 写入 /etc/hosts。
/etc/hosts通常是以下情况:
dhclient 的钩子脚本(可配置)dhclient 支持在以下目录中执行脚本:
/etc/dhcp/dhclient-enter-hooks.d//etc/dhcp/dhclient-exit-hooks.d/如果你在 dhclient-exit-hooks.d/ 里写了脚本,比如:
echo "$new_ip_address $new_host_name" >> /etc/hosts
那它 才会写 hosts,但这是“人为配置”,不是默认行为。
dhclient 可能设置主机名(/etc/hostname 或 hostname 命令)dhclient 会更新 /etc/resolv.conf(DNS)/etc/hosts 一般由本地系统管理,而非 DHCP 客户端直接维护dhclient 默认不写
/etc/hosts,只管 IP / DNS / 可能的主机名;是否写 hosts 取决于发行版、NetworkManager、cloud-init 或你自己的 hook 脚本。
如果你愿意,可以告诉我你用的发行版(如 CentOS / Ubuntu / Debian)和场景(物理机 / 虚拟机 / 容器 / 云),我可以更精确地说明。