在 RHEL5/CentOS/Amazon Linux 上覆盖 DHCP 主机名

在 RHEL5/CentOS/Amazon Linux 上覆盖 DHCP 主机名

我在 EC2 上运行 Amazon Linux(基于 RHEL5)。

我有自己的域名指向实例的弹性 IP。Amazon 通过 DHCP 自动为实例分配一个通用(在 Internet 上不可见)主机名。

由于 SMTP 服务器需要查看真实(且公开)的主机名,因此此内部专用主机名会中断发送电子邮件。我可以通过手动运行“hostname”命令来设置真实公开主机名,从而修复电子邮件问题。

我已经在 /etc/sysconfig/network 中设置了 HOSTNAME,但是 DHCP 主机名似乎覆盖了它。

是否有一个好的/正确的方法来设置我的主机名并始终忽略 DHCP 对其的要求,同时仍然使用 DHCP?

我可以想到很多笨拙的事情要做(运行一个脚本来撤消 DHCP 所执行的操作,或者其他什么),但想知道是否存在实际的配置设置来强制主机名。

答案1

迈克的回答听起来更好,而且可能会有效,但如果它给你带来麻烦,你随时可以使用大锤。:)

添加

/bin/hostname HOSTNAME

/etc/rc.local

:)

答案2

试试这个..编辑

/etc/sysconfig/network-scripts/ifcfg-eth0

然后加

DHCP_HOSTNAME=host.domain.com

看看是否能解决问题。

答案3

对于 Centos 6 以及 Redhat 6,每次使用 DHCP 获取新 IP 或重新启动时,您将不断丢失希望主机在本地被识别的任何主机名。(Redhat 5 / Centos 5 信息也在下面)

(如果您编写脚本备份或类似操作,依赖静态主机名,这可能会很麻烦)

如果您使用 dhclient 并且您想要的本地主机名不断被 DHCP 提供的主机名覆盖(忘记),请继续阅读。

要强制使用本地主机名(并且仍然让 DHCP 为您提供它想要的任何 IP),您需要修改(或创建)文件/etc/dhcp/dhclient-eth0.conf

(将字符串 eth0 替换为您要覆盖主机名的任何网络接口,eth0 适用于大多数情况)

对于我的设置,这个简单的文件内容有效:

interface "eth0"  
   {    
     supersede host-name "myworkbox";  
   }

并保存到/etc/dhcp/dhclient-eth0.conf

如果您使用的是 Redhat 5 / Centos 5,请尝试执行相同的操作,但文件位置应该是/etc/dhclient-eth0.conf

dhclient-${DEVICE}.conf通过查看文件中引用的部分,您将了解为什么会发生这种情况 /etc/sysconfig/network-scripts/ifup

如果您需要获取特定的 IP 地址,则需要查看 dhclient 的手册页。

答案4

只需添加

PEERDNS="no"

在 /etc/sysconfig/network-scripts/ifcfg-ethX 中(在 CentOS 6 上测试)

相关内容