我在 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 上测试)