没有 dns 的 dhcp: ping `hostname` 不起作用。自动将主机名添加到/etc/hosts?

没有 dns 的 dhcp: ping `hostname` 不起作用。自动将主机名添加到/etc/hosts?

在 RHEL 6.5 上,如果我的 IP 地址是动态的并且未在 DNS 中注册,如何使我自己的主机名在本地可解析?

我知道,可以添加 dhcp 挂钩脚本。是否有类似的方法来挂钩网络初始化脚本,因此这也适用于静态配置?

答案1

有一个标准的自定义脚本/sbin/ifup-local。每个适配器都会调用它。我的脚本获取 ip 和主机名并将它们添加到/etc/hosts

#!/bin/bash
# /sbin/ifup-local
set -e

fn_get_ip() {
ip addr show dev "$1" | sed "s,.* inet \([^/]*\)/.*,\1,;t;d"
}

fn_aaa() {
ip=`fn_get_ip "$1"`
hostnames=`hostname | sed "s,\([^.]*\)\..*,\1 &,"`

hint='# added by ifup-local'
sed -i "/$hint/d" /etc/hosts
echo "$ip $hostnames $hint" >>/etc/hosts
}

case $1 in
eth*)
fn_aaa "$1"
;;
esac

答案2

您可以使用阿瓦希每次当 DHCP 更改您的 IP 时,守护进程将您的 IP 地址绑定到某个可解析的主机名(例如 linux.local)。

相关内容