我在EC2上运行Amazon Linux(基于RHEL5)。
我有自己的域名指向实例的弹性IP。 Amazon自动通过DHCP为该实例分配一个通用(并且在Internet上不可见)主机名。
由于SMTP服务器希望看到一个真实的(和公共的)主机名,所以这个只有内部的主机名会中断发送电子邮件。 我可以通过手动运行“hostname”命令来设置真正的公共主机名来修复电子邮件。
我在/ etc / sysconfig / network中设置了HOSTNAME,但是DHCP主机名似乎覆盖了这个。
有没有一个好的/正确的方式来设置我的主机名,并总是忽略什么DHCP说,而仍然使用DHCP,否则?
我可以想到很多kludgy的东西要做(运行一个脚本,撤销什么DHCP做什么,或者其他),但想知道是否有一个实际的configuration设置强制主机名的地方。
迈克的回答听起来更好,可能会奏效,但如果给你带来麻烦,你总是可以使用大锤。 🙂
加
/bin/hostname HOSTNAME
至
/etc/rc.local
🙂
试试这个..编辑
/etc/sysconfig/network-scripts/ifcfg-eth0
然后加
DHCP_HOSTNAME=host.domain.com
看看是否清除它。
对于Centos 6,因此Redhat 6,你将不断失去你希望你的主机被称为本地的任何主机名,每当你得到一个新的IP或重新启动,而使用DHCP。 (Redhat 5 / Centos 5信息也在下面)
(如果您使用静态主机名进行备份或类似的脚本,这可能会很痛苦)
如果您使用dhclient,并持续使用DHCP提供的主机名覆盖(忘记)所需的localhostname,请继续阅读。
要强制一个本地主机名(并且让DHCP给你任何它想要的IP),你需要修改(或创build)文件/etc/dhcp/dhclient-eth0.conf 。
(把eth0replace成你的主机名被覆盖的任何networking接口,eth0对于大部分工作)
对于我的设置,这个简单的filecontent工作:
interface "eth0" { supersede host-name "myworkbox"; }
我保存到/etc/dhcp/dhclient-eth0.conf 。
如果你有Redhat 5 / Centos 5,可以尝试一下,但文件位置应该是/etc/dhclient-eth0.conf 。
您将通过查看文件/etc/sysconfig/network-scripts/ifup中引用dhclient-${DEVICE}.conf的部分来了解为什么会发生这种情况
如果您需要获取特定的IP地址,则需要查看dhclient的联机帮助页。
对于CentOS 7 AMI,通过注释行来设置一个静态主机名:
- set_hostname - update_hostname
在/etc/cloud/cloud.cfg 。 YAML的注释字符是# 。
这是除了正常设置主机名。
只需添加
PEERDNS="no"
在/ etc / sysconfig / network-scripts / ifcfg-ethX(在CentOS 6上testing)
/etc/dhcp/dhclient-eth0.conf添加(适用于AWS AMI(CentOS)),其内容如下:
interface "eth0" { supersede host-name "myworkbox"; }
似乎工作得很好(如果使用DHCP,当然)。 谢谢!