主机名不变(Ubuntu 14.04)

当我设置一个VPS时,我把名字设置为“main”,所以我的/ etc / hosts和/ etc / hostnames文件都有一个条目(即“main”)。 所以我build立了root ssh访问并input“hostname”,它给了我“主”。 当我input“hostname -f”时也是如此。

那么,我试图设置Exim4从我的Django应用程序发送邮件(我只需要发送,而不是接收),我添加到/etc/hosts

 127.0.1.1 main.mydomain.com main <myip> main.mydomain.com main 

然后我执行service hostname restarthostname -f只返回main 。 我甚至重新启动(我试图避免做),它仍然是main 。 不知道为什么这是…实际的文件本身显示我的新条目,但我不能得到实际的hostnamehostname -f命令来改变我的生活。

我猜,但我不是100%肯定的,这就是为什么当我使用命令echo test message | mail -s test [email protected] echo test message | mail -s test [email protected]我没有收到[email protected] (太多电子邮件?)。 如果不是绝对有必要设置主机名使用exim,我想避免它,因为它使我感到头痛。

任何帮助将使我永远感激你的迷人。

要设置域名,可以使用同名的程序domainname

 sudo domainname example.com 

要查询实际设置的值,请​​不带参数调用它。

另外还需要运行hostname.sh脚本(取决于操作系统)来使更改生效:

 /etc/init.d/hostname.sh 

在Debian和衍生产品上,还有/etc/mailname ,它应该包含外发电子邮件的默认发件人域。

我不能在Exim上发表声明,但是我认为主机和域名的exim默认值应该指向操作系统的设置。

引用主机名:

FQDN

您不能使用此命令更改FQDN(由主机名–fqdn返回)或DNS域名(由dnsdomainname返回)。 系统的FQDN是parsing器(3)返回的主机名的名称。

从技术上讲:FQDN是getaddrinfo(3)返回gethostname(2)返回的主机名的名称。 DNS域名是第一个点之后的部分。

因此它取决于configuration(通常在/etc/host.conf)如何改变它。 通常(如果在DNS或NIS之前parsing主机文件),可以在/ etc / hosts中更改它。

如果邮件通过postfix发送,那么你也应该编辑/etc/postfix/main.cf以使myhostname = xyz值正确